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


    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年提出的

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

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

    螺旋模型

    在这里插入图片描述

    简化的螺旋模型

    在这里插入图片描述

  • 相关阅读:
    GO语言-反射reflect
    【开学季】如何过好大学最后一年(求赞)
    SpringBoot 集成 WebSocket
    pytorch第一天(tensor数据和csv数据的预处理)lm老师版
    Linux创建用户与yum安装软件
    基于哈夫曼树的数据压缩算法
    eclipse创建springboot项目的三种方法
    抽象类与接口
    Leetcode 2862. Maximum Element-Sum of a Complete Subset of Indices
    [附源码]JAVA毕业设计仁爱公益网站(系统+LW)
  • 原文地址:https://blog.csdn.net/weixin_51422230/article/details/127650954