【IT168 技术文章】
1、 引言
SEI CMM等级4描述了两个关键过程域(KPA):定量过程管理和软件质量管理。其中前者针对的是软件过程的执行,而后者针对的是软件产品的质量。本文主要讨论过程执行程度如何被度量,以及如何通过度量过程执行程度来提高软件产品的质量。
文章中还给出了Cpk指数及其使用的简短描述,并通过几个具体案例分析了针对所选定的度量标准,如何使用Cpk指数对项目定义软件过程进行度量和分析。
“要想获得透彻的了解,必须首先进行精确的度量。”
2、 缩写
CMM
Capability Maturity Model(能力成熟度模型)
IPF In Process Faults(过程缺陷)
KPA Key Process Area(关键过程域)
LL Lower Limit(下限)
SEI Software Engineering Institute(软件工程研究所)
SPC Statistic Process Control(统计过程控制)
SQA Software Quality Assurance(软件质量保证)
UL Upper Limit(上限)
3、 分析中所使用的和所度量的度量标准
IPF密集度是一种度量标准,可以用来判定过程产品的质量以及检测过程的执行程度。
IPF密集度可以表示如下:
其中缺陷数目是指每次检测所发现的缺陷数目;工作产品大小是指每次检测的代码页数或行数。
4、 过程能力分析
进行过程能力分析,实质上就是通过系统地分析和研究来评定过程能力与指定需求的一致性。在我们所举的案例中,指定需求就是所建立的软件度量基线。
之所以要进行过程能力分析,有两个主要原因。首先,我们需要知道过程度量所能够提供的基线在数量上的受控性;其次,由于我们的度量计划还相当“不成熟”,因此需要对过程度量基线进行评估,来决定是否对其进行改动以反映过程能力的改进情况。根据过程能力的数量指标,我们可以相应地放宽或缩小基线的控制条件。
5、 建立和使用基线
5.1相对于均值的标准偏差
由于软件的过程能力度量技术还处于“初步探索”阶段,传统的做法仍然是通过建立标准偏差的上限和下限来设置基线。当发现超出上限或下限的度量值及其产生原因时,就可以有系统地将其去除,并在必要的情况下采取一些改进措施。
整个过程可以总结如下:
(1) 收集关于度量的所有可用数据
(2) 建立均值(即所有数据点的平均值)
(3) 建立上限(均值+标准偏差)
(4) 建立下限(均值-标准偏差)
(5) 删除超出上下限的数据值
(6) 找出删除原因并文档化
5.2比较产品度量与基线
在项目开发过程中可以使用所建立的基线。通过将项目度量值与基线进行比较,可以找出哪些度量指标高于上限、哪些低于下限以及哪些处在控制条件之内。
这种做法一般是可以接受的,因为这提供了对过程进行评估的一种公正的方法。但是使用这种方法并不能从数量上给出过程执行程度的度量。特别是,我们可能需要得出某个特定过程执行的σ级别。例如,我们需要通过数量化的方式比较在相同或者不同的项目中检测过程的执行程度。最后可能需要以下面这种方式给出比较结果:需求检测过程执行程度为5.3σ,而代码检测过程的执行程度为3σ。然后就可以根据这种数量化的结果来判定检测过程想对于当前的过程能力等级的执行程度如何。
5.3过程能力度量
参照组织当前的实际开发过程,我们可以通过使用Cpk指数进行过程能力度量来评定实际过程与基线的目标均值的接近程度以及过程变更的数量。
要度量组织的过程能力,首先需要有如下信息:
1) 指定界限(即上限和下限)
2) 指定宽度(可根据指定界限得出)
3) 过程界限(通过过程度量所得出的上限和下限)
4) 过程宽度(可根据过程界限得出)
5.4设定基线的指定界限
在控制表中,可以使用相对于均值的1σ标准偏差来设定界限。但是在过程能力度量中,如果也使用1σ标准偏差来设定规范界限,将会大大限制过程范围而产生很多界外值。在正态曲线中,均值± 1s只能给出68%的覆盖程度,而使用均值± 3s则可以界定正态曲线中99%的覆盖程度。
在过程能力度量中,我们可以使用相对于均值的3s标准偏差来确定指定界限。
可以使用柱状图来描述实际过程输出与正态分布曲线的相似性。柱状图能够比较直观地展示度量数值集合。我们可以使用Microsoft Excel中的Analysis Toolpak工具绘制柱状图。根据大多数统计方法参考书的建议,在绘制的柱状图中所采用的柱形条不能少于6个,但也不能多于15个。在Excel工具中可以设定这一条件。这样做可以或多或少地避免在定义柱形条间隔距离时的个人偏见。