概括地说,软件生命周期由3个时期组成,每个时期又进一步划分成若干个阶段:
- 软件定义(问题定义、可行性研究、需求分析)
- 软件开发(总体设计、详细设计、编码和单元测试、综合测试)
总体设计、详细设计,又称 “系统设计“。
编码和单元测试、综合测试,又称 “系统实现“。 - 软件维护
当软件在使用过程中发现错误时,应加以改正;
当环境改变时,应该修改软件以适应新的环境;
当用户有新要求时,应该及时改进软件以满足用户的新需要。通常对维护时期不再进一步划分阶段,但是每一次维护活动本质上都是一次压缩和简化了的定义和开发过程。
一、问题定义(阶段)
- 该阶段必须回答的关键问题是:“要解决的问题是什么?“
- 通过对客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后,这份报告应该得到客户的认可。
二、可行性分析(阶段)
- 该阶段要回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?“
- 可行性研究应该比较简短,这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。
- 可行性研究的结果是客户作出是否继续进行这项工程的决定的重要依据,一般来说,只有投资可能取得较大效益的那些工程项目才值得继续进行下去。可行性研究以