您好,欢迎来到九壹网。
搜索
您的当前位置:首页软件工程的概念

软件工程的概念

来源:九壹网


软件工程的概念

教学目的:

让学生明确软件和程序的区别、软件危机等概念

让学生理解软件开发的基本步骤

理解软件生命周期模型

讲解:

通过本课程,引导学生由程序员向项目经理的过渡

程序设计语言(程序员)

面向对象的分析与设计(高级程序员)

软件工程(项目经理)

提问:

软件与程序的关系

软件包括哪些

1.软件的定义

程序和与程序相关的数据、文档的总称。

举例:

Main.exe -- 主程序

Main.ini 或 Main.xml -- 配置文件

Main.chm -- 帮助文档

Readme.txt -- 自述文件

/Data -- 程序调用数据的存放目录

/UI -- 主程序界面数据的存放目录

软件的特点

1)逻辑产品

2)复杂性高

3)人工开发

软件危机的概念

软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

微观:工期拖后、经费超支、软件交付后存在诸多缺陷

宏观:整个社会对软件的供应赶不上对软件需求的增长

软件危机的表现

1)产品不符合用户的需求

2)软件开发的生产率不能满足客观要求

3)软件产品的质量差

4)对软件开发成本和进度估计不准确

5)软件的可维护性差

6)软件文档资料既不完整也不合格

7)软件的价格昂贵

软件危机的产生原因

没有严格而科学地管理和控制软件开发过程。

软件维护是软件开发中的一部分(占55%-70%)。

开发时期引入的问题,在测试阶段没能检测出来的,对今后的维护带来很大的开销。这些开销也是软件开发的费用。

越早发现问题、解决问题对后期的维护工作越有利,对整个软件工程也就越有利。

越早开始写程序,完成它所需要的时间往往越长。

对用户要求没有完整准确的认识,就匆忙着手编写程序是许多软件开发工程失败的主要原因之一。

软件危机的解决途径

1)纠正错误认识。

错误认识举例:

软件就是一个程序

有一个对目标的概括性描述就可以编写程序了,许多细节可以以后补充

所谓软件开发就是编写程序并使它运行

用户对软件的要求不断变化,然而软件是柔性灵活的,可以被轻易地改动

软件投入生产性运行以后,需要的维护工作量不多,而且维护是一种很简单的工作。

将软件开发活动工程化,借鉴其他领域的经验以指导软件开发。

软件开发不是某种个体劳动的神秘技巧,而是一种组织良好、管理严密、各类人员协同配合共同完成的工程项目。

2)将传统工程学的原理、技术和方法应用于软件开发上,可以使软件生产规范化,有利于提高开发质量,降低成本和控制进度

3)不断开发新的软件工具,以提高软件生产的效率和质量。

如:各种集成开发环境、代码生成环境、集成测试工具、统一建模语言、数据字典、管理系统、流程图绘制工具、项目管理工具。

作业:

谈谈自己对软件危机的认识

软件工程

软件工程的定义

软件工程是用工程科学的知识和技术原理来定义、开发和维护软件的一门学科。

简单地讲,软件工程就是制定并使用完整的工程法规、优秀的管理策略、合适的工具和方法,在已知的适当的资源设备条件下,获得具有明确意义的高质量的软件。更具体地讲,就是用工程科学的观点估算费用,指定进度、计划和方案;用管理科学的方法和原理进行生产管理;用数学的方法建立软件开发中的各种模型和算法。

软件工程的目标

1)降低开发成本

2)软件功能达到要求,软件性能良好

3)开发的软件易于移植

4)降低维护费用

5)能按时完成开发任务,及时交付使用

6)开发的软件可靠性高

软件工程研究的问题

软件工程从软件的开发、运行、维护等方面研究软件生存的全过程,主要的研究内容包括开发技术与开发管理两大方面。

软件与其他商业活动一样,包括人、过程与技术三大要素,据此软件工程学可分为下面这些分支:

1) 软件工程技术

包括软件开发方法、软件开发生命周期模型、软件设计的交流语言、软件开发的工具与环境等。

2) 软件开发过程

包括软件工程的基本步骤(8步):

问题定义、可行性研究、需求分析、概要设计、详细设计、编写和单元测试、综合测试、运行维护等。

3) 软件项目管理

包括项目的计划和组织,团队人员的管理,质量评估,项目的经济性指标,工作量估计,费用估计,项目管理的制度、标准、文档

4) 软件的实施与维护

包括软件的实施步骤、实施实践的成功保障、软件的维护指南、用户使用的培训以及软件升级和软件再工程的实现等

软件开发方法学

目前最广泛的软件开发方法有两种:结构化方法和面向对象方法。

软件的生存周期

软件从定义、存在到消亡持续的整个时期

1.定义时期:问题定义、可行性研究、需 求分析

2.开发时期:概要设计、详细设计、编码和单元测试、综合测试

3.维护活动:压缩和简化了的定义和开发过程

软件生存周期各阶段的基本任务

1.问题定义

确定“要解决的问题是什么”。给出关于问题性质、工程目标、工程规模的书面报告。

2.可行性研究报告

回答“上一个阶段所确定的问题是否行的通”。

3.需求分析

回答“目标系统必须做什么”。

4.概要设计

概括地回答“怎样实现目标系统”。

5.详细设计

把解决方法具体化,设计模块。

6.编码和单元测试

设计、实现和测试程序模块。

7.综合测试

装配模块,在装备过程中进行测试,用户验收测试。

8.软件维护

提出要求,确定方案,修改软件,测试修改,验收修改----压缩了的软件定义和开发的全过程。

几种生存周期模型

对软件开发的进程安排有指导意义

1)瀑布模型(有虚线的为实际瀑布模型)

瀑布型生存周期模型本质上是开发一次性成功,并且每个阶段活动按顺序进行一次的

方法。在这种方法中,前一阶段的工作成果是后一阶段工作的基础,所以,每个阶段都必须交出合格的文档,必须对前阶段的工作进行评审,前一阶段的工作完成之后才可以开始后一阶段的工作。

2)增量模型

又叫有计划的产品改进模型,它从一组给定的需求开发,通过构造 一系列的可执行工作版本来实施开发活动。第一个工作版本纳入一些需求,下一个工作版本纳入更多的需求,依次类推,直到系统完成。每个工作版本都要执行需求分析、概要设计、详细设计、编码与单元测试、综合测试等过程,完成相应的任务。

3)演化模型

也是通过构造系统的各个可执行工作版本来开发系统,但是承认需求不能在初始时就完全被正确确定。在该方法中,需求的一部分被先定义,然后在每个相继的工作版本中再逐步对其加以完善。

4)快速原型模型

所谓“快速原型”是指快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终的软件产品所能完成功能的一个子集。用户通过使用这个原型,提出进一步的需求,开发人员按照用户意见快速修改原型,直到得到明确完整的需求,按照这个最后的需求开发出的系统应该能够满足用户的真实需要。

学习本课程应注意以下几个过渡

程序到软件

应用程序到软件工程

编码到设计

设计到管理

个体到团队

到沟通

个人成长到企业发展

要求与希望

就业形势逼人奋进

学会思考

有当经理的思想准备和能力准备

注重文档规范、建立与整理

分组学习,培养团队意识

带着项目学习、带着任务学习、带着问题学习。

尽早为毕业设计做准备

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务