本节书摘来自华章出版社《软件工程方法与实践》一 书中的第2章,第2.4节,作者窦万峰,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.4 软件生存周期
同任何事物类似,软件也有一个从生到死的过程,这个过程一般称为软件生存周期或生命周期(Software Development Life Cycle,SDLC)。一般地,软件生存周期可划分为定义、开发和运行3个时期,每个时期又细分为若干个阶段。把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大、结构复杂和管理复杂的软件开发变得容易控制和管理。
通常,软件生存周期包括问题的定义与可行性分析、项目计划、需求分析、软件设计、编码与测试、运行与维护等阶段,每个阶段又包含一系列的活动,可以将这些活动以适当的方式分配到不同的阶段去完成。软件产品经历了从开始到结束的整个开发周期后,新一代产品将通过开发周期的重复而发展。即使开发阶段重复进行,它们也不一定与开发周期最初的那些阶段相同。
软件生存周期的基本理念是把开发过程中复杂的问题趋于简单化,从而有效地控制和管理的方法学。对软件开发过程的研究,实际就是对软件生存周期方法学的研究,所以,软件生存周期方法学是软件工程方法学的核心内容。
软件生存周期的6个阶段如下。
问题的定义与可行性分析。在此阶段,软件开发人员与客户进行沟通,确定软件的开发目标、范围、规模等,以及项目的可行性。
项目计划。项目计划阶段根据项目的问题、范围、规模制订初步的开发计划,包括人员组织、项目过程、项目预算投入、项目风险管理、进度安排等。
需求分析。在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。同样,需求也是在整个软件开发过程中不断变化和深入的,因此我们必须制订需求变更计划来应付这种变化,以保证整个项目的顺利进行。
软件设计。此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架结构设计、组件设计、数据库设计等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。
编码与测试。此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一、符合标准的编写规范,以保证程序的可读性、易维护性,提高程序的运行效率。在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、组装测试以及系统测试3个阶段进行。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。
运行与维护。软件维护是软件生存周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。