介绍
与其他事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡的许多阶段,一般称为软件生存周期。
作用
把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大、结构复杂和管理复杂的软件的 开发变得容易控制和管理。
软件生存周期
通常包括:
- 可行性分析与项目开发计划
- 需求分析
- 设计(概要设计和详细设计)
- 编码
- 测试
- 维护等活动
可以将这些活动以适当的方式分配到不同的阶段去完成。
1.可行性分析与项目开发计划
要确定软件的开发目标及其可行性。
必须要回答的问题是:
- 要解决的问题是什么?
- 该问题有可行的解决办法吗?
- 若有解决的办法,则需要多少费用?
- 需要多少资源?
- 需要多少时间?
要回答这些问题,就要进行问题定义、可行性分析,制订项目开发计划。
可行性分析与项目计划阶段的参加人员有:
- 用户
- 项目负责人
- 系统分析师
该阶段产生的主要文档有:
- 《可行性分析报告》
- 《项目开发计划》
2.需求分析
准确地确定软件系统必须做什么
确定软件系统的功能、性能、数据和界面等要求
从而确定系统的逻辑模型
该阶段的参加人员有:
- 用户
- 项目负责人
- 系统分析师
该阶段产生的主要文档有:《软件需求说明书》
3. 概要设计
开发人员要把确定的各项功能需求转换成需要的体系结构。
设计软件的结构,明确软件由哪些模块组成,这些模块的层次结构是怎样的,这些模块的调用关系是怎样的,每个模块的功能是什么。
设计总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。
概要设计阶段的参加人员有:
- 系统分析师
- 软件设计师
该阶段产生的主要文档有:《概要设计说明书》
4. 详细设计
对每个模块完成的功能进行具体描述,要把功能描述转变为精确的、结构化的过程描述。即该模块的控制结构是怎样的,先做什么,后做什么,有什么样的条件判定,有些什么重复处理等,并用相应的表示工具把这些控制结构表示出来。
详细设计阶段的参加人员有:
- 软件设计师
- 程序员
该阶段产生的主要文档有:《详细设计文档》
5. 编码
把每个模块的控制结构转换成计算机可接受的程序代码,即写成某种特定程序设计语言表示的源程序清单。
6. 测试
测试是保证软件质量的重要手段,其主要方式是在设计测试用例的基础上检查软件的各个组成部分。
测试阶段的参加人员:通常是另一部门(或单位)的软件设计师或系统分析师。
该阶段产生的主要文档有:
- 《软件测试计划》
- 《测试用例》
- 《软件测试报告》
7. 维护
是软件生存周期中时间最长的阶段。已交付的软件投入正式使用后,便进入软件维护阶段,它可以持续几年甚至几十年。
在软件运行过程中可能由于各方面的原因需要对它进行修改,其原因:
- 可能是运行中发现了软件隐含的错误而需要修改;
- 可能是为了适应变化了的软件工作环境而需要做适当变更;
- 可能是因为用户业务发生变化而需要扩充和增强软件的功能;
- 可能是为将来的软件维护活动做预先准备
