在CMMI四五级的软件公司中,建立过程性能模型是一个重点也是一个难点工作,很多公司无法建立过程性能模型,为什么呢?

  1)数据不准

  比如:

  ? 对于评审的会议,评审的参与人有的是来学习的,在统计人数、工作量时不应该统计在内。

  ? 有的数据当时没有采集,而是靠时候回忆采集上来的。

  ? 有的代码行数不是通过工具统计上来的,而是靠人估计估计出来的。

  2)过程不稳定

  过程不稳定的原因可以细分为:

  i)过程太大

  比如:对于整个项目的工期偏差率建立回归分析模型,由于影响因子太多,每个因子都有影响,但是影响都不是很大,这样对于采集数据的要求,过程的稳定性等要求很高,很难建立起回归方程,因此此时需要划分项目的阶段建立每个阶段工期偏差率模型或者不去细致的分析影响因子,而是建立蒙特卡罗的模拟模型,或者分不同类型的项目建立回归方程。

  ii)过程定义不稳定

  在过程定义中定义的不够细致,对于过程成功的要点没有定义清楚,比如:

  对于评审的流程,为了保证评审过程的稳定,应该要求:

  ● 评审的时长不能超过2小时。

  ● QA跟着每次评审控制会议不要过多讨论。

  ● 会议开始是要声明规则。

  ● 评审会与讨论会要分开。

  iii)过程执行不稳定

  在流程定义中有要求,但是实际执行时没有做到位,比如:

  ● 开评审会的时候进行了大量的讨论比如设计的评审会,所以会议的工作量、会议的时长都不准。在设计会议上讨论了设计方案的合理性。

  ● 会议的时间超过了2个小时,4个小时的评审会议,后边的2个小时效率很低的。

  ● 会议的主持人在会议上没有讨论的现象进行控制。

  iv)过程的输入不稳定

  不同的项目在执行过程时,投入差别太大,过程执行的前提条件不稳定,导致过程的输出也会不稳定。比如:测试过程投入的单位工作量,有的项目投入的多,有的项目投入少,而如果这些输入没有被识别出来作为因子的话,则方程无法建立起来。

  3)影响因子(X)识别不全

  ● 在识别对于Y的影响因子时没有识别出来关键的影响因子,比如测试过程的单位规模的测试工作量等;

  ● 识别了关键影响因子但是不好量化表达,采集数据有难度,比如人员的技术水平;

  ● 采集了关键因子的度量数据,但是数据不全,缺少样本点;

  影响因子的识别需要经验识别,也需要统计的假设检验,也可以进行实验设计。