常见的软件生命周期模型

1.1.5  常见的软件生命周期模型

目前来讲,主要的软件生命周期模型有如下几种。

Big-Bang:大爆炸模型。

Waterfall:瀑布模型。

Spiral:螺旋模型。

Code and Fix:边做边改模型。

由于本书并不是以软件工程为探讨内容,因此在这里只通过人们过河的类比来简单介绍一下前述这几种软件生命周期模型的特点。

小学课本里有个寓言叫做"小马过河",小马在过河前遇到了不同的小动物,它们对于河水深度的理解是不同的,会导致小马过河时的不同选择,参见图1-1。假设把待开发的软件产品比喻为小马面前横着的那条小河,那么开发软件的过程也就是过河的过程,那么如何过河就会有不同的结果。

图1-1  小马过河:对河深度的理解影响过河的方

1.1.6 直接冲过河去的大爆炸模型

大爆炸这个名称来自于天体物理有关宇宙形成方式的一种理论:宇宙是在亿万年前的大爆炸中诞生的。与此类似,软件开发公司把金钱、办公场地和人员全部投入到一个产品的开发当中,经过一段时间,产品出炉,这样的形式就是大爆炸模型。

大爆炸模型的优点就是简单,没有很多的软件设计,对项目的管理也很少,目前不少小公司由于各方面的限制不得已或者不自觉地采用了这样的开发模型。但是它的优点也造成了它的缺点:开发出来的软件质量不可控制。

在这样的模型中,由于没有周密的计划,软件测试往往是在产品即将上市的前夕才开始,在很多公司中甚至没有专职的测试工程师,由开发人员或者其他人员代劳,因此测试人员面对的产品与客户、使用者要面对的产品基本一致。从前文所述可以得知,在这样的阶段发现Bug,返工修改代码的代价是非常大的。

回到过河的比喻中来,大爆炸模型就相当于小马先退后几步,集中精力和能量,然后快速冲过去。这样的结果取决于河的宽度和深度。如果软件非常复杂,很可能过河的小马半途就淹死了,无法到达对岸。

1.1.7 摸着石头过河的边做边改模型

边做边改模型比起大爆炸模型来说进了一步。在开发软件产品的开始阶段,先有一个大概的设计,然后开始编码,测试,发现Bug,修改Bug这样的循环,直到整个产品的轮廓日渐清晰,最终完成产品。用一句俗话来描述,就是"摸着石头过河"的过程:先以河里的一些石头为支点,走入河道,再经过不断的试探和返回得到一条路线,最终到达目的地。

由此可见,边做边改模型中测试的参与要比大爆炸模型中要早得多,而且也重要得多。边做边改模型的优点就是适用于某些中小型项目的快速开发,软件产品的成果也会在最早的阶段显现出来:和在岸边冥思苦想如何过河的人相比,先站在河道里的石头上,总是让人看到更多的希望。

【边做边改模型被较多采用】

这种开发模型被大多数公司所采用,是大多数测试工程师在实际工作中最常遇到的开发模型之一。而且,它和最近几年很流行的敏捷开发也有一定的关系。

1.1.8 制定周密过河计划的瀑布模型

从现在开始,下面的这两个模型就不适合小马了,只有人和外星人才有这样的能力。如图1-2介绍了软件开发的瀑布模型,由于图中的箭头好像瀑布的水流,从上至下,因此得名。

 
图1-2  瀑布模型示意图

回到过河的例子中来,瀑布模型过河具备如下特点:

过河前,首先花费大部分的时间对河进行详细的勘察,选择合适的下水点,选择合适的过河工具,制定详细的分步骤过河计划。

一旦过河计划制定,将不会大更改,开始过河。在河中完全按照计划进行,无法返回起点。这也是为什么称此模型为瀑布的原因,瀑布是飞流直下三千尺,想从下面返回瀑布的顶端,何其难。

在每步骤即将完成时,都会对这一步骤进行总结,如果进行下一步骤的条件不具备,将停留在原地,等待条件具备。

瀑布模型看起来给人很专业的感觉,所以,对于软件开发人员有比较高的要求。

要对待开发的软件(或者要过的河)有细致、全面、准确的了解。如果理解错误,将导致计划失败,没有返回重来的机会。

职业素质、职业纪律要比较高。软件开发人员要具备坚定执行计划的能力。

这种要求也就产生了瀑布模型的缺点,那就是无法完美适应当今要求快速开发产品,从而占领市场的软件行业现状。因为制定详细的、理解完整的计划很难,聚合很多专业的开发人员有时候也很难,而市场对于软件更新换代的要求期限越来越短。为了适应变化,人们又提出了螺旋模型。

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种软件开发流程的优缺点

开发流程分类

优    点

缺    点

大爆炸模型

简单,不用学习就会

拍脑门的想法,产品质量

无法保证。尽量避免使用

边做边改模型

快速得到可运行的版本

计划有些缺乏,导致版本前

后变化较大。可选择的模型之一

瀑布模型

计划周密,专业,

按部就班实现

相对难于做到快速开发,

以抢占市场。可选择的模型之一

螺旋模型

计划变化同时考虑

可选择的模型之一


当然,在几十年的软件开发过程中,人们还提出了很多其他的开发模型,不过,作为测试工程师,我们对这几种主流模型有所了解就可以了。进一步深入的内容并不是本书所讲述的范畴,读者可以参看软件工程的相关书籍。



 
 
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值