MILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">从图l·3可以看出,RAD模型避免了瀑布模型所带来的误区——软件测试是在代码完成之后进行。RAD模型说明软件测试的工作很早就町以开始了,项目一启动,软件测试的工作也就启动了。
图l一3改进曲RAD模型及其解释
从垂直方向看
水平虚线上部表明,其需求分析、功能设计和验收测试等主要工作是面向用户,要和用户进行充分的沟通和变流,或者是和用户一起完成。水平虚线下部的大部分工作,相对来说,都是技术工作,在开发组织内部进行,由工程师完成。
所以RAD模型一般适合信息系统应用软件的开发,而不适合高性能、技术风险高或不易模块化的系统开发。如果一个系统难以被适当地模块化,那么就很难建立RAD所需的构件;如果系统具有高性能的指标,且该指标必须通过调整接口使其适应系统构件才能达到,使用RAD方法可能会导致整个项目失败。
3螺旋模型
螺旋模型,最早是由Boehm提出来的,是一个个演化软件过程模型,它将原型的迭代特征与线性顺序模型中控制和系统化方面结合起来,使得软件增量版本的快速开发成为司能。在螺旋模型中,软件开发是一系列的增量发布。在早期的迭代中,发布的增量可能是一个纸上的模型或原型;在以后的迭代中,更加完善的被开发系统版本逐步产生。
螺旋模型被划分为若干框架活动,也称任务区域。一般情况下,有3~6个任务区域。图l一4形象地描述了包含4个任务区域的螺旋模型。
· 目标、选择和限制:系统要达到的目标,同时要受预算、时间等条件的限制,而
且必须作出一定的选择和取舍。
· 风险评估:基于上述目标,评估技术及管理的风险,以决定如何实施项目。
· 开发和测试:包括系统需求分析、概要设计、详细设计、编程、单元测试、系统
测试和验证测试等项目具体实施的各种任务。
·计划:定义资源、进度及其他相关项目信息所需要的任务,以调整项目的目标和
改善系统实施的效率
图L-4螺旋模型及其解释
随着演化过程的开始,软件工程项目组按顺时针方向沿螺旋移动,从核心开始。螺旋的第1圈可能产生产品的规格说明;接续的螺旋可能用于开发一个原型;随后可能是更加
完善的下一个版本软件a经过计划区域的每一圈是基于从用户评估得到的反馈,调整费用和进度。此外,项目管理者可以调整完成软件所需计划的迭代次数。
与传统的过程模型不同,在螺旋模型中,软件变付了并不意味着结束,其适用于计算机软件的整个生命周期。一个“概念开发项目”从螺旋的核心(水平轴)开始真持续到概念开发结束。如果概念被开发成真正的产品,过程从水平轴~个新的起点开始,意味着一个新的开发项目启动了。
本质上,具有上述特征的螺旋是一直运转的,直到软件退役。有时这个过程处于睡眠状态,但任何时候出现了改变,过程都会从合适的入Vl点(如产品增强)开始。
对于大型系统及软件的开发来说,螺旋模型是一个很现实的方法。因为软件随着过程的进化演变,开发者和用户能够更好地理解和对待每一个演化级别上的风险。螺旋模型使
用原型作为降低风险的机制,更重要的是,它使开发者在产品演化的任一阶段均可应用原
型方法。它保持了传统生命周期模型中系统的、阶段性的方法,但将其并进了迭代框架,更加真实地反映了现实世界。螺旋模型要求在项目的所有阶段直接接考虑技术风险,如果应用得当,能够在风险变成问题之前降低它的危害。
不过,和其他模型一样,螺旋模型也不是十全十美的。它可能难以使用户(尤其在有
合同约束的情况下)相信演化方法是可控的;它需要相当的风险评估的专fq,i童术,且其成
功依赖于这种专门技术,如果一个大的风险未被发现和管理,毫无疑问会出现问题;最后,该模型本身相对比较新,不像线性顺序模型或原型模型模型那样已经被广泛应用。
4增量模型和迭代模型
软件开发不是一蹴而就,其过程犹如雕琢一件工艺品,南无形到有形、由粗到细,很难一次就能开发出功能完善、强大的一个版本,而往往是分阶段进行,一个版本接一个版本的发布。其主要原因是:
· 市场的压力和竞争策略的需要。较早地、不失时机地占领市场对软件企业是很重
要的,如果软件企业用太长时间把一个完美的、功能强大的软件产品开发出来,
可能市场已经被对手占领了。作为一个优秀的软件公司,会处理好市场策略和产
品功能的平衡。
· 产品的开发预算是有限的,产品的开发周期和资源会受到预算的限制。
· 软件的复杂程度小断提高,增加了项目失败的川能性,将个产品进行分阶段处
理,可以尽早发现产品的市场问题或方向错误,降低风险。
· 软件的复杂程度不断提高,也使系统的分析和设计也变得非常困难。对丁越来
越复杂、庞大的系统,多数情况下,不容易一次性整体实现,而是通过分解逐
步实现。
所以软件在实际开发过程中是按阶段进行,逐步完善或深化系统的功能,如图I.5
所示。
软件开发分阶段可以通过两种模型来描述,即增量模型和迭代模型。
· 增量模型描述软件产品的不同阶段是按产品所具有的功能进行划分,先开发主
要功能或用户最需要的功能,然后,随着时间推进,不断增加新的辅助功能或次
要功能,晟终开技朴一个强大的、功能完善的、高质量的、稳定的产品,如图1.6
所示。
· 迭代模型描述软件产品的不刚阶段是按产品深度或细化的程度来划分。先将产
品的整个框架都建立起来,在系统的初期,已经具有用户所需求的全部功能。然
后,随着时间推进,不断细化已有的功能或完善已有功能,这个过程好像是一个
软件迭代的过程,如图1—7所示。最终的目标是一致的,也是为了实现一个强大的功能完善的、高质量的、稳定的产品。
文章来源于领测软件测试网 https://www.ltesting.net/