软体生命周期 同任何事物一样,一个软体产品或软体系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软体生命周期(软体生存周期)。软体生命周期模型是指人们为开发更好的软体而归纳总结的软体生命周期的典型实践参考。
基本介绍
- 中文名:软体生命周期模型
- 适用领域範围:软体
简介
软体生命周期 同任何事物一样,一个软体产品或软体系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软体生存周期(软体生命周期)。软体生命周期(SDLC,软体生存周期)是软体的产生直到报废的生命周期。为了使规模大、结构複杂和管理複杂的软体开发变的容易控制和管理,人们把整个软体生命周期划分为若干阶段,使得每个阶段有明确的任务,整理出软体生命周期模型。在1970年人类整理了第一个软体生命周期,即是瀑布型生命周期。在没有总结到其它生命周期模型时,人们直接将其命名为软体生命周期,而随着越来越多的生命周期模型被识别,原先的软体生命周期就不再是瀑布型生命周期的专有名称。而在1970年~2000年瀑布型生命周期占统治地位的时候,软体生命周期是瀑布型生命周期的另一个称呼,也就是说软体生命周期指的就是瀑布型生命周期。
瀑布型生命周期包括可行性分析与开发项计画、需求分析、设计(概要设计和详细设计)、编码、测试、维护等阶段。而其它软体生命周期未必有与瀑布型生命周期相同的阶段。敏捷类生命周期的阶段划分是按照叠代来进行,而叠代内部不再有阶段划分,在如测试驱动开发等的实践下,就算是更细节的活动也难以明确划分是需求还是设计还是编码还是测试。
瀑布型生命周期主要阶段
瀑布型生命周期的典型六个阶段
1、问题的定义及规划
此阶段是软体开发方与需求方共同讨论,主要确定软体的开发目标及其可行性。
2、需求分析
在确定软体开发可行的情况下,对软体需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软体开发项目的成功打下良好的基础。"唯一不变的是变化本身。",同样需求也是在整个软体开发过程中不断变化和深入的,因此我们必须制定需求变更计画来应付这种变化,以保护整个项目的顺利进行。
3、软体设计
此阶段主要根据需求分析的结果,对整个软体系统进行设计,如系统框架设计,资料库设计等等。软体设计一般分为总体设计和详细设计。好的软体设计将为软体程式编写打下良好的基础。
4、程式编码
此阶段是将软体设计的结果转换成计算机可运行的程式代码。在程式编码中必须要制定统一,符合标準的编写规範。以保证程式的可读性,易维护性,提高程式的运行效率。
5、软体测试
在软体设计完成后要经过严密的测试,以发现软体在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、组装测试以及系统测试三个阶段进行。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计画并严格按照测试计画进行测试,以减少测试的随意性。
6、运行维护
软体维护是软体生命周期中持续时间最长的阶段。在软体开发完成并投入使用后,由于多方面的原因,软体不能继续适套用户的要求。要延续软体的使用寿命,就必须对软体进行维护。软体的维护包括纠错性维护和改进性维护两个方面。
其它几种典型的软体生命周期模型
其它几种典型的生命周期模型包括叠代模型、快速原型模型、V模型、W模型。
叠代式模型
叠代式模型是是RUP(Rational Unified Process,统一软体开发过程,统一软体过程)推荐的周期模型。在RUP中,叠代被定义为:叠代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。所以,在某种程度上,开发叠代是一次完整地经过所有工作流程的过程:(至少包括)需求工作流程、分析设计工作流程、实施工作流程和测试工作流程。实质上,它类似小型的瀑布式项目。RUP认为,所有的阶段(需求及其它)都可以细分为叠代。每一次的叠代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。叠代的思想如图所示。

叠代和瀑布的最大的差别就在于风险的暴露时间上。“任何项目都会涉及到一定的风险。如果能在生命周期中儘早确保避免了风险,那幺您的计画自然会更趋精确。有许多风险直到已準备集成系统时才被发现。不管开发团队经验如何,都绝不可能预知所有的风险。” 由于瀑布模型的特点(文档是主体),很多的问题在最后才会暴露出来,为了解决这些问题的风险是巨大的。"在叠代式生命周期中,您需要根据主要风险列表选择要在叠代中开发的新的增量内容。每次叠代完成时都会生成一个经过测试的执行档,这样就可以核实是否已经降低了目标风险。"

快速原型模型
快速原型(Rapid Prototype)模型在功能上等价于产品的一个子集。注意,这里说的是功能上。瀑布模型的缺点就在于不够直观,快速原型法就解决了这个问题。一般来说,根据客户的需要在很短的时间内解决用户最迫切需要,完成一个可以演示的产品。这个产品只是实现部分的功能(最重要的)。它最重要的目的是为了确定用户的真正需求。在我的经验中,这种方法非常的有效,原先对计算机没有丝毫概念的用户在你的原型面前往往口若悬河,有些观点让你都觉得非常的吃惊。在得到用户的需求之后,原型将被抛弃。因为原型开发的速度很快,设计方面是几乎没有考虑的,如果保留原型的话,在随后的开发中会为此付出极大的代价。至于保留原型方面,也是有一种叫做增量模型是这幺做的,但这种模型并不为大家所接受,不在我们的讨论之内。 上述的模型中都有自己独特的思想,其实软体组织中很少说标準的採用那一种模型的。模型和实用还是有很大的区别的。 软体生命周期模型的发展实际上是体现了软体工程理论的发展。在最早的时候,软体的生命周期处于无序、混乱的情况。一些人为了能够控制软体的开发过程,就把软体开发严格的区分为多个不同的阶段,并在阶段间加上严格的审查。这就是瀑布模型产生的起因。瀑布模型体现了人们对软体过程的一个希望:严格控制、确保质量。可惜的是,现实往往是残酷的。瀑布模型根本达不到这个过高的要求,因为软体的过程往往难于预测。反而导致了其它的负面影响,例如大量的文档、繁琐的审批。因此人们就开始尝试着用其它的方法来改进或替代瀑布方法。例如把过程细分来增加过程的可预测性。