为什么无法建立过程性能模型?

简介:

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

  1)数据不准

  比如:

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

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

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

  2)过程不稳定

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

  i)过程太大

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

  ii)过程定义不稳定

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

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

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

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

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

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

  iii)过程执行不稳定

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

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

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

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

  iv)过程的输入不稳定

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

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

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

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

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

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

4)对于大过程建模,影响因子太多,每个因子相关性都不大

  如果是对于大的过程建模,则可能存在如下的问题:

  ● 影响因子多,每个因子的相关性都不是很大;

  ● 影响因子多,采集数据有难度,对每个数据都要求很准确;

  ● 影响因子之间彼此有交互叠加的作用,有相关性,建模困难。

  5)样本量太少

  样本量太少,增加或删除一个样本对回归的结果影响很明显,则规律不具有典型性。比如,在下图中如果删除右上角的一个点,则两个变量之间就没有相关性了,如果删除了右下的2个点则两个变量之间就是相关的。之所以出现这种现象就是样本点太少而导致的。

  6)样本不随机

  比如有2个变量X1,X2与Y都应该是正相关的,但是在实际中存在的数据却是:

  正相关  正相关 
x1  x2 
中  大  小 
中  小  大 

  此时如果对这些类型的数据进行分析,则表现出来Y与X1,X2是不相关的。

  以测试过程为例,我们的经验与常识:

  假设或常识1:高水平的测试人员找出的BUG多, 低水平的测试人员找出的BUG少。

  假设或常识2:高水平的开发人员犯的错误应该少,低水平的开发人员犯的错误应该多。

  我们的实际数据:

  在实践中常常采用的策略:

  策略1:关键的模块应该由高水平的开发人员进行开发,非关键的模块由低水平的开发人员进行开发。

  策略2:高水平的测试人员要测关键的模块,低水平的测试人员测试非关键的模块。

  如果是这样,对于测试过程做了度量以后,数据无法证明假设1和2的成立。

  以上六个原因就是最常见的原因,这些原因在实际中克服起来并非那么容易,这也是为什么4-5级需要比较长的实施周期的原因。








====================================分割线================================



最新内容请见作者的GitHub页:http://qaseven.github.io/

目录
相关文章
|
30天前
|
监控 负载均衡 测试技术
大模型开发:描述一个你之前工作中的模型部署过程。
完成大型语言模型训练后,经过验证集评估和泛化能力检查,进行模型剪枝与量化以减小规模。接着导出模型,封装成API,准备服务器环境。部署模型,集成后端服务,确保安全,配置负载均衡和扩容策略。设置监控和日志系统,进行A/B测试和灰度发布。最后,持续优化与维护,根据线上反馈调整模型。整个流程需团队协作,保证模型在实际应用中的稳定性和效率。
22 3
|
29天前
大模型开发:描述一个你遇到过的具有挑战性的数据集问题以及你是如何解决它的。
在大模型开发中,面对不平衡数据集(某些类别样本远超其他类别)的问题,可能导致模型偏向多数类。在二分类问题中,正样本远少于负样本,影响模型学习和性能。为解决此问题,采用了数据重采样(过采样、欠采样)、SMOTE技术合成新样本、使用加权交叉熵损失函数、集成学习(Bagging、Boosting)以及模型调整(复杂度控制、早停法、正则化)。这些策略有效提升了模型性能,尤其是对少数类的预测,强调了针对数据集问题灵活运用多种方法的重要性。
9 0
|
5月前
|
内存技术
AS3使用过程中问题总结
AS3使用过程中问题总结
34 0
|
9月前
Sub过程
参数表是用来指明调用该Sub过程时需要传递给该过程的参数及类型。表内的参数称为形参。Sub过程可以没有形参(但小括号不可以省略),也可1到多个形参(多个之间用逗号隔开);
Sub过程
|
10月前
建立模型
建立模型
34 0
模型评估过程中,主要的验证方法与优缺点。
模型评估过程中,主要的验证方法与优缺点。
|
11月前
优化过程的一道题
优化过程的一道题
54 0
|
11月前
一道优化过程的题
一道优化过程的题
76 0
|
机器学习/深度学习 监控 算法
建立可用的机器学习模型只需要这7个简单的步骤
建立可用的机器学习模型只需要这7个简单的步骤
103 0
建立可用的机器学习模型只需要这7个简单的步骤
|
Java Spring
CommpetableFuture使用anyOf过程中的一些优化思考
CommpetableFuture使用anyOf过程中的一些优化思考