软件生存周期
1、可行性分析
- 阶段目标
主要确定软件的开发目标及其可行性
- 必须要回答的问题
要解决的问题是什么?
该问题有可行解决办法吗?
若有解决的办法,则需要多少费用?需要多少资源?需要多少时间?
- 解决方案
进行问题定义、可行性分析、制定项目开发计划
- 参加人员
用户、项目负责人和系统分析师
- 阶段成果
可行性分析报告和项目开发计划
2、需求分析
- 阶段目标
准确地确定软件系统必须做什么
- 必须要回答的问题
软件系统应该做什么?
- 解决方案
确定软件系统的功能、性能、数据和界面等要求,从而确定系统的逻辑模型
- 参加人员
用户、项目负责人和系统分析师
- 阶段成果
软件需求说明书
3、概要设计
- 阶段目标
设计软件的结构
- 必须要回答的问题
软件由哪些模块组成?
这些模块的层次结构是怎样的?
这些模块的调用关系是怎样的?
每个模块的功能是什么?
应用系统要存储什么数据?这些数据是什么样的结构?它们之间有什么关系?
- 解决方案
开发人员要把确定的各项功能需求转换成需要的体系结构。在该体系结构中,每个成分都是意义明确的模块,即每个模块都和某些功能需求相对应
- 参加人员
系统分析师和软件设计师
- 阶段成果
概要设计说明书
4、详细设计
- 阶段目标
主要对每个模块完成的功能进行具体描述
- 必须要回答的问题
模块的控制结构是怎样的?先做什么?后做什么?
有什么样的条件判定?
有些什么重复处理?
- 解决方案
要把功能描述转变为精确的、结构化的过程描述,明确模块的控制结构,并用相应的表示工具把这些控制结构表示出来
- 参加人员
软件设计师和程序员
- 阶段成果
详细设计文档
5、编码
- 阶段目标
把每个模块的控制结构转换成计算机可接受的程序代码
- 参加人员
软件设计师和程序员
- 阶段成果
某种特定程序设计语言表示的源程序清单
6、测试
- 阶段目标
设计测试用例的基础上检查软件的各个组成部分
- 参加人员
另一部门的软件设计师或系统分析师
- 阶段成果
软件测试计划、测试用例和软件测试报告
7、维护
软件维护是软件生存周期中时间最长的阶段。在软件运行过程中可能由于各方面的原因需要对它进行修改。