文章目录
软件工程概述
软件的定义
IEEE定义:软件是计算机程序、规程以及运行计算机系统所需要的文档和数据。
Wirth中指出:
在结构化程序设计:程序=算法+数据结构
在软件工程中:软件=程序+文档。
另一种对软件的公认解释是:软件是包括程序、数据及其相关文档的完整集合。
软件的分类
- 根据软件服务对象的范围不同:
- 通用软件:操作系统、数据库等;
- 定制软件:企业ERP、办公自动化系统等;
- 根据软件完成功能所处的层次不同:
- 应用软件、中间件软件、系统软件
- 系统软件:指能与硬件紧密配合在一起,使计算机系统各个部件、相关的软件和数据协调、高效地工作
- 操作系统
- 设备驱动程序
- 数据库管理系统等
软件工程要素、目标和原则
软件工程三要素:方法、工具和过程。
- 方法:提供了“如何做”的技术
- 工具:提供了自动或半自动的软件支撑环境
- 过程:将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的
软件工程的目标可概括为:生产具有正确性、可用性以及开销适宜的软件产品。
软件工程的最终目的是摆脱手工生产软件的状况,逐步实现软件研制和维护的自动化。
软件工程知识体系知识域
软件生命周期模型
工程过程
- 工程项目有三个基本的目标:
合理的进度;
有限的经费;
一定的质量; - 美国质量管理专家戴明博士针对工程项目的质量目标,提出了PDCA循环,称为戴明环
Plan, Do, Check, Action
传统模型种类
瀑布模型
瀑布模型为软件开发和软件维护提供了一种有效的管理模式,它在软件开发早期为消除非结构化软件、降低软件复杂度、促进软件开发工程化方面起着显著的作用
瀑布模型中的每一个开发活动具有下列特征:
- 本活动的工作对象来自于上一项活动的输出,这些输出一般是代表该阶段活动结束的里程碑式的文档。
- 根据本阶段的活动规程执行相应的任务。
优点 | 缺点 |
---|---|
降低了软件开发的复杂程度,提高了软件开发过程的透明性及软件开发过程的可管理性。 | 模型缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。 |
推迟了软件实现,强调在软件实现前必须进行分析和设计工作。 | 模型的风险控制能力较弱。 |
以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,保证了阶段之间的正确衔接,能够及时发现并纠正开发过程中存在的缺陷,从而能够使产品达到预期的质量要求。 | 瀑布模型中的软件活动是文档驱动的,当阶段之间规定过多的文档时,会极大地增加系统的工作量;而且当管理人员以文档的完成情况来评估项目完成进度时,往往会产生错误的结论。 |