【软件过程改进 学习笔记】过程思维 ( 软件危机 | 软件过程 | 过程改进 | 过程思维 | 过程描述 | ISO 9000 | 6σ | PCM | CMMI )(二)

一. 软件危机 及 过程


提出了软件开发中的几个问题, 以及软件危机的概念, 软件危机是否存在, 及理由; 软件危机解决方案 ( 银弹 ) 的发展历程; 软件过程的提出与发展, 及四个研究方向;



二. 过程定义 及 特性



1. 过程 及 过程成熟度发展


过程 : 过程是 做事的 流程 , 规章制度 ;


过程成熟度 起源 与 发展 :


1.质量控制原理 : 发展统计学, 质量控制原理 ; Walter Shewhart ( 1930 )

2.质量控制原理加强 : 进一步发展 并 证明 Shewhart 原则 ; Edwards Deming ( 1956 ) , Joseph Juran ( 1956 )

3.量化 : 发展质量成熟度 量化 ; Phil Crosby ( 1956 )

4.软件过程 量化 : 软件过程中, 采用了 Crosby 量化, 加入成熟度等级概念 ; Watts Humphrey ( 1956 )

5.框架 : 发展成熟度框架, 成熟度问卷, SPA, SCE, CMM, CMMI ; SEI ( 1987-2000 )



2. 软件过程定义 及 特性


软件过程 定义 : 软件过程 ( Software Process ) 是 在 软件生存周期 中所实施的 一系列活动 ( Activity ) 的 集合, 每个活动都是由 一些 任务 ( Task ) 组成的 ;



软件生存周期 : 软件生存周期(SDLC,软件生命周期)是软件的 产生 直到 报废 的生命周期; 周期内 有 ①问题定义、②可行性分析、③总体描述、④系统设计、⑤编码、⑥调试和测试、⑦验收与运行、⑧维护升级到废弃 等阶段



过程特性 :


1.输入输出 : 过程 需要 输入 和 输出, 输入 是实施过程的 基础 和 依据, 输出 是过程完成的 结果, 过程会得到有形 或 无形 的产品;

2.资源活动投入 : 过程 完成 需要投入 适当的资源 和 开发相应的活动; 如 人员, 设备, 资金, (资源) 以及 设计, 计划, 检验 等活动 (活动) ;

3.增值效果 : 过程本身有增值效果, 是有益的经济行为 ;

4.过程质量控制 : 过程的质量需要保证, 针对 过程的输入 (资源 活动) 和 输出(中间件 产品) 需要在 适当的阶段 进行 检查, 评审 和 验证;



3. 过程 3 个方面的特性


过程特性 :


1.过程定义 : 过程需要被定义,一般是将过程所包含的 活动 及 程序 制定成 文档 ;

2.过程培训 : 过程需要培训, 需要 给过程中的 每一个相关人员 培训 过程涉及的知识 ;

3.过程结果 : 执行过程活动, 可以得到过程 结果 ;



三. 过程的优劣


过程优劣判定方向 : ① 过程的基本要求 ; ② 过程的有效性; ③ 过程的成熟性 ;



1. 过程的基本要求


过程的基本要求 :


1.干系人接收并执行 : 过程思想 已经 被干系人 理解, 遵守, 度量 并 严格执行;

2.目标明确 : 过程支持 商业目标, 是为 该目标进行 服务 的 ;

3.汇聚作用 : 过程实施过程中, 将 组织, 管理者, 人员, 技术, 基础设施 都汇聚起来;



2. 有效的软件过程


有效的软件过程 :


1.明确过程所有者 : 过程的所有者必须明确, SEPG ( Software Engineering Process Group ) 软件工程过程组 主持运行 软件过程, 负责对 软件过程的 维护 与 改进 ;

2.培训 : 软件过程需要培训, 培训对象包括 ①主管人员, ②SPEG, ③项目管理者, ④项目组成员, ⑤支持人员, ⑥质量保证人员 等 ;

3.实施 的 度量 和 反馈 : 过程实施的情况, 需要 针对以下几个方面进行 度量 和 反馈 ; ① 过程的有效性; ②过程效率; ③过程适用性;

4.使用者 的 反馈 : ① 鼓励员工主动反映意见和建议, 奖励突出者; ② 使用 调查表 , 提问表 ;

5.外部环境 : 吸收 外部的反映 建议, 这些外部环境包括如下几点 : ① 法律法规和标准的变更; ② 技术 方法 进步; ③ 政策调整 ; ④ 目标客户的 特征 需求的 变更 ;

6.检验 强制 机制 : ① 内部审核, ② 认证审核, ③依从性审核 或 评审 ;



3.成熟的软件过程


( 1 ) 成熟 与 不成熟


过程的 成熟 与 不成熟 :


1.过程发展 : 过程需要经历 不成熟 到 成熟 的发展历程 ; 成熟的过程才能 发挥应有的作用 ;

2.儿童 与 成熟的成年人 差异 : ① 计划性, ② 稳定性, ③ 能力, ④ 一致性, ⑤ 预测性 ;

3.组织成熟度 : 处于不同的 过程规范 成熟度 的 组织, 就像处于不同成熟状态的 人 一样 ;

