对于复杂的大型软件,开发一个原型往往达不到要求。螺旋模型将瀑布模型和演化模型结合起来,加入了两种模型均忽略的风险分析,弥补了这两种模型的不足。
螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合。每个螺旋周期分为如下 4 个工作步骤。
1、制订计划。确定软件的目标,选定实施方案,明确项目开发的限制条件。
2、风险分析。分析所选的方案,识别风险,消除风险。
3、实施工程。实施软件开发,验证阶段性产品。
4、用户评估。评价开发工作,提出修正建议,建立下一个周期的开发计划。
螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,从而做出应有的反应。因此,该模型特别适用于庞大、复杂并且具有高风险的系统。
与瀑布模型相比,螺旋模型支持用户需求的动态变化,为用户参与软件开发的所有关键决策提供了方便,有助于提高软件的适应能力,并且为项目管理人员及时调整管理决策提供了便利,从而降低了软件开发的风险。在使用螺旋模型进行软件开发时,需要开发人员具有相当丰富的风险评估经验和专门知识。另外,过多的迭代次数会增加开发成本,延迟提交时间。