软件开发COD引入缺陷预测模型的建立
来源:https://www.shuizhifenxi.com/ 作者:余氯检测仪 时间:2019-10-11
摘 要:本文论述了基于ACV-Average Competency Value和系统圈复杂度系数构建COD阶段缺陷预测模型的过程和思路,通过建立的预测模型软件项目管理者可以预测预先设定的项目QCD目标实现概率,提前预测风险并适时增强项目团队的开发力量。
中国论文网 /8/view-3801726.htm
关 键 词:ACV;圈复杂度;缺陷预测模型
借鉴人力资本管理领域中关键能力项的统计学识别方法,我们识别出对于A业务方向嵌入式项目质量有重大影响的因素有:C语言技术&编码的能力水平和软件的复杂程度(圈复杂度)。从逻辑上分析,由于在车载导航软件开发中基本使用的都是C语言的开发技术,在中小型开发项目中,C语言技术&编码的能力水平和软件的复杂程度确实对于项目的质量会有很大的影响。在这里我们引入一个新的概念ACV-Average Competency Value及项目成员关键能力平均值,在我们此次车载导航软件开发研究的范围内关键能力项为C语言技术&编码。
基于CMMI软件成熟度模型和实际软件开发过程,软件开发的主要过程分为几个阶段:RD(需求开发)、RU(需求理解)、SD(系统设计)、PD(概要设计)、DD(详细设计)、COD(编码)、UT(单元测试)、IT(集成测试)、ST(系统测试)和QC阶段。软件项目的一个关键目标就是质量,ST阶段的缺陷密度是项目质量的关键度量项[1]。但是,在ST阶段发现的缺陷往往是由其他之前的阶段引入的,这些可能引入缺陷的阶段包括COD、DD、IT、PD等[2]。我们使用了Crystal Ball工具对相关数据进行了敏感度分析,包括ST、COD和DD阶段的缺陷引入对于项目的质量目标都有相当的影响。
为了达成软件开发的质量目标,我们必须想办法控制各阶段引入的缺陷数量。从敏感度分析结果上看,COD阶段的缺陷密度对于QC指标的影响比较大,同时,如果能在ST阶段更多地发现和处理实际已经存在的软件缺陷,QC目标达成的可能性会大大增加。
各阶段引入的缺陷数量也与软件程序本身的复杂度有关,在软件测试的概念里,圈复杂度用来衡量一个模块判定结构的复杂程度,数量上表现为独立路径条数,即合理的预防错误所需测试的最少路径条数,圈复杂度大则说明代码可能质量低且难于测试和维护[3]。经验表明:一般圈复杂度越高,Bug发生的可能性越高。
圈复杂度过高会造成下列问题:
1.复用困难。代码复杂度过高,说明一个函数内覆盖的逻辑过多,程序耦合性(各个模块之间接口的复杂度)较高,所以也不易于移植复用。
2.测试困难。圈复杂度代表路径覆盖的条数,即case数。所以,需要更多的测试才能覆盖一个复杂度较高的程序。
3.易读性差。代码复杂度过高的程序不易于阅读。
4.缺陷率高。一般复杂度越高,缺陷密度越高。代码复杂度过高的程序,变更时更容易产生缺陷。
从图1的两个例子中,我们可以使用一种简单的方法来计算两段程序的圈复杂度。在Example 1中,while循环圈复杂度加1,if语句圈复杂度加1,每个&&语句圈复杂度加1,总体程序执行圈复杂度加1,圈复杂度总和为5。在Example 2中,if语句圈复杂度加1,else语句圈复杂度加1,总体程序执行圈复杂度加1,圈复杂度总和为3。这种方法的基本计算原则是:程序中出现下列关键字的次数再加1,关键字主要包括for、if、while、switch、&&、||、goto和case等。
以上是比较简单的圈复杂度计算方法,另外一种计算方法是利用有向图理论(Sequense)计算由一段代码演化来的有向图中线性独立的路径的个数,来得出圈复杂度的数值。
圈复杂度=E-N+2 (1)
其中,E:程序流程有向图中边的个数;N:程序流程有向图中节点的个数。
目前可以使用的计算圈复杂度工具有:
1.JAVA平台:PMD静态分析源代码工具(付费)、JavaNCSS(开源)、CheckStyle(付费);
2..NET平台:FxCop(开源)、NDepend(付费);
3.C/C++平台:QAC(付费)、Source Monitor(开源)。
我们在实际的项目开发中主要使用Source Monitor开源工具,进行函数圈复杂度研究和统计。
基于之前对于项目开发者能力水平和软件圈复杂度的研究,我们尝试进行数据收集分析并构建COD阶段引入缺陷密度、ACV(C语言技术&编码)和圈复杂度之间的数学预测模型。
基于ACV和圈复杂度建立COD引入缺陷模型构建的目标如下:
1.在项目策划或者COD阶段活动之前,项目经理参考此模型调配项目组成员、安排项目级培训,策划在设计阶段控制圈复杂度,并基于此进行程序设计工作。
2.COD阶段开始后,项目管理人员可以根据代码复杂度管理表中的相关要求进行实际圈复杂度数据的收集,并利用此模型进行预测,进行COD过程中的动态编码控制,适当降低系统和程序文件的圈复杂度。
基于上述的研究目标进行了建模方法的研究,确定了相应的预测前提和思路。
1.通过对动态PPM中数据的敏感度计算结果,COD阶段的引入缺陷数对项目质量的敏感度最大,对项目质量目标的达成有较大的影响。
2.同时根据相关专家前期对COD阶段引入缺陷数及相关因素的相关性分析结论,COD阶段引入缺陷数与代码规模、圈复杂度、开发人员职级平均值有较强的相关性。
3.基于上述结论和成果,考虑选择使用开发人员的具体关键能力预测COD阶段缺陷数量,以期待获得更加可控的PPM模型,采用回归分析的方法建立预测模型。
在基础数据收集方面,为了保证数据的同质性,选择同一业务线相关项目进行分析,保证模型的针对性和有效性。实际选择A业务线,基于2008年度至2010年度20余个项目数据进行分析。 使用MiniTab 15.1软件中的Pearson计算方法计算了上述相关数据的相关性,最终发现COD引入缺陷密度、项目平均圈复杂度和编码&C能力均值有较强的相关性,而项目有效代码行数与COD引入缺陷密度无明显的相关性。
基于模型建立的思路和统计分析结果,初步设定数学模型的公式为:
Y=a+b×X1+c×X2 (2)
其中,Y:COD阶段引入缺陷密度;X1:项目平均圈复杂度;X2:ACV—项目COD阶段所有开发人员的关键能力项(编码&C)的平均值。
在相关性分析的基础上,使用MiniTab 15.1进行回归分析,能够初步得到COD阶段引入缺陷密度Y、项目平均圈复杂度X1和项目COD阶段所有开发人员的关键能力项(编码&C)的平均值X2之间的数学关系。
通过回归方法得到最后的回归方程为:
Y=4.81+1.37×X1-3.17×X2 (3)
从最后的回归方程中我们可以推断:
1.项目COD阶段所有开发人员的关键能力项(编码&C)的平均值X2越大,COD阶段引入的缺陷密度就越小,那么项目的总体质量就会越好;
2.项目平均圈复杂度X1越小,COD阶段引入的缺陷密度就越小,那么项目的总体质量就会越好。
下面是使用MiniTab 15.1工具进行回归分析的结果。
利用上述模型我们可以在合适的项目中进行应用,比如我们可以在项目策划阶段就开始使用模型,通过计算同类项目的平均圈复杂度、拟进入项目组的开发成员的C&编码能力水平来对项目质量进行预测(COD阶段引入缺陷密度)。
如果预测的项目质量目标没有达到客户和组织的要求,项目经理可以根据情况调整项目组的成员,将在C&编码能力方面具有更高水平的人员调入项目,以便减少在COD阶段引入的缺陷数量,降低COD阶段引入缺陷密度。同时,我们还可以在系统设计、概要设计和详细设计阶段不断优化软件设计水平,通过降低程序圈复杂度的方式提升项目质量,降低COD阶段引入的缺陷数量和缺陷密度。
在COD阶段开始之前项目经理或者技术总监可以通过模型预测COD阶段的缺陷密度,如果发现项目质量存在高风险的问题可以提前采取措施进行缺陷预防。
以上提到基于能力的项目质量预测模型在车载导航软件开发中具有一定的普遍意义,相关的分析思路和模型建立的方法可以被应用到软件开发的其他业务领域之中。通过质量预测模型的建立和应用,组织可以不断定量分析、控制其质量目标的制定和达成。
参考文献
[1] Jamaiah H.Yahaya,Aziz Deraman.Measuring the Unmeasurable Characteristics of Software Product Quality[J].IJACT,2010,2(4):95-106.
[2] Hajar Mat Jani,Salama A. Mostafa.Implementing Case-Based Reasoning Technique to Software Requirements Specifications Quality Analysis[J].IJACT,2011,3(1):23-31.
[3] Zhang Xue-mei,Hoang Pham.An analysis of factors affecting software reliability[J].The Journal of Systems and Software,2000,50(1):43-56.
——本文由丰临科技整理发布,内容供参考,如有侵权,请联系删除,谢谢!上海丰临科技有限公司为你提供浊度仪(浊度计)、在线浊度仪、余氯仪、余氯分析仪、工业在线pH计、cod测定仪、pH计等多种水质检测仪,水质分析仪,欢迎您前来选购,丰临科技竭诚为您服务!
水质检测分析仪
热销仪器
仪器知识百科
- 浊度计测定精炼菜籽油中蜡含量
- 二氧化氯缓释剂对畜禽饮用水消毒的应用研究
- 浊度计使用注意事项
- 快速COD分析方法在污水处理中的应用
- 水质自动监测系统的运行管理和质量控制
- 在线监测仪为矿区污水排放提供诊断
- 如何将测量水质的电导率转化为浓度
- 水质COD测定过程中几个常见问题
- 新时期加强自来水水质监测的有效策略
- [浊度仪]光纤浊度仪ZD610210在自来水厂滤后水中的应用
- NT8000G/TSS801N-400型在线浊度仪
- 水质微量重金属在线复合传感器研究
- 南充市西充河水质变化及污染防治探讨
- 浊度计的使用、校准和标定方法
- 浊度仪测量的浊度与含沙量的关系分析
- BP神经网络与粒子群算法的水质检测评价方法
相关资讯更多>>
- 二氧化氯消毒工艺在中小水厂中的应用
- 化学需氧量(COD)、总有机碳(TOC)已广泛应用于污废水工艺处理行业
- 水中COD的测定
- 中水回用处理系统投运后COD超标问题分析与解决
- 新时期加强自来水水质监测的有效策略
- 分光光度计上测定吸光度及化学需氧量值
- 泳池卫生情况如何余氯含量高了低了都不行
- 二氧化氯应用于工业循环水处理中的探讨
- 激光光谱技术的水质监测系统研究
- 松北湿地水质中粪大肠菌群的测定
- PAC与PAM联用处理低温低浊度原水
- 生活饮用水中浑浊度指标对余氯消毒效果的影响
- 微波消解―分光光度法测定废水中COD
- 浊度是衡量水质好坏的重要指标之一-出厂水要求浊度<1度(ntu)
- 高温季节泥鳅养殖池塘主要水质因子变化规律
- 湖水浊度高光谱定量反演模型