软件开发模型定义与讲解

发表于:2008-05-05来源:作者:点击数: 标签:模型软件开发讲解定义
在瀑布模型中,软件 开发 的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,假如验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。 瀑布模型强调文

在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,假如验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。 

瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃,其主要问题在于: 

(1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量; 

(2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险; 

(3)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。 

 

我们应该熟悉到,"线性"是人们最轻易把握并能熟练应用的思想方法。当人们碰到一个复杂的"非线性"问题时,总是千方百计地将其分解或转化为一系列简单的线性问题,然后逐个解决。一个软件系统的整体可能是复杂的,而单个子程序总是简单的,可以用线性的方式来实现,否则干活就太累了。线性是一种简洁,简洁就是美。当我们领会了线性的精神,就不要再呆板地套用线性模型的外表,而应该用活它。例如增量模型实质就是分段的线性模型,螺旋模型则是接连的弯曲了的线性模型,在其它模型中也能够找到线性模型的影子。 

 

在该模型的基础上,还衍生出了强调测试活动的V模型。它把瀑布模型的测试阶段进行细分,并于前面的阶段进行对应。细分出来的这些阶段分别为:单元测试阶段、集成测试阶段和系统测试阶段。V模型的结构图如下。

系统定义维护

-------\-----------------------/------------ 

需求分析.....系统测试


\/

概要设计.....集成测试 

\/ 

 

具体设计...单元测试 

\/ 

编码

3.快速原型模型(RapidPrototypeModel) 

快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满足的软件产品。

显然,快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。 

快速原型的要害在于尽可能快速地建造出软件原型,一旦确定了客户的真正需求,所建造的原型将被丢弃。因此,原型系统的内部结构并不重要,重要的是必须迅速建立原型,随之迅速修改原型,以反映客户的需求。 

 

原文转自:http://www.ltesting.net