软件工程

4 - 软件过程模型

2019-12-19 04:00 CST
2019-12-18 23:02 CST
CC BY-NC 4.0

4.1 软件过程

过程模型:

  • 一系列需要执行的任务
  • 每个任务的输入和输出
  • 每个任务的前置条件和后置条件
  • 任务的顺序和流程

最简单的开发过程模型:

编码、编译、单元测试,通过测试然后发布;遇到问题进行调试然后继续编码。

4.2 传统过程模型

瀑布模型

计划 - 需求 - 设计 - 实现 - 测试 - 维护

优点:

  • 必须在第一步中指定需求
  • 在软件被打包之前必须完成四个主要任务:需求、设计、实现和测试
  • 每个阶段的输出按照顺序传递给下一阶段
  • 可以根据在特定的、可识别的阶段间的移动顺序跟踪软件项目

由于软件的需求、设计和测试阶段生成了大量的文档,因此瀑布模型也被称为文档驱动方法。

重要的贡献:给软件工程师提供了在软件开发时应该关注的过程。

主程序员制团队方法

  • 主程序员将计划、划分制定工作并分配任务给不同的专家。
  • 团队的规模应该在7到10人,由设计师、程序员、测试人员、文档编辑员和主程序员等专家组成。

增量模型

  • 将大型项目细分为更小的组件
  • 每个组件都遵循瀑布过程模型

任何一个组件遇到了问题,其他组件仍然可以继续独立开发。

另一个观点是首先开发包含大部分所需功能的核心软件,然后再开发额外的功能和补充的特性。

螺旋模型

强调降低软件开发中的风险,是一种风险驱动的软件过程方法。

  • 将原型设计和建模作为过程的一个组成部分
  • 允许对所有活动基于设计的风险量采用迭代和演化的方法
  • 如果确定了更好的备选方案或识别到新的风险,该模型不排除对早期活动的返工

缺点:依赖于风险评估的专门技能。

4.3 一个更加现代的过程

Rational统一过程框架的一般基础

统一建模语言(UML):一种面向对象的建模语言,提供元素和关系来建模软件需求和设计。

Rational统一过程(RUP)起源于1987年的对象过程、1997年的Rational对象过程以及统一建模语言(UML)。RUP由三个主要概念驱动:

  • 用例和需求驱动
  • 以体系结构为中心
  • 迭代和增量

RUP中有四个阶段:

  • 初始(Inception)
  • 细化(Elaboration)
  • 构造(Construction)
  • 交付(Transition)

4.4 进入和退出标准

每项活动的进入标准在活动开始前必须满足,而且必须满足退出标准才能将活动视为完成,然后才可以开始下一个活动。

进入标准:

  • 所需制品
  • 所需人员
  • 所需工具
  • 需要对执行的活动进行定义

退出标准:

  • 所有的制品都被评审过
  • 就诊所有错误或某个百分比的错误
  • 执行下游活动的人员同意并接受这些制品

4.5 过程评估模型

  • SEI的能力成熟度模型(CMM)
  • SEI的能力成熟度集成模型(CMMI)

4.6 过程定义和通信

一个过程的模型或者规范是对实际过程的抽象表示。

软件过程规范由两个基本部分组成:

  • 包含在软件项目中的活动
  • 执行这些活动的顺序

这两个主要部分被进一步扩展和完善,包括以下内容:

  • 活动:对过程中所包含的每一项活动的详细描述
  • 控制:每项活动必要的进入和退出标准,以及每项活动的执行顺序
  • 制品:每项活动的输出结果
  • 资源:执行活动的人
  • 工具:可用于提高活动性能的工具