4.过程的 成熟 关口 : 过程成熟需要经过 三个关口 : ① 僵化, ② 固化, ③ 优化 ;


( 2 ) 成熟 的 发展过程


成熟的发展过程 :


1.软件过程创建 : SPI ( Software Process Improvement ) 软件过程改进 的 第一步是 软件过程创建 ( SPC : Software Process Create ), 其中 C 是 Create ; 这是 SPIN ( Software Process Improvement Network ) 专家提出的;

2.僵化阶段 : 该阶段需要降低灵活性, 即 僵化, 障碍在这个阶段没有消除 ;

3.完成该步骤的条件 : 软件过程创建 需要行政力量 推进 ;

4.固化阶段 : 固化阶段开始真正消除障碍问题, 对应 障碍消除 ABO 阶段的 B 阶段; ABO : Awareness, Buy-in, Ownership, 即 了解, 接受, 拥有 ;

5.优化阶段 : 在上面 僵化 固化 的基础上, 开始改进, 开始 优化阶段 ;


( 3 ) 软件过程成熟度


软件过程的成熟度 :


1.软件过程成熟度 定义 : 软件过程的成熟度 指的是 特定的 软件过程 被 显式 ①定义, ②管理, ③度量, ④控制 和 ⑤执行 的程度 ;

2.软件过程成熟度 作用 : 成熟度 可以用于 指示 组织加强其软件过程能力的 潜力 ;

3.软件过程成熟度高级表现 : 当 组织 达到了 一定的 软件过程成熟度级别后, 软件过程会被 制度化, 进而成为 组织文化 ;


( 4 ) 不成熟的组织标志


不成熟的组织标志 :


1.没有软件过程 : 缺乏 确定的 软件过程 和 其相应的 管理 和 控制 ( 软件过程的 ) ;

2.有软件过程但不执行 : 定义了软件过程, 但是 不能严格 遵循 和 强制执行 ;

3.被动管理 : 管理完全是被动的方式, 策略是 救火 ;

4.计划不准 : 没有有效的 估算依据, 软件的 预算 和 计划 不准确, 经常超标 ;

5.产品不稳定 : 如果强制软件在预订期限完成, 那么软件的 功能 和 质量 无法保证 ;

6.没有评价体系 : 缺乏 ①评价软件产品质量 和 ②解决产品缺陷 和 过程问题 的 客观基础;


( 5 ) 成熟的组织标志


成熟组织的标志 :


1.有软件过程 : 在组织范围内, 有 管理软件开发 和 维护 过程的 能力 ;

2.过程得到遵守 : 所有人员都 ① 了解其要遵循的 软件过程, ②所有的工作都按照事先的计划完成 ;

3.责任分明 : 在被定义好的软件过程中, 所有 项目 和 机构 中的 角色 和 责任分明 ;

4.计划准确 : 计划 和 预算 有章可循, 基于***历史数据***, 因此计划是实际可行的 ;

5.预算准确 : 预算的结果通常能够达到, 如 ①成本, ②时间表, ③产品功能, ④质量 等 ;

6.有评价体系 : 有 客观 和 定量化 的措施, 用于判定 产品质量 并 分析 产品 与 生产过程中的问题 ;

7.基础设施 : 基础设施用于 支撑 软件过程, 如 标准过程库, 历史数据 ;



4. 过程规范 副作用


过程规范 的 副作用 : 过程规范要有一个度, 过犹不及;


1.无法定义具体工作 : 当前的软件工程技术, 无法 具体定义 软件开发的大多数 工作;

2.强制手段作用 :

① 少用 : 强制手段的作用是 发现 并 纠正 少数 不符合过程要求的行为 ;

② 威慑 : 强制手段 仅仅是 对破坏过程实施的人 的 威慑 ;



5. 过程认知的 误区


过程认知 的 误区 :


1.文件误区 : 有了文件 并 不等于 建立了过程, 还必须 遵守 并实施 过程 ;

2.记录误区 : 过程执行了, 必须记录, 不记录就不完整 ;

3.信任误区 : 员工按照 要求 执行过程, 必须进行培训, 改变平时的习惯需要 强制执行 ;

4.验证误区 : 过程不会自动实施, 实施了过程必须要验证, 目标是否达到 ;

5.稳定误区 : 过程建立了, 不能一成不变, 要 根据 环境, 商业目标 改变 而 改进 软件过程 ;

6.保证误区 : 得到了高层领导支持, 不一定有保证, 为业务工作带来效益才有保证 ;



四. 过程改进的必要性



过程改进的必须要性 : 给出了以下 六个 必须要持续改进过程的 理由 ;


1.性能降低 : 过程经过一段时间后, 其性能就会趋于降低 ;

2.需求提高 : 客户的需求会越来越高 ;

3.目标变化 : 组织的目标一直是变化的 ;

4.环境变化 : 组织所在的环境在不断变化 ;

5.对手改进 : 竞争对手在不断改进 ;

6.逐步成熟 : 组织的过程是 逐步成熟 的 ;


总结 :

凡是活动, 都存在过程 ;

凡是过程, 都存在改进 ;

凡是改进, 都没有终点 ;



上一篇:图像编程学习笔记9——图像的锐化


下一篇:细说SSO单点登录(转)