今天是软件质量课,非常理论化的东西。由王琰老师给我们将,幸亏她实现提醒,不然就读成DAN了,之前看《三国演义》的时候,里面有个才女蔡琰,原来一直是我读错了,惭愧。
今天的课没有实践课那么有趣,不过理论的东西就是为我们以后指明方向的,弄明白以后可以少走很多弯路。下面放出课堂的心得笔记。请大家指正。
一、质量定义
1)质量的定义包含三个要素:实体、特性集合、需求
质量就是实体基于这些特性满足需求的程度。
需求三个层次:显示需求、隐式需求、实际需求
实际需求包括显示需求和隐式需求
需求规格——内部质量
显示需求——验收质量
用户实际需求——使用质量
2)质量铁三角:组织、过程、技术
1.流程
1. 流程的要素:
职责(Responsibility)
角色(Roles)
输入/输出(Inputs/Outputs)
入口准则/出口准则(Entry Criteria/Exit Criteria)
训练(Training)
方法(Method)
工具(Tools)
度量(Measurement)
模版(Templates)
查检表(Check Lists)
- 流程的好处: a.使得不可见的软件开发过程变得可见并可控
b.流程驱动每一个研发人员的活动,减少了内耗,提高了效率
2.技术
技术包括: a.现有员工所承载的技术能力
b.公司发展过程中,积累下来的能力。
类型上分为: a.开发技术(分析技术、设计技术、编码技术)
b.测试技术
c.结构工艺技术
3.组织
组织通过技术和流程这两个因素来间接影响质量。
二、软件质量管理体系
1) 质量管理理论发展
第一阶段:质量检验管理(事后检验)19世纪末——20世纪40年代
第二阶段:统计质量控制(CMM的理论基础,收集统计数据,用于指导其他项目)
20世纪40年代——60年代
第三阶段:全面质量管理(产品的整个生命周期,强调全员参与)60年代——
2) ISO9000族2000版
a.三个核心
ISO9000:基础和术语
ISO9001:要求
ISO9004:业绩改进指南
b. 八大质量管理原则:1.以顾客为中心
2.领导作用
3.全员参与
4.过程方法
5.管理的系统方法
6.持续改进
7.基于事实的决策方法
8.互利的供方关系
3)CMM(Capability Maturity Model)
CMMI(Capability Maturity Model Integration)
CMM精髓:过程决定质量
a. CMM的五个等级:
1. 初始级(Initial):混乱的,无文档,成功不可以复制
2. 可重复级(Repeatable):建立了项目组的过程规范。(地方级法律)
项目成员按照过程规范执行,成功可以复制。
3. 已定义级(Defined):全公司的规范(全国性法律)。SEPG。
4. 已管理级(Managed):能力可以预测。Gompertz模型。
5. 优化级(Optimizing):新技术、新方法,发现原过程不适用
通过缺陷不足,改进原有过程
b. 缺陷分析的常用方法:
1. ODC(Orthogonal Defect Classification)缺陷分析。
2. Gompertz分析
3. Rayleigh分析
4. 正交分析
5. 根本原因分析(鱼骨图、柏拉图)
6. 缺陷注入分析
c. PSP、TSP、CMM
如何制定计划
PSP(Personal Software Process) 如何管理质量
(个人技能) 如何与他人协同
团队成员必须要PSP
TSP(Team Software Process) 组织支持 提供资源
(高效团队;团队交付能力) CMM2
CMM(组织能力;高质量的产品)
d. CMM与CMMI的不同点;
1. CMMI的四个集成部分(SM-SE/SW/IPPD/SS)
2. CMMI的连续式。把过程区域分为四大类:过程管理、项目管理、工程和支持。
CMMI在阶段式上与CMM的不同
| CMM | CMMI |
开发方法 | 适合瀑布型 | 支持迭代开发过程 |
需求的重视度 | 需求管理KPA | CMMI3中三个需求开发KPA |
工程活动 | 软件产品工程和同行评审KPA | 需求开发、验证、确认、技术解决方案、产品集成KPA(更细分) |
风险管理 | 没有明确KPA | CMMI3中风险管理KPA |
过程域数 | 18 | 25 |
| | | |
e. ISO9001与CMM、CMMI的关系
最大相似点:强调管理、过程、规范化和文档化
不同点:CMM吧焦点严格对准软件;而ISO9001的范围包括:硬件、软件、流程性材料和服务。
3) 6Sigma:6Sigma模式的本质是一个全面管理概念,而不仅仅是质量提高手段。