软降工程概述----软件过程

1.4 软件过程

• 1.4.1 概述
• 1.4.2 传统软件过程
• 1.4.3 RUP
• 1.4.4 敏捷过程
• 1.4.5 微软过程

概述

为什么需要过程

  • 软件工程的基本元素
    在这里插入图片描述
  • 过程是重要的:
    – 软件开发过程的制定对软件项目的实施是很重要的
    – 软件开发过程需要文档化,便于交流、培训、改进
    – 软件开发过程的制定应针对具体组织和项目的特点
    – 一个组织最好应该有特定于该组织、一般性的软件开发过
    程,供各个项目剪裁和使用
    – 通过培训让项目组成员了解软件开发过程

什么是过程

  • 针对一个给定目的的一系列的操作步骤
    --(IEEE-STD-610)
    • 例如
    – 目的:去火车站
    – 操作步骤:去德雅路公共汽车站,乘113路汽车
    • 每个过程都有明确的目的以及具体的操作步骤,操
    作步骤说明了有哪些操作以及按照什么样的方式来
    执行操作

什么是软件开发过程

  • 按照项目的进度、成本和质量限制,开发和维护满
    足用户需求的软件所必需的一组有序的软件开发活
    动集合
  • 软件开发过程的例子
    – 需求分析
    – 设计
  • 开发过程的有序例子
    – 先做需求分析,然后再做软件设计 ……
  • 软件过程是为了获得高质量软件所需要完成的一系
    列活动任务的框架,它规定了完成各项任务的工作
    步骤。
  • 软件过程定义了运用方法的顺序、应该交付的文档
    资料、为保证软件质量和协调变化所需要采取的管
    理措施,以及标志软件开发各个阶段任务完成的里
    程碑。

传统软件过程模型

典型的过程模型:

  • 瀑布模型
  • 快速原型模型
  • RAD模型
  • 演化模型
    • 增量模型
    • 螺旋模型

瀑布模型

在这里插入图片描述

几个特点:

  • 阶段间具有顺序性和依赖性
    • 必须等前一阶段的工作完成之后,才能开始后一阶段的工作;
    • 前一阶段的输出文档就是后一阶段的输入文档。
  • 推迟实现的观点
    • 清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现
  • 质量保证的观点
    • 每个阶段都必须完成规定的文档。
    • 每个阶段结束前都要对所完成的文档进行评审

优缺点

  • 优点:
    – 可强迫开发人员采用规范的方法(如结构化技术);
    – 严格地规定了每个阶段必须提交的文档;
    – 要求每个阶段交出的所有产品都必须经过质量保证小组的
    仔细验证。
  • 缺点:
    – 由于瀑布模型几乎完全依赖于书面的规格说明,很可能导
    致最终开发出的软件产品不能真正满足用户的需要。
    – 开发周期长。
    – 前期不能出错。

实际的瀑布模型

当在后面阶段发现前面阶
段的错误时,需要沿图中
左侧的反馈线返回前面的
阶段,修正前面阶段的产
品之后再回来继续完成后
面阶段的任务

在这里插入图片描述

快速原型模型

• Rapid Prototype Model
– 所谓快速原型是快速建立起来的可以在计算机上运行的
程序,它所能完成的功能往往是最终产品能完成的功能
的一个子集。
– 过程:
• 快速建立一个能反映用户主要需求的原型系统
• 用户试用,提出意见
• 修改原型,直到用户满意
• 书写规格说明文档
• 开发软件

快速原型模型

在这里插入图片描述

–主要优点:

• 软件产品的开发基本上是线性顺序进行的。
• 原型系统已经通过与用户交互得到验证,据此产生的规格说明文
档正确地描述了用户需求,因此不会进行较大的返工。
• 开发人员通过建立原型系统已经学到了许多东西,因此,在设计
和编码阶段发生错误的可能性也比较小,减少了在后续阶段需要
改正前面阶段错误的可能性。

关键

开发人员应该尽可能快地建造出原型系统,以加速软件开
发过程,节约软件开发成本。原型的用途是获知用户的真
正需求,一旦需求确定了,原型将被抛弃。因此,原型系
统的内部结构并不重要,重要的是,必须迅速地构建原型
然后根据用户意见迅速地修改原型

增量模型

• 增量模型也称为渐增模型。
• 使用增量模型开发软件时,把软件产品作为一系列
的增量构件来设计、编码、集成和测试。每个构件
由多个相互作用的模块构成,并且能够完成特定的
功能。

增量模型

在这里插入图片描述

优点:

– 能在较短时间内向用户提交可完成部分工作的产品(分批地
逐步向用户提交产品,整个软件产品被分解成许多个增量构件,开发
人员一个构件接一个构件地向用户提交产品)
– 逐步增加产品功能可以使用户有较充裕的时间学习和适应
新产品,从而减少一个全新的软件可能给客户组织带来的
冲击

缺点:

– 软件体系结构必须是开放的,易于扩充;
– 在把每个新的增量构件集成到现有软件体系结构中时,必
须不破坏原来已经开发出的产品。

风险更大的增量模

在这里插入图片描述

RAD模型

  • Rapid Application Develop
    – 快速应用开发是一个线性顺序的软件开发模型,强调极短
    的开发周期。
    – RAD 模型是线性顺序模型的一个“高速”变种,通过使用
    基于构件的建造方法获得了快速开发。

几个开发阶段

– 业务建模
– 数据建模
– 过程建模
– 应用生成
– 测试及反复

螺旋模型

螺旋模型的基本思想: B. Boehm于1988年提出的

  • 使用原型及其他方法来尽量降低风险。理解这种模型的一
    个简便方法,是把它看作在每个阶段之前都增加了风险分
    析过程的快速原型模型。

  • 项目越大,软件越复杂,承担该项目所冒的风险也越大。
    软件风险可能在不同程度上损害软件开发过程和软件产品
    质量。

螺旋模型

在这里插入图片描述

简化的螺旋模型

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醉卧考场君莫笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值