1.1.9 计划赶得上变化的螺旋模型
前文提到,为了适应计划和变化两方面的因素,螺旋模型被提出。螺旋模型的示意如图1-3所示。可以看到,它的确很类似一个螺旋。
图1-3 螺旋模型示意图
与边做边改模型类似,螺旋模型也具有循序渐进的特点,对软件最终实现什么不一定有完全确定的理解,而是摸着石头先下水。但是在选择过河的每一个石头前经过了周密的计划和考虑,从这一点看,又类似瀑布模型。可见,螺旋模型实际上是边做边改模型和瀑布模型的有机结合。螺旋模型有如下4个步骤。
(1)确定项目目标、可用资源、各种实现的方法,项目的各个阶段。
(2)在某个阶段中,确认、解决当前阶段项目进展中出现的风险。
(3)评估各种方法,开发、测试代码,实现当前阶段的目标。
(4)总结当前阶段,计划下阶段的目标和实现方法,重复第(2)步。
在图1-3中螺旋线被两条直线划分成4个部分,分别是上述的4个步骤。在每一步骤中由于被直线切割会有多段曲线,每一段曲线就代表了在不同阶段中所进行的相同某个步骤。
【螺旋模型的优点】
由此可见,螺旋模型是多次计划,边做边改,这样既保证了软件开发任务的清晰,也降低了开始一次计划,因为理解不完整或者市场变化后导致项目失败的可能性。
1.1.10 4种模型的总结
前文讲述了4种软件开发模型,那么在具体项目开发中采取哪一种最好呢?答案是它们各有利弊,需要灵活采用。这几种开发流程的优缺点比较如表1-2所示。
表1-2 4种软件开发流程的优缺点
开发流程分类 |
优 点 |
缺 点 |
大爆炸模型 |
简单,不用学习就会 |
拍脑门的想法,产品质量 无法保证。尽量避免使用 |
边做边改模型 |
快速得到可运行的版本 |
计划有些缺乏,导致版本前 后变化较大。可选择的模型之一 |
瀑布模型 |
计划周密,专业, 按部就班实现 |
相对难于做到快速开发, 以抢占市场。可选择的模型之一 |
螺旋模型 |
计划变化同时考虑 |
可选择的模型之一 |
当然,在几十年的软件开发过程中,人们还提出了很多其他的开发模型,不过,作为测试工程师,我们对这几种主流模型有所了解就可以了。进一步深入的内容并不是本书所讲述的范畴,读者可以参看软件工程的相关书籍。