一个软件产品像人的生命一样,也要经历孕育、诞生、成长、成熟、衰亡等许多阶段,这些阶段对应到软件产品中就是计划、分析、设计、编程、测试、维护直至被淘汰的全过程,整个过程便被称为软件生命周期,它一般分为六个阶段:
1.可行性分析与项目开发计划
这个阶段主要确定软件的开发目标及其可行性,即要求系统分析员与用户交流,确定“用户需要计算机解决什么问题”提出关于“系统目标与范围的说明”,提交用户审查和确定。然后把待开发系统的目标用明确的语言描述出来,再从经济、技术、法律等方面进行可行性分析,最后制定项目开发计划。
参加人员:用户、项目负责人、系统分析师
文档:可行性分析报告、项目开发计划
2.需求分析
确定用户对软件系统的需求,即软件系统必须做什么,确定系统的功能、性能、数据和界面等要求,从而确定系统的逻辑模型。
参加人员:用户、项目负责人、系统分析师
文档:软件需求说明书
3.开发阶段
1)软件设计
主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计、数据库设计等等。软件设计一般分为两个部分:概要设计和详细设计
概要设计:开发人员要把确定的各项功能需求转换成需要的体系结构,在这个体系结构中每部分都是意义明确的模块,每个模块都和某些功能需求相对应。因此概要设计就是软件系统的结构,明确软件系统由哪些模块组成,以及这些模块的层次结构、调用关系和模块间的功能,同时确定数据结构和数据库结构。
参加人员:系统分析师、软件设计师
文档:概要设计说明书
详细设计:主要任务是对每个模块完成的功能进行具体描述,把功能描述转变为精确的、结构化的过程描述。即该模块的控制结构或逻辑结构是怎样的,先做什么,后做什么,有什么样的条件判定,有什么重复处理等,并用相应的表示工具把这些控制结构表示出来。
参加人员:软件设计师、程序员
文档:详细设计文档
2)程序编码
编码就是把每个模块的控制结构转换成程序代码。在程序编码中必须要制定统一的、符合标准的编写规范,以保证程序的可读性、易维护性,提高程序的运行效率
参加人员:程序员
3)软件测试
在软件设计完成后要经过严密的测试,以发现在整个设计过程中存在的问题并加以纠正,这是保证软件质量的重要手段。测试的主要方式是在设计测试用例的基础上检查软件的各个组成部分,在测试过程中要建立详细的测试计划并严格按照测试计划进行测试减少测试的随意性。整个测试过程分为单元测试、组装测试以及系统测试三个阶段,测试方法主要有白盒测试、黑盒测试两种。
参加人员:软件设计师或系统分析师
文档:软件测试计划、测试用例、软件测试报告
4.运行维护
软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因(发现隐含的错误、需求的变更等),软件不能继续适应用户的要求,要延续软件的使用寿命,就必须对软件进行维护。软件维护包括纠错性维护和改进性维护
文档:项目开发总结报告、用户手册、维护文档
各阶段的文档对应图
小结:
软件生命周期是软件的产生直到报废的生命周期,每一个周期都有确定的任务,并产生一定规格的文档(资料),提交给下一个周期作为继续工作的依据。软件开发不只是编码,而是概况了软件开发的全过程,但是随着新的面向对象的设计方法和技术的成熟,软件生命周期设计方法的指导意义正在逐步减少。