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

news/2024/11/2 4:34:54/

前言 

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

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

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

正文 

1.螺旋模型 (spiral model)

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

        交付的产品用户不满意.

        产品不能按时交付.

        开发成本超过预算.

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

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

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

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

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

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

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

        实施软件开发和验证;

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

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

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

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

 螺旋模型

2.螺旋模型的优点

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

3.螺旋模型的缺点

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

4.螺旋模型的适用场合

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

5.小测

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

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


http://www.ppmy.cn/news/24578.html

相关文章

linux的三权分立设计思路和用户创建(安全管理员、系统管理员和审计管理员)

目录 一、三权分立设计思路 1、什么是三权 2、三员及权限的理解 3、三员之三权 4、权限划分 5、“三员”职责 6、“三员”配置要求 二、linux三权分立的用户创建 1、系统管理员 2、安全管理员 3、审计管理员 一、三权分立设计思路 1、什么是三权 三权指的是配置、…

Python|每日一练|数组|回溯|哈希表|全排列|单选记录:全排列 II|插入区间|存在重复元素

1、全排列 II(数组,回溯) 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 1: 输入:nums [1,1,2]输出:[[1,1,2], [1,2,1], [2,1,1]] 示例 2: 输…

Linux多线程

目录 一、认识线程 1.1 线程概念 1.2 页表 1.3 线程的优缺点 1.3.1 优点 1.3.2 缺点 1.4 线程异常 二、进程 VS 线程 三、Linux线程控制 3.1 POSIX线程库 3.1 线程创建 3.3 线程等待 3.4 线程终止 3.4.1 return退出 3.4.2 pthread_exit() 3.4.3 pthread_cancel…

【DSP视频教程】第11期:插补算法,曲线拟合丝滑顺畅,统计函数和基础函数加速实现,汇集SIMD,饱和和MAC乘累加应用实战(2023-02-12)

视频教程汇总帖:https://www.armbbs.cn/forum.php?modviewthread&tid110519 DSP视频教程有段时间没有更新了。 当前DSP库从CMSIS软件包里面独立出来,并且更新非常频繁,所以本期视频教程优先给大家简单介绍下新版DSP, 然后为…

AXI-Lite 学习笔记

AXI-Lite 学习笔记 参考 FPGA:AXI_Lite总线基础2-1]、第二节 AXI总线介绍、ZYNQ PL与PS交互专题_哔哩哔哩_bilibili AXI-Lite总线系列1 - 基础知识_哔哩哔哩_bilibili AXI4 介绍 AXI4 是ARM公司提出的一种片内总线,描述了主从设备之间的数据传输方式。主…

移动设备安全管理基础指南

什么是移动安全管理 (MSM) 移动安全管理是指为保护企业中的移动设备和企业数据而采取的行动。这些操作可以进一步被归类为反应性的或主动的,基于该操作是在数据和设备被破坏之前还是之后执行的。除了管理移动设备外,大多数MDM解决…

3分钟,学会了一个调试CSS的小妙招

Ⅰ. 作用 用于调试CSS , 比控制台添更加方便,不需要寻找 ;边添加样式,边可以查看效果,适合初学者对CSS 的理解和学习; Ⅱ. 快速实现(两边) ① 显示这个样式眶 给 head 和 style 标签添加一个…

如何变得强大

如何变得强大 说到“强大”,外界的因素往往无法起到决定性的影响和作用。一个真正强大的人,他对待人生的态度和直面自我的能力才是其强大的源头。来跟大家分享两种方法,希望你能获得更有意义的人生选择,并能够更好的内化自己过往的…