新闻动态NEWS

当前位置:主页 > 新闻动态 > 公司新闻 > 公司新闻

软件过程模型之增量模型和螺旋模型

    增量模型
 
       苏州软件认为单纯的瀑布模型和原型模型都有优缺点,对于绝大多数大型项目来说,需要对不同的部分采用不同的方法。这就需要研究混合式过程,使其既包括瀑布模型的优点又涵盖原型模型的优点。增量模型就是在这样的思想背景下提出的混合式模型。
       如图2.4所示,增量模型把软件视为一个可添加的系统,像堆积木一样每次通过分析、设计、编码、测试交付一个模块或子系统,逐步完成。当然,首先交付的应当是对系统有决定作用的基础模块,如系统菜单,其次是业务中心子系统。当用户对先交付的模块验收满意后再开发后继模块。
 
       苏州安卓软件开发认为增量模型融合了线性顺序模型的基本成分(重复地应用)和原型的迭代特征。增量模型采用随着日程时间的进展而交错的线性序列。每一个线性序列产生软件的一个可发布的“增量”。当使用增量模型时,第一个增量往往是核心产品,即实现了基本的需求,但很多补充的特性(其中一些是已知的,另外一些是未知的)还没有发布。核心产品交用户使用(或进行更详细的复审),使用和/或评估的结果是下一个增量的开发计划。该计划包括对核心产品的修改,使其能更好地满足用户的需要,并发布一些新增的特点和功能。这个过程在每一个增量发布后不断重复,直到产生最终的完善产品。
 
       采用增量模型的优点如下。
 
       (1)人员分配灵活,刚开始不用投人大量人力资源。如果核心产品很受欢迎,则可增加人力实现下一个增量。
 
       (2)当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。这样即可先发布关键功能给客户,对客户起到镇静剂的作用。
 
       (3)客户可以将早期的增量作为原型,从中获得对后面增量的需求经验。
 
       (4)项目总体失败风险小,即使出现问题,总有一些增量可以交付客户。
 
       (5)关键的服务最早被开发,而后面的增量是不断被集成进来的,这就使得最重要的增量会接受最多的测试。
 
       增量模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。整个产品被分解成若干个增量,开发人员逐个增量地交付产品,这样做也存在许多问题。
 
       (1)由于各个增量是逐渐并人已有的软件体系结构中的,所以加入新增量必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。
 
       (2)在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力远远优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而使软件过程的控制失去整体性。
 
       增量过程模型,像原型和其他演化方法一样,具有迭代的特征。但与原型不一样,增量模型强调每一个增量均发布一个可操作产品。早期的增量是最终产品的“可拆卸”版本,但它们确实提供了给用户服务的功能,并且提供了给用户评估的平台。
 
       苏州adnroid开发认为增量式方法的一个进化是极限编程,它通过不断开发和交付非常小的功能增量来实现系统。极限编程强调持续反馈和尽早发现问题,适用于在开发软件过程中面对模糊或者快速多变的需求。Beck的文章介绍了使用这种方法的一些成功项目,但这种方法还处于发展过程中。
 
       螺旋模型
 
       1988年,Barry Boehm正式发表了软件系统开发的螺旋模型,它同样是一种混合模型,也是将瀑布模型和快速原型模型结合起来,不同之处在于它强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。
       如图2.5所示,螺旋模型将软件过程划分为若干个螺旋线。螺旋线的每个回路表示软件过程的一个阶段。因此,最里面的回路可能与可行性有关,接下来的回路与系统需求有关,再下一个回路与系统设计有关,等等。螺旋线的每个回路又被分成4个部分,图中的4个象限代表了这4个部分。
 
       (1)制订计划:为项目的这个阶段定义目标,规划可选的实施方案,弄清项目开发的限制条件。
 
       (2)风险分析:分析评估所选方案,考虑如何识别和消除风险。
 
       (3)实施工程:实施软件开发和验证。
 
       (4)客户评估:评价开发工作,提出修正建议,制订下一步计划。
 
       螺旋模型采用一种周期性的方法来进行系统开发。这会导致开发出众多的中间版本。早期的版本可以作为原型供客户使用,或为客户证实某些概念。采用螺旋模型的过程整体上类似于快速原型法,以进化的开发方式为中心,在每个项目阶段使用瀑布模型法。瀑布模型的每一个周期都包括前述4个阶段,由这4个阶段进行选代。软件开发过程每迭代一次,软件开发又前进一个层次。采用螺旋模型的软件过程如图2.6所示。
 
       苏州自动化软件认为螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,继而作出应有的反应,因此特别适用于庞大、复杂并具有高风险的系统。对于这些系统,风险是软件开发不可忽视且潜在的不利因素,它可能在不同程度上损害软件开发过程,影响软件产品的质量。减小软件风险的目标是在造成危害之前,及时对风险进行识别及分析,决定采取何种对策,进而消除或减少风险的损害。
 
       螺旋模型由风险驱动、强调可选方案和约束条件,从而有助于将软件质量作为特殊目标融人产品开发之中。但是,采用螺旋模型开发软件也存在一些问题和限制条件,具体如下。
 
       (1)螺旋模型强调风险分析,但要求许多客户接受和相信这种分析,并作出相关反应是不容易的,因此,这种模型往往适应于内部的大规模软件开发。
 
       (2)如果执行风险分析将极大地影响项目的利润,那么进行风险分析毫无意义,因此,螺旋模型只适合于大规模软件项目。
 
       (3)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。
 
       (4)过多的迭代次数会增加开发成本,延迟提交时间。
 
       螺旋模型和增量模型都是以某个原型或初始于集为基础,通过不断的演化得到满足用户需求的软件产品,两者之间的区别如下。
 
       (1)螺旋模型是事先定义大部分需求,开发过程中计划性比较强。而增量模型是事先定义少部分需求,灵活的迭代开发和经常的客户反馈,减少了项目风险。
 
       (2)螺旋模型在过程级迭代,增量模型在活动级选代。
 
       (3)螺旋模型每次选代都提交一个完整的软件版本,而增量模型每次增量开发是在上次增量的基础上提交新的一部分软件。

在线咨询
在线咨询
在线客服