1.4 软件生命周期

如同人的一生,软件也有一个孕育、诞生、成长、衰亡的生存过程,这个过程称为软件的生命周期。

软件生命周期是指软件产品或软件系统从产生、投入使用到被淘汰的全过程。软件生命周期大致可以分为六个阶段:可行性研究、需求分析、软件设计、编码、测试和维护。

1.可行性研究

可行性研究是从技术、经济等角度判断软件系统的开发目标是否可以实现。如果目标不可行,或软件系统没有可行的解决办法,系统分析员应当建议停止开发软件项目。

可行性研究的目的是在最短的时间内、以最少的成本确定已定义的问题是否值得解决。必须强调的是,可行性研究的目的不是解决问题,而是确定问题是否可解或是否值得去解。可行性研究是在技术、经济、操作和法律等方面寻求可行的解决方案,然后对各个方案进行比较,并完成可行性研究报告的过程。

2.需求分析

需求分析是一个很复杂的过程,需求分析是否准确和成功,直接关系到软件开发的成败。需求分析的任务是对待开发软件在功能、性能、界面、数据等方面的要求进行详细具体的描述,并编写软件需求规格说明书。该文档既是开发者和用户之间的合同书,也是后续软件设计的依据,更是用户验收系统的标准。

3.软件设计

软件设计分概要设计和详细设计两部分。

概要设计也称为总体设计,是在软件需求规格说明书的基础上,对软件的总体结构进行规划,主要完成软件架构设计、模块分解、模块功能定义和模块接口描述等工作。

详细设计在概要设计的基础上,对模块进行具体、详细的过程性描述,用各种工具表示模块的结构、过程、功能和对外接口。详细设计是编码的依据。

4.编码

在编码阶段,开发人员根据设计阶段制订出的设计方案,编写程序代码。简单地说,编码的过程就是把详细设计文档中对每个模块实现过程的算法描述转换为能用某种程序设计语言来实现的程序。

5.软件测试

软件测试的目的是发现软件产品中存在的软件缺陷,进而保证软件产品的质量。软件缺陷发现得越晚,修复缺陷所需的成本就越高,损失也就越大。软件缺陷是不可避免的,所以软件测试是保证软件质量的关键步骤。

6.软件维护

软件维护是软件生命周期的最后一个阶段,同时也是持续时间最长的一个阶段。在软件产品的使用过程中,用户会不断地发现产品中所隐藏的各种缺陷。同时,随着用户需求的增加或改变,或市场环境的变化,软件产品的功能需要不断更新,版本需要不断升级。所以,在使用软件产品的过程中,软件开发人员需要对产品进行维护,以保证软件产品的正常运行。