软件生命周期的螺旋模型:优点缺点

螺旋模型(Spiral Model)是Barry.Boehm(巴利·玻姆)于1988年提出。它综合了瀑布模型和原型模型的特点,并加入了风险分析机制。何为风险?软件开发过程中可能遇到的风险有很多,如

①需求理解的风险:需求获取不准确或不完整,导致开发出的产品交付给用户之后,用户可能不满意;

②时间风险:到了预定义的交付日期,可是软件产品还没开发出来;

③资金风险:实际的开发成本可能远超预算;

④人力风险:产品完成之前,一些关键的开发人员跳槽了;

⑤对手风险:产品投入市场之前,竞争对手发布了一个功能相近、价格更低的软件等。可以说风险无处不在,项目越大越复杂,风险越大,因此,需要识别风险并采取措施减少或消除风险带来的危害。

如何降低风险呢?快速原型是一种能使某些类型的风险降至最低的方法,通过在需求分析阶段快速地构建一个原型,能够降低交付给用户的产品不能满足用户需要的风险。但是,原型并不能“包治百病”,对于某些类型的风险,原型方法是无能为力的。

螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险。可以将螺旋模型理解为是在每个阶段之前都增加了风险分析过程的快速原型模型,如图2-7所示。

图2-7 简化的螺旋模型

完整的螺旋模型如图2-8所示,4个象限分别代表了4项活动,分别为制定计划、风险分析、实施工程和客户评估,螺旋模型开发沿着螺旋线进行若干次迭代,每一次迭代是4项活动的一次瀑布式开展过程。

●制定计划:确定软件目标,选定实施方案,弄清楚项目约束条件。

●风险分析:分析评估所选方案,考虑如何识别和消除风险。

●实施工程:实施开发和验证活动。

●客户评估:评价开发工作,提出修正建议,制定下一步计划。

图2-8 完整的螺旋模型

对照图2-8,螺旋模型的过程大致是:首先确定本次迭代的目标,完成这个目标的选择方案及约束条件;然后从风险分析角度分析上一步的工作结果,努力排除各种潜在的风险,有时需要通过建造原型来完成,如果风险不能排除,则停止开发工作,否则启动下一个开发步骤(见图右下象限);最后评价本次迭代的工作成果并计划下一次迭代的工作。

螺旋模型的优点如下:

●对可选方案和约束条件的强调,有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标,减少了过多测试或者是测试不足所带来的风险。

●在螺旋模型中,“维护”只是模型的另一个周期,在维护和开发之间,并没有本质的区别。

●属于演进模型,综合了瀑布模型和快速原型,融入了循环往复、迭代演进的思想。

●增加风险分析,一旦风险成立,原来方案终止、修订,力求风险可控。客户始终参与每个阶段的开发,每个阶段的成果需要客户评估确认,避免错误的积累。

当然,增量模型也会存在一些缺点,如下:

●螺旋模型主要适用于大规模软件项目。如果进行风险分析的费用接近整个项目的经费预算,则风险分析是不可行的。

●一般适用于内部开发的项目,项目越大,风险也越大,因此,进行风险分析的必要性也越大。此外,只有内部开发的项目,才能在风险过大时方便中止项目。

●要求软件开发人员具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险:当项目实际上正在走向灾难时,开发人员可能还认为一切正常。

版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。http://www.apmygs.com/444.html
返回顶部