螺旋模型适用于什么样的软件开发(螺旋模型适用于大型软件开发吗)

软件开发 1717
本篇文章给大家谈谈螺旋模型适用于什么样的软件开发,以及螺旋模型适用于大型软件开发吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、螺旋模型 2、

本篇文章给大家谈谈螺旋模型适用于什么样的软件开发,以及螺旋模型适用于大型软件开发吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

螺旋模型

4.1什么是螺旋模型

螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径

螺旋模型是快速原型模型以进化的开发方式为中心,在每个项目阶段使用瀑布模型法。该模型的每一个周期都包括需求定义、风险分析、工程实现和评审4个阶段,由这4个阶段进行迭代。软件开发过程每迭代一次,软件开发又前进一个层次。用螺旋模型的软件过程如下

简化的螺旋模型

完整的数据模型

图中带箭头的点划线的长度代表当前累计的开发费用,螺旋线的角度值代表开发进度,螺旋线的每个周期对应于一个开发阶段

图中的四个象限代表了以下活动

制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件

风险分析:分析评估所选方案,考虑如何识别和消除风险

实施工程:实施软件开发和验证

客户评估:评价开发工作,提出修正建议,制定下一步计划

4.2特点

螺旋模型在“瀑布模型”的每一个开发阶段前引入一个非常严格的风险识别、风险分析和风险控制,它把软件项目分解成一个个小项目。每个小项目都标识一个或多个主要风险,直到所有的主要风险因素都被确定

螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,继而做出应有的反应,因此特别适用于庞大、复杂并具有高风险的系统

4.3优缺点

优点

对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标

减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险

在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别

缺点

采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失

过多的迭代次数会增加开发成本,延迟提交时间

4.4限制条件

螺旋模型强调风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的,因此,这种模型往往适应于内部的大规模软件开发

如果执行风险分析将大大影响项目的利润,那么进行风险分析毫无意义,因此,螺旋模型只适合于大规模软件项目

软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险

一个阶段首先是确定该阶段的目标,完成这些目标的选择方案及其约束条件,然后从风险角度分析方案的开发策略,努力排除各种潜在的风险,有时需要通过建造原型来完成。如果某些风险不能排除,该方案立即终止,否则启动下一个开发步骤。最后,评价该阶段的结果,并设计下一个阶段

螺旋模型适用于哪些项目?

螺旋模型基本的做法是在“瀑布模型”的每一个开发阶段之前,引入非常严格的风险识别、风险分析和风险控制。直到采取了消除风险的措施之后,才开始计划下一阶段的开发工作。否则,项目就很可能被取消。

另外,如果有充足的把握判断遗留的风险已降低到一定的程度,项目管理人员可作出决定让余下的开发工作采用另外的生命周期模型,如“演化模型”,“瀑布模型”,或自定的混合模型。

优点:

a.强调严格的全过程风险管理。

b.强调各开发阶段的质量。

c.提供机会检讨项目是否有价值继续下去。

缺点:

a.引入非常严格的风险识别,风险分析,和风险控制,这对风险管理的技能水平提出了很高的要求。这需要人员,资金,和时间的投入。

螺旋模型是瀑布模型与演化模型相结合,并加入两者所忽略的风险分析所建立的一种软件开发模型。该模型于1998年由美国TRW公司(B.W.Boehm)提出。软件项目风险的大小作为指引软件过程的一个重要因素,引入这一概念有可能使得软件开发被看作一种元模型,因为它能包容任何一个开发过程模型。

快速原型是指 在进行了基本需求分析之后,快速开发出产品的原型,然后基于这个原型,同客户沟通、交流,更好地了解客户需求,不断修改这个原型,到了双方认可的程度,再做详细地分析、设计和编程,最终开发出令客户满意的产品。

一般步骤如下:

–(1) 先定义软件的总体目标,根据已知的需求来规划出可实现的区域。

–(2) 然后是“快速设计”,集中于系统的总体框架、基本功能和直观的输入方式和输出格式等。

–(3) 有了原型,使客户对系统实现哪些具体功能、功能实现到什么程度有更好的理解。开发者可以边开发边评估,不断细化软件的需求,逐步调整原型使其满足客户的要求。这形成一个迭代的过程。

即使开始建立的原型过于简单或性能很差,难以使用,但为下一次建立适用的模型积累了经验,而浪费的成本、时间有限。

原型模型的优点是使用户能够感受到实际的系统,使开发者能够快速地构造出系统的框架。

原型模型的缺点是产品的先天性不足,因为开发者常常需要做实现上的折中,可能采用不合适的操作系统或程序设计语言,以使原型能够尽快工作。

RAD模型

RAD(rap application development)模型,即快速应用开发模型。由于其模型构图形似字母“V”,故也称V模型,是属于线性顺序一类的软件开发模型。它通过使用基于构件的开发方法来缩短产品开发的周期,提高开发的速度。RAD模型实现的前提是能做好需求分析,并且项目范围明确,这一点正好和原型模型相反。

RAD模型还有一种改进型,将“编码”从V字型的顶点移到左侧,和单元测试对应,从而构成水平的对应关系。

从水平对应关系看

左边是设计和分析,右边是验证和测试。右边是对左边结果的检验,即对设计和分析的结果进行测试,以确认是否满足用户的需求。如:

需求分析和功能设计对应验收测试,说明在做需求分析、产品功能设计的同时,测试人员就可以阅读、审查需求分析的结果,从而了解产品的设计特性、用户的真正需求,可以准备用例(use case)。

