第1章 软件工程学概述
1.1 软件危机
1.1.1 软件危机简介
软件危机: 指在计算机软件开发和维护过程中所遇到的一系列严重问题。
包含以下两个方面的问题
- 如何开发软件,以满足 会对软件日益增长的需求。
- 如何更有效地维护数量不断膨胀的已有软件。
1.1.2 产生软件危机的原因
- 软件是计算机的逻辑部件,缺乏“可见性”
- 软件规模庞大,程序复杂性指数速度上升
1.1.3
- 软件是程序、数据及文档的完整集合。
- 程序是能够完成预定功能和性能的可执行的指令序列。
- 数据是使程序能够适当地处理信息的数据结构。
- 文档是开发、使用和维护程序所需要的图文资料。
1.2 软件工程
1.2.1 软件工程简介
- 软件工程是指导计算机软件开发和维护的一门工程学科,该学科的目的是生产出能按期交付的、在预算范围内的、满足用户需求的、质量合格的软件产品。
1.2.2 软件工程的基本原理
- 用分阶段的生命周期计划严格管理。
- 坚持进行阶段评审。
- 实行严格的产品控制。
- 采用现代程序设计技术。
- 结果应能清楚地审查。
- 开发小组的人员应该少而精。
- 承认不断改进软件工程实践的必要性。
1.2.3 软件工程方法学
通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为范型。
- 传统方法学(结构式范型)
- 采用结构化技术完成软件开发任务
- 把软件生命周期划分为若干阶段,顺序完成任务
- 开始结束都有严格标准,前一阶段的结束标准就是下一阶段的开始标准
- 每个阶段结束前要进行严格的技术审查和管理复查
- 开始结束都有严格标准,前一阶段的结束标准就是下一阶段的开始标准
- 把软件生命周期划分为若干阶段,顺序完成任务
- 面向对象方法学(面向对象范型)
- 用对象分解取代了传统方法的功能分解
- 把所有对象都划分成类
- 按照父类与子类,把若干类组织成层次结构的系统
- 对象彼此间仅能通过发送信息互相联系
- 按照父类与子类,把若干类组织成层次结构的系统
- 把所有对象都划分成类
1.3 软件生命周期
软件生命周期由软件定义、软件开发、运行维护(也称软件维护)3个时期组成。
-
软件定义时期
问题定义 -> 可行性研究 -> 需求分析
-
软件开发时期
总体设计 -> 详细设计 -> 编码和单元测试 -> 综合测试
-
运行维护时期
通过必要维护活动使系统持久满足用户需求。
1.4 软件过程
1.4.1 瀑布模型
瀑布模型图:
优点:
- 提高软件质量,降低维护成本,缓解软件危机。
缺点:
- 模型缺乏灵活性,无法解决需求不明确问题。用户不经过实践提出完整准确需求不切实际。
1.4.2 快速原型模型
快速建立反映用户主要需求的原型系统,反复由用户评价修正需求,开发出最终产品。
快速原型模型图:
优点:
- 较短时间向用户提交可完成有用工作产品;
- 用户有充裕时间学习适应产品;
- 软件结构必须开放,方便向现有产品加入新构件;
缺点:
- 做到第三个优点比较困难
1.4.4 螺旋模型
加入风险分析,常指导大型软件项目。
螺旋模型图:
优点:
- 无缝,可同步开发,提高开发效率,节省开发时间,适应面向对象软件。
缺点:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!