软件工程概论
- 1.1 软件危机
-
- 1.1.1 软件危机
- 1.1.2 产生软件危机的原因
- 1.1.3 消除软件危机的途径
- 1.2 软件工程
-
- 1.2.1 软件工程简介
- 1.2.2 软件工程的基本原理
- 1.2.3 软件工程方法学
- 1.3 软件生命周期
- 1.4 软件过程
-
- 1.4.1 瀑布模型(适合面向过程的软件工程)
- 1.4.2 快速原型模型
- 1.4.3 增量模型(渐增模型)
- 1.4.4 螺旋模型
- 1.4.5 喷泉模型
- 1.4.6 Rational 统一过程
- 1.4.7 敏捷过程 与 极限编程
- 1.4.8 微软过程
1.1 软件危机
1.1.1 软件危机
软件危机:在计算机软件的开发于维护过程中所遇到的一系列严重问题
软件危机的两个方面:
1.如何开发软件,以满足 会对软件日益增长的需求
2.如何更有效地维护数量不断膨胀地已有软件
软件危机的经典表现:
1.对软件开发成本和进度的估计常常很不准确
2.经常出现用户对“已完成”软件产品不满意的情况
3.软件产品的质量往往达不到要求
4.软件通常是很难维护的
5.软件往往没有适合的文档资料
6.软件成本在计算机系统总成本中所占比例逐年上升
7.软件开发生产率提高的速度远远不能满足 会对软件产品日益增长的需求
1.1.2 产生软件危机的原因
客观原因:
1.软件缺乏“可见性”,管理控制软件开发过程困难
2.软件维护意味着修改原有设计,维护较难
3.软件规模庞大,复杂度高
主观原因:
1.忽视软件需求分析的重要性
2.认为软件开发就是写程序
3.轻视软件维护
1.1.3 消除软件危机的途径
1.树立对计算机软件的正确认识
2.充分吸取借鉴人类工程项目的经验,研究更有效的开发技术和方法
3.积极开发和使用计算机辅助软件工程(CASE)工具
1.2 软件工程
1.2.1 软件工程简介
软件工程:指导计算机软件开发和维护的一门学科
软件工程的目的:生产出能按期交付的、在预算范围内的、满足用户需求的、质量合格的软件产品
软件工程的特性:
1.软件工程关注于大型程序的构造
2.软件工程的中心课题是控制复杂性
3.软件产品交付使用后仍然需要经常修改
4.开发软件的效率非常重要
5.开发人员和谐的合作是成功开发软件的关键
6.软件必须有效地支持它的用户
7.在软件工程领域中通常由具有一种文化背景的人替另一种文化背景的人开发此产品
1.2.2 软件工程的基本原理
1.用分阶段的生命周期计划严格管理
2.坚持进行阶段评审
3.实行严格的产品控制
4.采用现代程序设计技术
5.结果应能清楚地审查
6.开发小组的人员应该少而精
7.承认不断改进软件工程实践的必要性
1.2.3 软件工程方法学
方法学(泛型):在软件生命周期全过程中使用的一整套技术方法的集合
软件工程方法学三要素:
1.方法,是完成软件开发各项任务的技术方法,回答“怎样做”的问题
2.工具,是为运用方法而提供自动的或半自动的软件工程支撑环境
3.过程,是为了过的高质量软件所需要完成的一系列任务的框架,规定了完成各项任务的工作步骤,回答“何时做”的问题
1.传统方法学(结构化泛型):
(1)采用结构化技术(结构化分析、结构化设计和结构化实现)完成软件开发的各项任务。
(2)把软件生命周期分为若干个阶段,然后顺序完成各个阶段的任务
(3)每个阶段的开始和结束都是严格的标准,对于任何两个相邻的阶段而言,前一阶段标准就是后一阶段的开始标准。
(4)在每个阶段结束之前都必须正式地进行严格的技术审查和管理复查
2.面对对象方法学(面对对象泛型)
(1)用对象分解取代了传统发方法的功能分解
(2)把所有对象都划分为类
(3)对象彼此间仅能通过发送消息互相联系
1.3 软件生命周期
一、阶段间具有顺序性和依赖性
顺序性:必须等前一阶段的工作完成后,才能开始后一阶段的工作
依赖性:前一阶段的输出文档就是后一阶段的输入文档
二、推迟实现的观点
瀑布模型在编码前设置了系统分析与系统设计,主要考虑目标系统的逻辑模型
清楚地区分逻辑设计和物理设计,尽可能推迟程序地物理实现
三、质量保证的观点
(1)每个阶段都必须完成规定的文档
(2)每个阶段结束前都要对完成的文档进行评审,以便尽早发现问题,改正错误
瀑布模型的主要优点如下:
1.强迫开发人员采用规范的技术方法。
2.严格地规定了每个阶段必须提交的文档。
3.每个阶段结束前必须正式进行严格的技术审查和管理复审。
瀑布模型的主要缺点是:
1.在可运行的软件产品交付给用户之前,用户只能通过文档来了解未来的产品是什么样的。
2.开发人员和用户之间缺乏有效的沟通,很可能导致最终开发出的软件产品不能真正满足用户的需求。
1.4.2 快速原型模型
增亮模型的主要优点:
1.能在较短的时间内向用户提交可完成部分工作的产品
2.逐步增加产品功能,从而使用户有较充裕的时间学习和适应新产品,减少一个全新的软件给用户所带来的冲击
这要求软件工程师有较高的技术水平
1.4.4 螺旋模型
1.4.6 Rational 统一过程
Rational 统一过程是由 Rational 软件公司推出的一种完整而且完美的软件过程。
Rational 统一过程(RUP)充分体现了下述6条开发经验:
1.采用迭代方式开发软件。
2.在软件开发的全过程中有效地管理需求。
3.使用基于构件的软件体系结构。
4.建立软件产品的可视化模型。
5.在软件开发的全过程中严格地验证软件质量。
6.控制软件变更。
微软过程的每一个生命周期发布一个递进的软件版本,各个生命周期持续、快速地迭代循环。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!