当系统设计人员在做系统设计时,测试人员可以了解系统是如何实现的,基于什么样的平台,这样可以事先准备系统的测试环境,包括硬件和第三方软件的采购。因为这些准备工作,实际上要很长时间才能完成。

在做详细设计时,测试人员就可以准备测试用例(test case,以有效地发现软件缺陷的最小测试执行单元)。

一面编程,一面进行单元测试,是一种很有效的办法,使我们可以尽快找出程序中的错误。充分的单元测试可以大幅度提高程序质量、减少成本。

从图可以看出,RAD模型避免了瀑布模型所带来的误区——软件测试是在代码完成之后进行。RAD模型说明软件测试的工作很早就可以开始了,项目一启动,软件测试的工作也就启动了。

从垂直方向看

水平虚线上部表明,其需求分析、功能设计和验收测试等主要工作是面向用户,要和用户进行充分的沟通和交流,或者是和用户一起完成。水平虚线下部的大部分工作,相对来说,都是技术工作,在开发组织内部进行,由工程师完成。

所以RAD模型一般适合信息系统应用软件的开发,而不适合高性能、技术风险高或不易模块化的系统开发。如果一个系统难以被适当地模块化,那么就很难建立RAD所需的构件;如果系统具有高性能的指标,且该指标必须通过调整接口使其适应系统构件才能达到,使用RAD方法可能会导致整个项目失败。

发表于 @ 2007年04月14日 10:13:00|评论(1)|编辑

新一篇: 不顺 | 旧一篇: js动画——图片轮播评论

#gauss32 发表于2007-04-14 10:24:36 IP: 124.160.110.*

喷泉模型fountain model

喷泉模型主要用于采用对象技术的软件开发项目,喷泉一词本身就体现了迭代和无间隙的特性。(喷泉中的水循环使用,不间断的喷出)软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。无间隙指在各项活动之间无明显边界,如分析和设计活动之间没有明显的界限,由于对象概念的引入,表达分析、设计、实现等活动只用对象类和关系,从而可以较为容易地实现活动的迭代和无间隙,使其开发自然地包括复用。

哪种软件开发模型强调风险分析,客户参与度高?

螺旋模型软件开发模型强调风险分析,客户参与度高。

螺旋模型强调了风险分析,这意味着对可选方案和限制条件都进行了评估,更有助于将软件质量作为特殊目标融入产品开发之中。

螺旋模型由巴利·玻姆(Barry Boehm)于1988年提_,该模型融合了瀑布模型、快速原型模型,它最大的特点是引入了其他模型所忽略的风险分析,如果项目不能排除重大风险,就停止项目从而减小损失。这种模型比较适合开发复杂的大型软件。

软件开发瀑布模型适用于

软件开发瀑布模型适用于以下场景:

1、需求在规划和设计阶段就已确定,且项目开发周期内需求没有或极少变化,对需求变更进行严格控制,例如航空航天、金融核心系统等。

2、稳定的低风险项目(对目标、环境非常熟悉),规模小实现简单易受控的项目。

3、合同式的合作方式,严格按照说明执行,客户需求明确且不参与软件实现过程。

瀑布模型

1、瀑布模型的优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。

2、瀑布模型的缺点:开发过程一般不能逆转,否则代价太大;很难严格按该模型进行。

3、瀑布模型的使用范围:用户的需求非常清楚全面,且在开发过程中没有或很少变化,对软件的应用领域很熟悉;用户的使用环境非常稳定;开发工作对用户参与的要求很低。

快速原型模型

1、快速原型模型的优点:可以得到比较良好的需求定义,容易适应需求的变化;有利于开发与培训的同步;费用低、开发周期短且对用户更友好。

2、快速原型模型的缺点:客户与开发者对原型理解不同; 准确的原型设计比较困难; 不利于开发人员的创新。

3、快速原型模型的使用范围:对所开发的领域比较熟悉而且有快速的原型开发工具;项目招投标时,可以以原型模型作为软件的开发模型;进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型是非常适合的。

增量模型

1、增量模型的优点:优点是人员分配灵活,刚开始不用投入大量人力资源;可先发布部分功能给客户,对客户起到镇静剂的作用。

2、增量模型的缺点:并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。

3、增量模型的使用范围:进行已有产品升级或新版本开发,增量模型是非常适合的,完成期限严格要求的产品,可以使用增量模型对所开发的领域比较熟悉而且已有原型系统,增量模型也是非常适合的。

螺旋模型

1、螺旋模型的优点:灵活性,可以在项目的各个阶段进行变更计算变得简单容易;客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。

2、螺旋模型的缺点:需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;会增加开发成本,延迟提交时间。

3、螺旋模型的使用范围:螺旋模型只适合于大规模的软件项目。

螺旋模型是哪两种模型的结合

螺旋模型是瀑布模型和演化模型的结合。

螺旋模型将瀑布模型和演化模型结合起来,加入了两种模型均忽略的风险分析,弥补了这两种模型的不足。螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,继而做出应有的反应。因此特别适用于庞大、复杂并且具有高风险的系统。

与瀑布模型相比,螺旋模型支持用户需求的动态变化,为用户参与软件开发的所有关键决策提供了方便,有助于提高软件的适应能力,并且为项目管理人员及时调整管理决策提供了便利,从而降低了软件开发的风险。

关于螺旋模型适用于什么样的软件开发和螺旋模型适用于大型软件开发吗的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

扫码二维码