软件工程(4)--螺旋模型

简介: 软件工程(4)--螺旋模型

前言


这是基于我所学习的软件工程课程总结的第四篇文章。

在软件开发过程中必须及时识别和分析风险,并且采取适当措施以消除或减少风险的危害。构建原型是一种能使某些类型的风险降至最低的方法。为了降低交付给用户的产品不能满足用户需要的风险,一种行之有效的方法是在需求分析阶段快速地构建一个原型。在后续的阶段中也可以通过构造适当的原型来降低某些技术风险。当然,原型并不能"包治百病",对于某些类型的风险(例如,聘请不到需要的专业人员或关键的技术人员在项目完成前"跳槽"),原型方法是无能为力的。


螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险。理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。(摘自 《软件工程导论》第六版   张海藩 牟永敏 著,有删改)

正文

1.螺旋模型 (spiral model)


·软件开发普遍存在风险。


       交付的产品用户不满意.


       产品不能按时交付.


       开发成本超过预算.


       产品开发期间关键开发人员离职.


       产品投入市场前竞争对手发布功能相近价格更低产品.


·把开发活动和风险管理结合起来控制风险。


·开发过程分成若干次迭代,每次迭代代表开发的一个阶段,对应模型中一条环线。


       每次迭代分成四个方面的活动,对应笛卡尔坐标的四个象限:


       确定本阶段目标,选定实施方案,弄清项目开发的限制条件;


       评估所选方案,通过构造原型和风险分析识别和消除风险;


       实施软件开发和验证;


       评价本阶段的工作成果,提出修正建议,并计划下一阶段工作。


·模型结合了瀑布模型和原型模型的特点。


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


·软件模型的主要优势在于,他是风险驱动的,但这也可能是他的一个缺点(开发人员最好有相当丰富的风险评估经验和专门知识)。


284c30f7a5c94d0a85210a17215506ea.jpg



螺旋模型

2.螺旋模型的优点


  • 螺旋模型强调原型的可扩充性和可修改性,原型的进化贯穿整个软件生存周期,这将有助于目标软件的适应能力,支持用户需求的动态变化;
  • 原型可看作可执行的需求规格说明,易于为用户和开发人员共同理解,还可作为继续开发的基础,并为用户参与所有关键决策提供了方便;
  • 螺旋模型为项目管理人员及时调整管理决策提供了方便,进而可降低开发风险。
  • 减少了过多测试或测试不足所带来的风险。
  • 对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标。

3.螺旋模型的缺点


  • 如果每次迭代的效率不高,致使迭代次数过多,将会增加成本并推迟交付时间
  • 使用该模型需要有相当丰富的风险评估经验和专门知识,要求开发队伍水平较高,否则会带来更大风险,可能项目实际走向灾难时,开发人员还以为一切正常。


4.螺旋模型的适用场合


  • 适用于需求不明确或者需求可能发生变化的大型复杂的软件系统。
  • 支持面向过程、面向对象等多种软件开发方法,是一种具有广阔前景的模型。
  • 适用于大规模内部开发项目,分析风险和排除风险



5.小测

包含风险分析的软件工程模型是(D)

A. 喷泉模型 B. 瀑布模型 C. 增量模型 D. 螺旋模型

目录
相关文章
|
架构师 Java 测试技术
【软件工程】为什么要选择软件工程专业?
【软件工程】为什么要选择软件工程专业?
393 0
|
6月前
|
安全 Linux 测试技术
软件工程之维护阶段
软件工程之维护阶段
254 0
|
敏捷开发 测试技术 项目管理
软件工程
一、软件工程 软件工程是一门关于开发、维护和管理软件的学科。它涵盖了软件开发的整个生命周期,包括需求分析、设计、编码、测试、部署和维护等各个阶段。 软件工程的目标是通过系统化的方法和工具来提高软件的质量、可靠性、可维护性和可重用性,以满足用户的需求和预期。它强调在软件开发过程中的规范化、标准化和可管理性,以提高团队的协作效率和项目的成功率。 软件工程包括以下几个主要领域: 1. 软件需求工程:负责收集、分析和定义软件系统的需求,并与用户和相关利益相关者进行沟通和协商。 2. 软件设计:负责将需求转化为具体的软件设计方案,包括系统架构、模块设计、接口设计等。 3. 软件编码:负责根据设计方案进行
375 0
|
开发工具
软件工程总结
软件工程总结
80 0
|
项目管理
软件工程——视频初总
软件工程——视频初总
97 0
|
算法 中间件 测试技术
【总结】软件工程(视频结束)
【总结】软件工程(视频结束)
软件工程(5)--喷泉模型
软件工程(5)--喷泉模型
510 0
软件工程(5)--喷泉模型
|
Java uml
【软件工程】——总结
【软件工程】——总结
87 0
【软件工程】——总结
|
测试技术
软件工程初识
随着微电子技术的进步,计算机硬件,在计算速度、存储容量、外部设备等方面都有了突飞猛进的发展,与此同时,计算机软件的研制与应用也必须跟得上硬件飞速发展的节奏。
软件工程初识