什么是度量
软件度量是对软件开发项目、过程及产品,进行数据定义、收集以及分析的持续性定量化过程,目的在于对此加以理解、评价、预测和改善
度量的四个目的,具体来说就是:
贯穿CMMI体系的一个思想就是过程的持续改善,而度量数据使得改善有据可循,度量与分析过程就是CMMI-2级以上过程的基石。CMMI过程域度量与分析(MA)的目的在于开发并保持用于支持管理信息需要的度量能力。
为什么度量
软件行业面临的危机:
那引入度量分析就能把这些难题一网打尽了么?
嗯,突然感觉信心十足,很有干劲了呢
然而
。
。
。
并不能。
咳咳、那我们为什么还要度量?
那就先自问这些问题:
什么性能对我的组织来说是重要的?为什么?
这些问题\性能的优先级怎么排定?
为了解决问题\提高性能我们做出了怎样的努力,效果如何?
度量体系的建立就是要帮助组织解决问题或者判断目标的达成状况。
度量数据收集和分析都需要占用组织资源,自然会考虑投资与回报的问题。
如果我们能在度量分析的基础上,采取措施:
——减少返工时间
——提高劳动生产率
——提高产品质量
度量活动带来的收益预计将会大于活动固定成本与机会成本,那度量的采集和分析自然是值得的。
当然,度量本身不会改进过程,但度量为我们提供了对计划、控制、管理和改进的可行性。
-
历史数据帮我们预测并准备计划。
-
实际数据和计划对比沟通,反馈于预测模型的改进,有助于进一步决策
-
检查异常数据,发现问题所在
-
监控过程改进活动,判断改进的效果。
-
合理估算
-
合理计划
-
确定进度
-
评价质量
-
识别改进机会
-
确定改进效果
没有前进的方向,盲目的行动对组织是浪费更是伤害,其它改进活动都无从谈起。
度量与分析(MA)过程域
度量与分析(MA)的目的在于开发并保持用于支持管理信息需要的度量能力。
MA过程域的特定目标、特定实践的总体关系图如下图所示。
后面将度量分析流程中说明该过程域特定目标和特定实践。
SG1协调度量与分析活动
度量目标和活动与所识别的信息需要和目标协调一致。
通常在专注于度量规格,说明、数据收集或存储的细节之前,重要的是先明确将要进行的分析。
建立度量目标与度量项
对应着SP1.1建立度量目标和 SP1.2明确说明度量项
建立并维护从所识别的信息需要与目标中导出的度量目标,并明确说明应对度量目标的度量项。
首先要目标,度量目标通常来自组织的商业目标和质量目标。
有了目标,我们可以列出达成目标需要问的问题,每个问题对应一系列度量项,通过度量数据的收集和分析就可以帮助我们回答这些问题
举个例子
对于目标“提高软件质量”的问题:
对于每一个问题,就识别出对应的度量项来回答它。
基本度量项的数据通过直接度量得到。衍生度量项通过多项基础数据计算或统计得来。
在信息需要、度量目标、度量类型、基本度量项与衍生度量项之间存在直接关系。这种直接关系在表MA.1中使用一些常用的实例进行了描述。
表MA.1:度量关系实例
项目、组织级或业务目标实例 |
信息需要 |
度量目标 |
度量信息 类型 |
基本度量项实例 |
衍生度量项实例 |
|
缩短交付时间 成为率先上市的产 品 |
估算的交付时间是何时? |
提供进度波动与 进展的洞察 |
进度与进 展 |
任务的估算与实际的开始及结束日期 |
里程碑绩效 按时完成项目的百分比 进度估算的准确性 |
|
通过降低产品与服务的成本来增加市场份额 |
规模与成本的估算准确性如何? |
提供实际规模与成本相对于计划偏差的洞察 |
规模与工 作量 |
估算与实际的工作量与规模 |
生产率 |
|
工作量与 成本 |
估算与实际的成本 |
成本绩效 成本偏差 |
||||
交付规定的功能 |
范围或项目规模增加了吗? |
提供实际规模相对于计划的偏差的洞察,识别计划外的增长 |
规模与稳 定性 |
需求数 |
需求易变性 规模估计的准确度 |
|
功能点数 |
估计功能点个数和实际功能点个数对比 |
|||||
代码行数 |
新增、修改与复用的代码数量 |
|||||
不影响成本的前提下,交付给客户的产品的缺陷降低10% |
在交付之前,缺陷在哪里注入以及哪里被发现? |
在整个产品生命周期中,评价缺陷检测的有效性 |
质量 |
按生命周期阶段注入及发现的缺陷个数 产品规模 |
生命周期阶段的缺陷检出比率缺陷密度 |
|
返工成本有多少? |
确定修复缺陷的成本 |
成本 |
按生命周期阶段注入及发现的缺陷个数 修复缺陷花费的工时 劳动力成本单价 |
返工成本 |
||
减少信息系统弱点 |
未解决的系统弱点的量级? |
评价缓解系统弱点的有效性 |
信息保证 |
已识别的系统弱点 个数与已缓解的系 统弱点个数 |
已缓解的系统弱点百分比 |
|
对于SP1.1目标的实践
1. 为信息需要与目标划分优先级。对所有最初识别的信息需要都进行度量与分析既不可能也无此必要。需要在可用资源限制下,设定优先级。
2. 将度量目标文档化,并对其进行评审与更新。
3. 必要时提供反馈信息,以细化并澄清信息需要与目标。
4. 维护度量目标对所识别的信息需要与目标的可追溯性。度量目标也可以修改,以反映不断发展的信息需要与目标。
对于SP1.2度量项的实践
1. 度量项对度量目标要可追溯。
2. 明确说明度量项的可操作定义。以精确且没有歧义的方式对可操作定义进行陈述。它们满足两个重要的准则:
a) 沟通:已经度量了什么,如何度量的、度量项的单位是什么、以及已经包括或排除了什么?
b) 可重复性:在相同的定义下,度量可以复现得到相同的结果
3. 对度量项进行优先级划分、评审与更新。
制定度量方法
度量方法包含数据的搜集、存储、分析、报告的方法,制定度量方法即对应着SP1.3明确说明数据收集与存储的规程 和 SP 1.4明确说明分析规程
SG2提供度量结果
SP2.1获取度量数据
获得分析所必需的数据,并检查验证其完备性。
1. 获得基本度量数据;
2. 计算衍生度量数据;
3. 尽可能在度量周期早期验证基本和衍生度量,验证的项目包括:遗漏数据、越界值、异常模式和度量项的关系等等;
4. 过程尽量自动化,按照确定的度量方法和规程获取数据,减少人工干预。
SP2.2分析度量数据
1. 初始分析、解释度量结果,得出初步结论;
2. 有时需要额外的度量分析,用于进一步确定结论中提出问题,或是回答异常、未预料的结果;
3. 与相关干系人一起评审初始结果。
4. 为未来的分析细化准则,使之更符合度量目标的需要。
SP2.3存储数据与结果
管理并存储度量数据、度量规格说明与分析结果。保证度量数据和结果能被相关人员及时、有效的取用。
存储的信息通常有:
-
度量计划
-
度量项的属性规格(包括人员对度量数据访问的权限)
-
已收集的数据集
-
分析报告与介绍资料(报表与数据关联,通过工具实时生成)
-
数据保存周期
SP2.4沟通结果
与所有相关干系人及时、有效地沟通度量与分析结果。相关干系人包括项目组、最终用户、发起人、数据采集与分析人员。有时为了度量结果被正确解读并运用于支持决策,需要对相关人员进行培训。
– END –
本文是“东航信息部IT百分百”原创,转载需注明出处
转载须保持以上所有内容完整。