此处是大标题样稿字样十五
字以内
软件度量软件度量
度量的过程度量的过程
度量的对象度量的对象
度量的技术度量的技术
度量的几点考虑度量的几点考虑
提纲
2020/9/21 2李健 jasonli@
基本概念
• Measure,度量(名词),是根据一定的规则赋予软件过程或产品属性的数值或类别[ISO/IEC 14598-
1]。数值是对软件产品、软件过程的特征的量化记数的结果,类别是特征的定性表示,例如编写程序
的语言,可以是C或C++。
• Measure,度量(动词),按照度量过程中的过程定义,对软件过程或软件产品实施度量,表示实际
的动作。 [ISO/IEC 14598-1]
• Measurement,测量,是按照一定的尺度用度量(名词)给软件实体属性赋值的过程[ISO/IEC 14598
-1]。它强调对软件实体属性进行量化的过程性,是提取软件过程或软件产品属性的度量(名词)的
过程。它所蕴涵的内容是度量的过程,度量过程可分为评估度量的过程和直接度量的过程,评估度量
的过程是对计划实施度量的过程,直接度量的过程是在实例项目过程中收集数据和分析数据的过程。
• Metric,度量,是已定义的测量方法和测量尺度[ISO/IEC 14598-1]。在很多场合与Indicator交叉出现,
但其内涵大于Indicator,Metric概指软件环境中任何一个软件对象的属性的量化表现。
• Indicator,指示器,是用于评价或预测其他度量(名词)的度量(名词)[ISO/IEC 14598-1]。指示器
是一个或多个度量的综合,是对软件产品或软件过程的某一方面特征的反映。不同的度量目的有不同
的度量指示器选择。在具体的实施过程中,可操作的度量成千上万,选择最能反映当时度量环境的指
标作为度量指示器。
• Process Capability,软件过程能力度描述通过遵循软件过程能够实现预期结果的程度。[CMM
Version ]
• Process Maturity,软件过程成熟度是一个特定过程被明确定义、管理、度量、控制、并且是有效的
程度。[CMM Version ]
• Process Performance,软件过程性能是过程实际执行的结果。[CMM Version ]
2020/9/21 3李健 jasonli@
软件管理的基本过程模型
2020/9/21 4李健 jasonli@
软件过程管理与项目管理
软件过程改善
软件过程定义 软件过程度量软件过程控制
定义项目计划 调整项目计划 度量计划/结果
软件过
程执行
项目计划
执行
软件开发
产品需求
2020/9/21 5李健 jasonli@
度量与软件过程管理
改善软件过程
规划软件过程 应用度量控制软件过程
执行软件过程
计划度量
人、资源
输入信息 软件产品
软件过程
度量信息
软件产品
度量信息
2020/9/21 6李健 jasonli@
用户对象
软件过程度量
项目主管
:计划与控制
高层主管
:过程的可见性
软件过程组
:过程改善
客户/用户
:跟踪
技术中心
:研究
信息流
相互通信
项目外部项目内部
2020/9/21 7李健 jasonli@
度量的目的
度量的目的
理解过程 管理过程
理解过程 评价过程 预测过程 控制过程 改善过程
2020/9/21 8李健 jasonli@
度量的分类
• 客观度量和主观度量
– 主观度量是人的主观判断结果,主观度量也可以是在客观数据基础上的分析结果。
– 客观度量是过程或产品的实际结果,客观度量在一定程度上就减少了人为的主观影响。
• 绝对度量和相对度量
– 绝对度量其度量值的取得是没有参照物或没有其他的依赖关系,比如一个程序模块的大小具
有绝对的代码行数,其他代码模块的变化不影响该模块的大小。
– 相对度量是其度量值的取得具有参照物或与其他属性的有依赖关系,比如过程生产率依赖于
过程时间和过程产出的规模。
• 显式度量和隐式度量
– 显示度量是可直接得到数据的度量,例如编程时间是显式度量。
– 隐式度量是对原始度量数据进行运算或结合多个度量分析得到的结果,例如个人编程效率。
• 动态度量和静态度量
– 动态度量是两维以上的度量。
– 静态度量是一维度量。
• 预测度量和解释度量
• 内部度量和外部度量
– 软件组织内部和软件组织外部,项目组内部与项目组外部,项目内小组之间。
2020/9/21 9李健 jasonli@
过程的度量和产品的度量
差异
• 度量目标,产品度量是用于对软件产品进行评价,在此基础之上进行产品
设计优化。软件过程度量是为了对软件过程的行为进行目标管理,并在度
量的基础上对软件过程进行控制、评价和改善。
• 度量内容,对软件产品的度量侧重于软件结构的度量,度量的内容与软件
开发技术密切相关。对软件过程的度量有三大类基本内容,分别是质量、
时间和资源。
• 度量方法,对产品的度量方法是阶段性方法,度量对象是软件生产后期得
到的成形的软件产品。对软件过程的度量方法是过程性方法,度量过程中
的各个阶段所用到的技术、方法是动态更新的。
• 度量结果,产品度量结果通常是软件产品的复杂度模型和可靠性模型等。
对过程度量的结果是过程基线。
联系
– 产品度量内容可以是过程度量内容的一部分;
– 对产品的度量结果是对产品的评价,而产品又是过程的结果,产品的好坏
从一个方面体现了过程的好坏。
2020/9/21 10李健 jasonli@
软件度量软件度量
度量的过程度量的过程
度量的对象度量的对象
度量的技术度量的技术
度量的几点考虑度量的几点考虑
提纲
2020/9/21 11李健 jasonli@
度量的过程
• GQM(Goal-Question-
Measurement)
• PSM(Practical Software
Measurement)
过程和产品
商业
目标
过程
目标
度量
目标
度量
问题
度量 度量用户对象
逆向过程
正向过程
“G” “Q” “M”
2020/9/21 12李健 jasonli@
软件过程的度量过程
目标驱动的度量过程
ISPMM
2020/9/21 13李健 jasonli@
ISPMM中人员角色组织形式
2020/9/21 14李健 jasonli@
ISPMM的目标
(1)整合度量过程和分析过程
建立和维护度量目标
定义度量
定义数据收集和存储过程
定义数据分析过程
(2)提供度量和分析结果
收集度量数据
分析度量数据
存储数据和结果
数据和结果交流
2020/9/21 15李健 jasonli@
ISPMM:准备度量子过程
2020/9/21 16李健 jasonli@
ISPMM:选择度量子过程
2020/9/21 17李健 jasonli@
ISPMM:应用度量子过程
2020/9/21 18李健 jasonli@
ISPMM:数据分析子过程
2020/9/21 19李健 jasonli@
度量过程的能力度
• 未完成层
• 已执行层
• 已管理层
• 已定义层
• 量化管理层
• 优化层
ISPMM
具有已管理
层和已定义层的过
程特征并且支持软
件组织建立能力度
为已定义层以下的
过程实现
2020/9/21 20李健 jasonli@
软件度量软件度量
度量的过程度量的过程
度量的对象内容度量的对象内容
度量的技术度量的技术
度量的几点考虑度量的几点考虑
提纲
2020/9/21 21李健 jasonli@
软件度量选择的方针
“着眼现在,展望未来”
在度量的基础上,理解并控制管理现有过程,找出现有过程
存在的问题进行改善,并通过评价来衡量改善的结果以增强
过程的预测能力。
多层次度量需求
– 软件项目度量需求,侧重理解和控制当前项目的情况和状态
– 软件产品度量需求,侧重理解和控制当前产品的质量状况
– 软件过程度量需求,理解和控制当前情况和状态,还包含了
对过程的改善和未来过程的能力预测。
2020/9/21 22李健 jasonli@
选择度量的衡量指标(参考)
• It is considered meaningful by the customer,manager,and performer.
• It demonstrated quantifiable correlation between process perturbations and
business performance.
• It is objective and unambiguously defined.
• It displays trends.
• It is a natural by-product of the process.
• It is supported by automation.
• Metrics must be simple,objective,easy to collect,easy to interpret,and hard to
misinterpret.
• Metrics collection must be automated and nonintrusive,that is, not interfere with the
activities of developers.
• Metrics must provide consistent assessments throughout the life cycle, especially in
early phases, when efforts to improve quality have a high payoff.
• Metrics,both values and trends, must be used actively by management and
engineering personnel for communicating progress and quality in a consistent
format.
• Metrics’ fidelity improves across the life cycle.
2020/9/21 23李健 jasonli@
选择度量的衡量指标(参考)
• The measures should relate closely to the issue under study. These are usually
issues of quality,resource consumption, or elapsed time.
• They should have high information content..
• They should pass a reality test.
• They should permit easy and economical collection of data.
• They should permit consistently collected , well-defined data.
• They should show measurable variation.
• They should have diagnostic value and be able to help you identify not only that
something unusual has happened but also what might be causing it.
2020/9/21 24李健 jasonli@
选择度量的标准
可交流性
采用规范的方法对度量属性进行定义和描述,使其他人可以一致地了解度量的内容,度量的数据值里
包括了哪些信息或不包括哪些信息,以及度量数据的收集过程。
可重复性
表示其他人按照定义的度量过程进行数据采集和分析是否能够得到同样结果的可能性。
可追溯性
表示根据度量信息是否能够定位出产生度量数据时软件过程的当时状态和当时环境的可
行性。度量信息的可追踪性对软件过程改善是非常重要的,进行过程改善时需要明确在
什么环境下产生这样的过程状态,什么原因导致了过程偏差。
可操作性
度量的选择同时也应该考虑收集度量数据的可能性及难易程度,并同时考虑数据收集的
花费和资源占用。
可代表性
表示度量信息具有反映软件过程的某个方面特性的能力。一个前提条件是:度量数据应
是变化的,因为只有变化的数据才能反映过程的偏差。
2020/9/21 25李健 jasonli@
度量目标选择及描述
度量对象:
目的:
用户对象:
度量环境:
度量对象:X项目中的同级评审过程
目的:在评价的基础上改善过程效率
用户对象:软件组织过程改善组
度量环境:新开发电力系统办公自动化项目。
项目组规模50人,其中开发人员40人。
商业目标 1 商业目标 2 商业目标 n…
关键过程目标 1 关键过程目标 2 … 关键过程目标 m
度量目标 1 度量目标 2 … 度量目标 k
2020/9/21 26李健 jasonli@
过程实体描述模型
过程组成
过程消耗
过程保留
过程输入 过程输出
过程度量实体过程度量实体 过程度量实体
2020/9/21 27李健 jasonli@
度量的对象内容(参考)
1. 管理度量
1. Work and progress
2. Budgeted cost and expenditures
3. Staffing and team dynamics
2. 质量度量
– Change traffic and stability, which is relationship between
opened and closed software change orders.
– Breakage and modularity, which is average breakage trend
over time
– Rework and adaptability, which is rework trend over time
– MTBF and maturity, which is MTBF trend over time
2020/9/21 28李健 jasonli@
软件过程的度量模型
软件过程性能软件过程性能
软件过程性能范畴软件过程性能范畴
软件过程性能类型软件过程性能类型
特性特性
子特性子特性
度量度量
数据项数据项
软件过程能力度
软件过程成熟度
2020/9/21 29李健 jasonli@
软件过程的度量模型
软件过程质量 软件过程效率 软件过程成本
产品和服
务的质量
过程依从性 时间和进度稳定性 资源和费用
软件过程性能 软件过程的能力度/成熟度
技术能力
软件过程性能的稳定性
生产率
2020/9/21 30李健 jasonli@
度量模型中七种度量类型之间的关
系模型
2020/9/21 31李健 jasonli@
度量模型对SW-CMM一般过程特征的
覆盖
2020/9/21 32李健 jasonli@
度量模型对SW-CMM过程提问单的
覆盖
对对SW-CMMSW-CMM第二层中的第二层中的66个关键过程域进行软件过程问题单和个关键过程域进行软件过程问题单和
过程性能度量的对比分析,第二层总共有过程性能度量的对比分析,第二层总共有3636个过程问题。个过程问题。
2020/9/21 33李健 jasonli@
过程性能度量准则和指标
准则
① 相同质量指标下,占用资源越少的过程性能越好
② 相同质量指标下,效率越高的过程性能越好
指标
① 设计时间大于编码时间[TSP]
② 设计评审时间大于50%的设计时间[TSP]
③ 编码评审时间大于50%的编码时间[TSP]
④ 偏离度
⑤ 返工率
⑥ 失控数
⑦“80/20”原则
2020/9/21 34李健 jasonli@
软件度量软件度量
度量的过程度量的过程
度量的对象内容度量的对象内容
度量的技术度量的技术
度量的几点考虑度量的几点考虑
提纲
2020/9/21 35李健 jasonli@
软件过程的特性分析
过程的特点
• 软件过程的过程性
• 软件过程的持续性
• 软件过程的特殊性
• 软件过程的层次性
• 软件过程的动态性
过程的特性
– 软件过程性能
– 软件过程稳定性
– 软件过程能力度
– 软件过程改善
2020/9/21 36李健 jasonli@
过程质量和过程性能
(a) (b)
尺度、协作关系、领域经验等
2020/9/21 37李健 jasonli@
度量分析技术
• 6Sigma
• Scatter Diagrams
• Run Chart
• Histograms
• Cause-and-effect diagrams ( Fish-
bone )
• Bar Chart
• Pareto Charts
• Regression Analysis
• Control Chart ( SPC )
2020/9/21 38李健 jasonli@
控制图技术基础
CL
CL-3s
CL+3s
CL-2s
CL-s
CL+2s
CL+s
中心线
上限(UCL)
下限(LCL)
2020/9/21 39李健 jasonli@
X-R图分析
• 针对问题
– 过程行为的中心趋势?
– 随着过程的进行,各分组数据之间的偏差?
– 分组内的过程行为偏差?
• 前提
– 分组内采样数据数目大小n应大于等于2,在进行软件过程度量时找出相似性数
据分组。
– R图反映的是分组内数据范围的分布,如果分组的n值过大就可能会导致不同分
组计算出的Rj值相差过大,就无法分析出外在因素导致的过程偏差,R图的应
用范围一般是在n ≤ 10的情况下。
• 稳定性判定准则
– 如果X图中出现分布在上下界限以外的数据,那么过程是不稳定的。
– 如果X图中三个连续分布点中有两个点分布在中心线同一侧并且偏离中心线2s
的距离,那么过程是不稳定的。
– 如果X图中五个连续分布点中有四个点分布在中心线同一侧并且偏离中心线s的
距离,那么过程是不稳定的。
– 如果X图中自少有八个连续分布点中在中心线同一侧,那么过程是不稳定的。
2020/9/21 40李健 jasonli@
X-R图计算
Xj是每一个采样数据,k表示采样的数据组数目,n表示每
一个采样组中有n个数据。
表示X图的中心线的值。
表示在同一分组内样本数据的最大差距。
表示R图中心线的值。
分别表示X图的上下界限值,在X图中上下界限是与中心线等
距的,由此可得出s的值。其中A2是统计值常量。
分别表示R图的中上下界限值,在R图中上下界限
是与中心线等距的。其中D3 和D4是统计值常量。
2020/9/21 41李健 jasonli@
XmR图分析
• 基本假设
软件过程的连续性使相邻两个采样点最可能近似
• 应用前提
– 数据分组在有些情况不易实现,同时分组产生的数据聚集可能减弱异常
数据在控制图上的表现;
– 对每一个采样数据进行分布处理,可分析出采样个体是否存在一些异常
模式,如循环分布、持续单向分布等。
• 稳定性判定准则
– 如果X图中出现分布在上下界限以外的数据,那么过程是不稳定的。
– 如果X图中三个连续分布点中有两个点分布在中心线同一侧并且偏离中心
线2s的距离,那么过程是不稳定的。
– 如果X图中五个连续分布点中有四个点分布在中心线同一侧并且偏离中心
线s的距离,那么过程是不稳定的。
– 如果X图中自少有八个连续分布点中在中心线同一侧,那么过程是不稳定
的。
– “个体控制图”出现数据异常分布模式。
2020/9/21 42李健 jasonli@
软件过程的性能分析
解决SPC在软件领域应用的问题:
+选择适当控制图
X-R图、X-S图、XmR图、MAMR图、c图、u图
+ 数据采样与数据分组
+ 过程性能偏差分析
+ 过程能力度分析
2020/9/21 43李健 jasonli@
数据采样与数据分组
采样数据特性
可交流性、可重复性、可追溯性、可操作性、可代表性
数据的采样时间和空间信息
如果采样的时间和空间跨度太大,不论怎样分组数据控制图中的上下限范围就会较大,
控制图中的过程表象就会出现多数是处于稳定状态
数据分组基本原则
保持组内采样数据的相似性,表现在两个方面:① 在同一组内引起过程偏差的原因应该
近似,同组内的数据偏差近可能小。② 同组数据所跨度的时间和空间应尽可能小。
结合目标和需求确定分组的原则
均值控制图反映的是分组间的过程偏差,范围控制图反映的是组内的过程偏差。结合数
据分析的需求把可能是主要或特别关注的引起过程偏差的原因产生的数据分布在组间,
引起过程偏差的次要原因或是不关心的原因产生的数据放在组内
2020/9/21 44李健 jasonli@
过程性能偏差分析
(1)过程性能数据本身是否正确
(2)数据组织和分析问题
(3)过程依从性问题
• 与计划过程的一致性问题
• 人员、工具、技术和规程的合理应用问题
• 支持系统的合理应用问题
• 组织相关问题
(4)过程模型问题
过程缺陷和过程不完备
2020/9/21 45李健 jasonli@
过程性能能力度分析
CL UCLLCL
目标LSL USL
6ss
6s
(1)ss < s ,降低过程期望
(2)ss = s
> 0,表示实际过程的上限不满足需求。
= 0,表示该过程实际的性能表现是满足需求的,过程是有能力的。
< 0,表示实际过程的下限不满足需求。
(3)ss > s
> 3(ss - s ) ,表示过程性能的上限不满足需求。
-3(ss - s )=> <= 3(ss - s ),表示过程性能满足需求,是有能力的。
< -3(ss - s ),表示过程性能的下限不满足需求。
2020/9/21 46李健 jasonli@
软件度量软件度量
度量的过程度量的过程
度量的对象内容度量的对象内容
度量的技术度量的技术
度量的几点考虑度量的几点考虑
提纲
2020/9/21 47李健 jasonli@
THANKS