例解:过程性能模型的概念辨析

来源:互联网 发布:手机去广告软件 编辑:程序博客网 时间:2024/05/17 22:44

    CMMI模型的4,5级是需要建立过程性能模型(PPM)的,在CMMI中对PPM的定义如下:

    A description of relationships among the measurableattributes of one or more processes or work products that is developed fromhistorical process performance data and is used to predict future performance.

    One or more ofthe measureable attributes represent controllable inputs tied to a sub processto enable performance of “what-if” analyses for planning, dynamic re-planning,and problem resolution. Process performance models include statistical,probabilistic and simulation based models that predict interim or final resultsby connecting past performance with future outcomes. They model the variationof the factors, and provide insight into the expected range and variation ofpredicted results. A process performance model can be a collection of modelsthat (when combined) meet the criteria of a process performance model.

 

    通俗的讲就是通过过程的输入及属性预测过程的输出,表达的是量化的过程输入、过程属性与过程输出之间的因果关系。在判断某模型y=f(x1,x2,…,xn)是否是一个过程性能模型时要注意如下几点:

   (1)定量模型:是定量模型而不是定性模型;Y可以是一个定比数据,定距数据。如果相对定序或定类数据做预测,需要转换为求解其等于某个值的概率。

   (2)实用性 :是基于本组织的历史数据分析得到,而不是业内的标杆组织的模型,是本组织过程性能的因果规律,而不是其他公司,本行业的规律。

   (3)可控性:过程性能模型中的x必须含有可控因子,即该x是可以由我们指定的,想让其等于某个数值就可以等于某个数值;

   (4)区间预测:PPM对Y值的预测是一个区间而非单点值,可以是回归方程、模拟的结果区间、或达成的概率等;

   (5)因果规律:Y与x之间一定存在因果规律,即x决定Y,改变x可以改变Y。

       在实践中,在判定是否是一个合适的过程性能模型时,要严格注意上述的5条规则,下面通过一些我在咨询中遇到的案例来说明知之:

案例序号     

模型

是否   是   PPM 

理由

1

软件工作量=f(x1软件规模)

不是

x1不是可控因子。

在我们用此模型预测时,规模不是随意改变的,它是由需求推导出的,是客户确定的。它不是可控因子。

2

软件工作量=f(x1软件规模,x2人员能力水平)

因为人员能力水平是我们可以指定的,我们可以安排特定水平的人做此项目,x2是可控因子。

3

软件工作量=f(x1软件规模,x2人员能力水平,x3软件需求变更率)

x2是可控因子。

在使用此模型时,由于软件需求变更率对某个具体项目而言,在项目未结束时,是未知的,只知道历史的分布,所以需要在此模型的基础上,进行蒙特卡洛模拟。把需求变更率作为假设变量,软件工作量定义为预测变化,得到软件工作量的分布。

4

开发生产率=f(x1软件返工工作量比例)

不是

开发生产率与软件返工工作量比例,都是过程同一个过程的输出,都是同一个过程y,返工工作量比例不是我们任意指定的一个值,x1不是可控因子。

5

开发生产率=f(x1软件类型,x2 软件规模)

不是

软件类型,软件规模对于某个项目而言都是确定的,不是任意指定的一个值,所以x1,x2都不是可控因子。

6

开发生产率=f(x1软件类型,x2 软件规模,x3人员水平,x4开发方法)

x3=高,中,初级, x4=结构化方法,面向对象的方法

此时x3, x4都是我们可以人为指定的,是可控因子,尽管它们都是分类变量。

7

缺陷逃逸率=f(需求评审缺陷密度,设计评审缺陷密度,系统测试缺陷密度)

不是

三个x都不是可以任意指定的值,是上游开发过程的输出,必须再对其中某几个x再建立性能模型,再新的模型中有可控的x,联合起来使用,才能算一个完整的性能模型!

8

系统测试缺陷密度=f(开发自测缺陷密度)

不是

开发自测缺陷密度是上游过程的输出,还需要对其作为Y建立模型,找到可控的x.

而且二者有可能能是相关的,而并非因果关系!

9

研发预算偏差率=f(系统测试缺陷个数)

很可能不是

系统缺陷个数是一个绝对数据,而偏差率是一个相对数据,这2者能否存在因果关系呢,这是小概率事件!比如:

模型1:Y是饭量增量率,x是身高

模型2:Y是饭量,x是身高

你觉得哪个合理?

10

基于COCOMO模型预测工作量:E = a*L^b

 

不是

首先这不是公司内部的规律,不是自己性能的规律。其次,如果仅仅考虑规模,是没有可控因子的。

 

    不能满足PPM的定义而建立的模型可以称为是预测模型,预测模型在实践中也是有意义的,可以用来预测,不能用来控制。比如,我们用软件的规模来预测项目的工作量,可以用这个模型来做计划,做预测,这也是可以的。