软件生命周期
由软件定义、软件开发、运行维护(软件维护)三个时期组成。
软件定义(系统分析)
进一步划分为问题定义、可行性研究和需求分析三个阶段。
问题定义:“要解决的问题是什么”
可行性研究:用最小的代价在尽可能短的时间内确定问题是否能被解决
系统分析员进行一次大大压缩&简化的系统分析和设计过程(高层次的分析和设计过程)
需求分析:“为了解决问题,必须做什么”
和用户密切配合,得到经用户确认的系统逻辑模型——数据流图、数据字典、简要算法。
产出规格说明书。
- 数据模型:实体-联系图(ER图)
- 功能模型:数据流图
- 行为模型:状态转换图(状态图)
软件开发
总体设计(结构设计、概要设计)、详细设计(模块设计)、编码和单元测试、综合测试
前两个称为系统设计,后两个称为系统实现。
总体设计(概要设计):“概括地,应该怎么做”
详细设计(模块设计):“具体地,怎样实现”
产出详细规格说明,而不是编写