为了用工程化方式有效地管理软件的全过程,软件的生存过程也可以划分为好几个阶段,由此逐步形成“软件生命周期”的概念;
它是一个从用户需求开始,经过开发、交付使用,在使用中不断增补修订,直至让位于新软件的全过程;
概括地说,软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。
问题定义阶段:界定问题的范围,确切地定义问题;
可行性研究阶段:研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法;
需求分析阶段:确定目标系统必须具备哪些功能;
另外,要估计完成该项工程所需要的资源和成本,制定工程进度表。
具体设计和实现在前一个时期定义的软件。
总体设计阶段:设计出实现目标系统的几种可能的方案,权衡利弊推荐一最佳方案,并制定实现最佳方案的详细计划,以及设计软件的体系结构;
详细设计阶段:设计出程序的详细规格说明;
编码和单元测试阶段:写出正确的、容易理解、容易维护的程序模块;
综合测试阶段:通过各种类型的测试使软件达到预定的要求。
维护阶段的关键任务是:通过各种必要的维护活动使软件系统持久地满足用户的需要。通常的4种维护活动:
改正性维护:诊断和改正使用过程中发现的软件错误;
适应性维护:修改软件以适应环境的变化;
完善性维护:根据用户需要改进或扩充软件使之更完善;
预防性维护:修改软件从而为将来的维护活动做好准备。