软件维护与软件管理

软件过程与软件过程改进

软件工程 第五部分 第12章,主讲人:李欣

Created: 2024-03-05 Tue 16:42

0.1. 互动课堂

Click to host the seminar.

0.2. 签到

https://dash.memopixel.com/tool/attendance/

0.3. 本次课的目标

  • 第五部分:软件维护与软件管理
    • 第12章:软件过程与软件过程改进
      • 软件过程概述
      • 软件生存期过程国际标准
      • 软件过程成熟度
      • 软件能力成熟度模型
      • 软件过程改进
高水平音乐会
  • 乐师、指挥
  • 奏法 / 乐器、舞台
  • 乐谱、曲目安排
质量生产率
  • 人员
  • 技术 / 设备
  • 软件过程

1. 软件过程概述

  • 过程概念
  • 过程要素
    • 输入
    • 输出
    • 活动 或进一步被分解的 任务作业
    • 资源
    • 测量验证
    • 过程目标
  • 过程思维
  • 软件过程

2. 软件生存期过程国际标准

软件生存期过程 指的是 软件生存期 中可能出现的过程。

3. 软件过程成熟度

3.1. 什么是软件过程成熟度

软件过程成熟度(software process maturity)软件过程改进 的一个重要概念, 指的是一个特定软件过程得到清晰的 定义管理测量控制 以及有效的 程度

成熟度 意味着能力的增长具有潜力,而且表示组织软件过程是珍贵的, 在组织内所有项目中的应用是稳定一致的。

3.2. 过程制度化

%%{init: { 'theme': 'forest', 'fontFamily': 'Times New Roman, KaiTi' }}%%
flowchart TD
   A("过程文化") --> O("过程制度化")
   B("过程基础设施") --> O
   BA("组织管理基础设施") --> B
   BB("技术基础设施") --> B

process-institutionalization.svg

Figure 1: 过程制度化所需的支持

4. 软件能力成熟度模型

4.1. CMM与SEI

CMM

CMMCapability Maturity Model(能力成熟度模型) 的缩写。

SEI

SEISoftware Engineering Institute(软件工程研究所) 的缩写。

4.2. CMM的演化

  • CMM1.0
    • CMM1.1
  • CMM2.0
  • CMMI

4.3. CMM族和CMMI

4.3.1. 基于CMM的模型

  • P-CMM
  • SA-CMM
  • IPD-CMM
  • SE-CMM
  • SSE-CMM

把这些模型结合起来,形成一个集成模型,使其能够兼顾多个目标, 这就是 CMMI(Capability Maturity Model Integration,集成能力成熟度模型) 的考虑。

4.3.2. CMMI

  • 2002: CMMI1.1
  • 2006: CMMI1.2
  • 2010: CMMI1.3(现行的最新版本)

4.4. CMMI1.3简介

4.4.1. CMMI模型的两种表示

  • 分级式表示的成熟度等级(Maturity Level, ML) 给出了软件组织实施过程改进 沿着从 低等级 逐步向 高等级 成熟度发展的路径。
    • 初始级( ML1
    • 已管理级( ML2
    • 已定义级( ML3
    • 已量化管理级( ML4
    • 持续优化级( ML5
  • 连续式表示的能力等级(Capability Level, CL) 给出了软件组织在过程改进中 一些 过程域(Process Area, PA) 如何从 能力较低 的等级逐步向 高能力 等级发展的路径。
    • 不完全级( CL0
    • 已执行级( CL1
    • 已管理级( CL2
    • 已定义级( CL3

4.4.2. 两种表示的对比

等级 连续式表示(能力等级) 分级式表示(成熟度等级)
0级 不完整级 CL0 -
1级 已执行级 CL1 初始级 ML1
2级 已管理级 CL2 已管理级 ML2
3级 已定义级 CL3 已定义级 ML3
4级 - 已量化管理级 ML4
5级 - 持续优化级 ML5

4.5. CMMI评估

  • 标准评估方法
  • 评估原则
  • 评估实施

5. 软件过程改进

5.1. 软件过程改进的IDEAL模型

  • 启动(Initiating)
  • 诊断(Diagnosing)
  • 建立(Establishing)
  • 行动(Acting)
  • 提高(Leveraging)

5.2. 软件过程改进框架

  • 过程改进框架
    • 过程改进基础设施
    • 过程改进路线图
    • 软件过程评估方法
    • 软件过程改进计划
  • 软件过程改进循环
    • 评估
    • 计划
    • 改进
    • 监控

5.3. 有效的软件过程

  • 有效的软件过程应具备的条件
  • 建立使软件过程更为有效的机制