第一章
- 软件不仅包括程序,还包括程序的处理对象——数据,以及与程序开发、维护和使用有关的图文资料,既文档
- 软件的特点:
- 软件是一种逻辑实体,具有抽象性
- 软件的生产与硬件制造不同
- 软件在运行使用中不会磨损
- 软件的开发至今尚未完全摆脱手工艺的开发方式
- 软件的开发和运行必须依附于特定的计算机系统环境
- 软件的分类
- 基于功能不同:系统软件、支撑软件、应用软件
- 根据软件服务对象不同:通用软件、定制软件
- 按照软件产品规模不同:微型软件、小型软件、中型软件、大型软件、超大型软件
- 根据工作方式不同:实时软件、分时软件、交互式软件、批处理软件
- 软件危机表现
- 产品的功能或特性与需求不符
- 相比越来越廉价的硬件,软件代价过高
- 软件质量难以得到保证,且难以发挥硬件潜能
- 难以准确估计软件开发、维护的费用、开发周期
- 难以控制开发风险,开发速度赶不上市场变化
- 软件产品维护困难,集成系统更困难
- 软件文档不完备,并且存在文档内容与产品不符的情况
- IEEE对软件工程的定义:将系统化、严格约束的、可量化的方法应用于软件开发、运行和维护,既将工程化应用于软件
- 软件工程三要素:过程、方法、工具
- 软件工程研究:方法与技术、工具与环境、管理技术、标准与规范
- 软件工程的基本目标:
- 到达要求的软件功能
- 取得较好的软件性能
- 开发出高质量的软件
- 付出较低的开发成本
- 需要较低的维护费用
- 能按时完成开发工作,及时交付使用
- 软件工程的基本原则:
- 用分阶段的生命周期计划进行严格的管理
- 坚持进行阶段评审