软件评测时笔记_软件开发模型学习20161021

软件开发模型
为了指导软件的开发,可以用不同的方式将软件生命周期中的所有开发活动组织起来,从而形成了不同的软件开发模型。常见的开发模型有瀑布模型(Waterfall Model)、快速原型模型(Rapid Prototype Model)、演化模型(Evolutionary Model)、增量模型(Incremental Model)、螺旋模型(Spiral Model)和喷泉模型(Water Fountain Model)等。
1.瀑布模型
瀑布模型严格遵循软件生命周期各阶段的固定顺序:计划、分析、设计、编程、测试和维护,上一阶段完成后才能进入下一阶段,整个模型就像一个飞流直下的瀑布,如图6-9所示。
 
图6-9 瀑布模型示意图
瀑布模型有许多优点:可强迫开发人员采用规范的方法;严格规定了各阶段必须提交的文档;要求每个阶段结束后,都要进行严格的评审。
但瀑布模型过于理想化,而且缺乏灵活性,无法在开发过程中逐渐明确用户难以确切表达或一时难以想到的需求,直到软件开发完成之后才发现与用户需求有很大差距,此时必须付出高额的代价才能纠正这一偏差。
 
2.快速原型模型
快速原型是指快速建立起来的可以在计算机上运行的程序,它所完成的功能往往是最终软件产品功能的一个子集。快速原型模型的第一步是快速建立一个能反映用户主要需求的软件原型,让用户在计算机上使用它,通过实际操作了解目标系统的概貌。开发人员按照用户提出的意见快速地修改原型系统,然后再次请用户试用,一旦用户认为这个原型系统确实能够满足他们的需求,开发人员便可据此书写软件需求说明,并根据这份文档开发出可以满足用户真实需求的软件产品。
原型化方法基于这样一种客观事实:并非所有的需求在系统开发之前都能准确地说明和定义。因此,它不追求也不可能要求对需求的严格定义,而是采用了动态定义需求的方法。
具有广泛技能、高水平的原型化人员是原型实施的重要保证。原型化人员应该是具有经验与才干、训练有素的专业人员。衡量原型化人员能力的重要标准是他是否能够从用户的模糊描述中快速获取实际的需求。
 
3.演化模型
演化模型也是一种原型化开发方法,但与快速原型模型略有不同。在快速原型模型中,原型的用途是获知用户的真正需求,一旦需求确定了,原型即被抛弃。而演化模型的开发过程,则是从初始模型逐步演化为最终软件产品的渐进过程。也就是说,快速原型模型是一种“抛弃式”的原型化方法,而演化模型则是一种“渐进式”的原型化方法。
 
4.增量模型
增量模型是第三种原型化开发方法,但它既非“抛弃式”的,也非“渐进式”的,而是“递增式”的。增量模型把软件产品划分为一系列的增量构件,分别进行设计、编程、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。如何将一个完整的软件产品分解成增量构件,因软件产品特点和开发人员的习惯而异,但使用增量模型的软件体系结构必须是开放的,加入新构件的过程必须简单方便,新的增量构件不得破坏已经开发出来的产品。其示意图如图6-10所示。
 
图6-10 增量模型示意图
 
5.螺旋模型
螺旋模型综合了瀑布模型和演化模型的优点,还增加了风险分析。螺旋模型包含了4个方面的活动:制订计划、风险分析、实施工程、客户评估。这4项活动恰好可以放在一个直角坐标系的4个象限,而开发过程恰好像一条螺旋线。采用螺旋模型时,软件开发沿着螺旋线自内向外旋转,每转一圈都要对风险进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个概念项目。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。其示意图如图6-11所示。
 
图6-11 螺旋模型示意图
 
6.喷泉模型
喷泉模型主要用于描述面向对象的开发过程。喷泉一词体现了面向对象开发过程的迭代和无间隙特征。迭代意味着模型中的开发活动常常需要多次重复,每次重复都会增加或明确一些目标系统的性质,但却不是对先前工作结果的本质性改动。无间隙是指在开发活动(如分析、设计、编程)之间不存在明显的边界,而是允许各开发活动交叉、迭代地进行。
 
posted @ 2016-11-25 23:39  blueblueone  阅读(284)  评论(0编辑  收藏  举报