本发明专利技术公开了一种程序代码质量评估方法,其中,包括:确定评估维度;确定每一维度的度量元;确定每一维度占权重:确定每一度量元的权重;确定每一度量元评分值;计算评估结果加权值;计算评估结果值,包括:QOC=∑W
A method for quality evaluation of program code
The invention discloses a method and evaluation of a quality code which includes: determining the evaluation dimension; determining each dimension measurement element; determining each dimension weights: determining each metric weights; determine the metrics of each score value; evaluation results weighted value; evaluation results, including: QOC = W
【技术实现步骤摘要】
一种程序代码质量评估方法
本专利技术涉及计算机程序评估
,特别涉及一种程序代码质量评估方法。
技术介绍
为了快速完成对应用系统的国产化迁移优化工作,快速给出评估结果,对于较为复杂的问题通过经验分析给出替换方案,完成wintel平台到国产化平台的顺利迁移工作,软件代码质量直接影响了代码迁移工作的效率和迁移后软件工作的效率,因此对软件质量的评估成为了迁移工作中重要的环节。因此要保证软件的质量,就要对软件的质量进行度量,及时的发现问题,针对发现的问题进行修补和补救,才能促进软件迁移工作的可持续发展。目前的软件度量体系采用评价方式大部分是非0即1的度量方式,这种传统的度量方法不能满足国产化迁移软件复杂度高,高安全性,高可靠性的软件质量评价。因此建立起一套完善的质量评价模型对于迁移工作的推进具有指导性建设。目前在对软件质量的评价时,通常采用的方法有采用对功能点和代码行进行度量。通过功能点进行度量软件规模比较有影响力的是IFPUG功能点方法和Mark2功能点方法。IFPUG方法是把应用系统按照组件进行分解,并对每类组件以IFPUG定义的功能点为度量单位进行计算,从而得到反映整个应用系统规模的功能点数。MARK2功能点方法将整个应用软件描述成一系列逻辑事务的集合,根据这些集合度量软件,每个逻辑事务包含了输入、过程、输出三个部分。这些软件度量的方法不依赖于软件的具体实现,有些甚至可以在需求明确以后就可以做出对规模的度量,起到了评估预算的作用,但是这些方法的估算是因人而异的,往往偏差的情况比较大。
技术实现思路
本专利技术的目的在于提供一种程序代码质量评估方法,用于解决上述现有技术的问题。本专利技术的一种程序代码质量评估方法,其中,包括:确定评估维度;确定每一维度的度量元;确定每一维度占权重:确定每一度量元的权重;确定每一度量元评分值;计算评估结果加权值;计算评估结果值,包括:QOC=∑Wdi*(∑ei*Wei);其中,QOC为软件评估结果值,Wdi为维度的权重,ei为每个度量元的权重,Wei为每个度量元的评分值。根据本专利技术的程序代码质量评估方法的一实施例,其中,该维度包括:正确性、规范性、易读性、安全性和维护性。根据本专利技术的程序代码质量评估方法的一实施例,其中,该度量元包括:类数、类层级数、引用包数、路径数、函数个数、函数参数、函数返回值、直接调用个数、层级数以及调用者个数。根据本专利技术的程序代码质量评估方法的一实施例,其中,该度量元评分值的计算方法包括:g(X)=c(x+d)b-1e-a(x+d);其中,X为软件特征值,a、b、c和d为参数,计算的方程组包括:c(d)b-1e-ad=y0;C(x1+d)b-1e-a(x1-d)=1;C(x2+d)b-1e-a(x2-d)=y1;其中x1表示评分值g(x)是1的时候特征值x的取值;x2表示评分值g(x)为及格的时候特征值x的取值;y0表示x的值是1的时候评分值g(x)的取值,y1表示x的值及格的时候g(x)的取值;x0、x1、y0以及y1为预设值。综上,本专利技术在分析了代码质量的理论基础上,在实施对某邮件系统进行的应用中得到了验证,证明了代码质量评估模型在自主可控迁移过程中的可行性,提高了自主可控平台软件迁移的效率。附图说明图1所示为本专利技术一种程序代码质量评估方法的流程图;图2所示为圈复杂度测量值曲线图;图3所示为圈复杂度评分模型图;图4所示为质量模型的结构图;图5为质量评分值的示意图具体实施方式为使本专利技术的目的、内容、和优点更加清楚,下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。图1所示为本专利技术一种程序代码质量评估方法的流程图,参考图1,为了更准确的有效的度量软件质量,本专利技术将代码质量划分为几个不同的维度,这并不属于可以直接度量的指标,在每个度量维度下面划分出可以直接度量的度量元。参考图1,本专利技术的一种程序代码质量评估方法,包括:确定评估维度;确定每一维度的度量元;确定每一维度占权重:确定每一度量元评分值;计算评估结果加权值;计算评估结果值,根据评估结果值,确定评估结果优化方案,例如是否需要进行改进;在进行优化方案后,重新进行上述的评估结果值的计算。参考图1,进一步说明本专利技术一种程序代码质量评估方法的实现原理。参考图1,为了更准确的有效的度量软件质量,本专利技术将代码质量划分为几个不同的维度,这并不属于可以直接度量的指标,在每个度量维度下面划分出可以直接度量的度量元。可以采用一些具体的手段来衡量的指标。本专利技术在质量评价过程中选取了一些属于某维度的直接度量元,作为软件度量的指标,分别为类数,类层级数,引用包数,路径数,函数个数,函数参数,函数返回值,直接调用个数,层级数,调用者个数。在对每一具体度量元进行度量时应用函数g(X)=c(x+d)b-1e-a(x+d)作为具体的模型,X是某个软件特征度量值(本领域技术人员公知),g(x)是给出这个特征的评分值,a,b,c,d作为四个待定参数,可以由以下的方程组得出:c(d)b-1e-ad=y0;C(x1+d)b-1e-a(x1-d)=1;C(x2+d)b-1e-a(x2-d)=y1;其中x1表示评分值g(x)是1的时候特征值x的取值;x2表示评分值g(x)为及格的时候特征值x的取值;y0表示x的值是1的时候评分值g(x)的取值,y1表示x的值及格的时候g(x)的取值。因此应先确定x0,x1,y0,y1的值,才能确定a,b,c,d四个值,才能建立起评分的具体模式。x0,x1,y0,y1的值的确定可以在实际中通过大量统计和积累的结果得出,一般是一个不断调整和改进的过程。图2所示为圈复杂度测量值曲线图,图3所示为圈复杂度评分模型图,如图2以及图3所示,对于一种实施例,实现对度量元圏复杂度的评分模型:通过对多个软件(例如10个)对应度量元圈复杂度具体测量值的统计,例如,取x0初始值为统计最大值16.0,取x1初始值统计平均值13.26,取y0,y1初始值为0,0,根据上述公式可得参数a,b,c,d四个值,可得初始g(x)-x函数曲线,根据该曲线可得第一次迭代后x0,x1,y0,y1的值,经过大量迭代过程取得多个x0,x1,y0,y1的值取平均值可归纳出x0,x1,y0,y1的具体数值以建立起该度量元的评分模型曲线,其中横坐标表示度量元的具体取值,纵坐标表示评分值g(x)的具体取值。质量评估模型将代码的质量划分为六个维度,每个维度包含不同的度量元,度量元的评分值构成了这个维度的指标集,而代码的质量可以由个维度的质量总和构成,即代码的质量等于了各个维度质量的总和。六个维度分别为正确性,规范性,易读性,安全性,可维护性,可移植性。代码的质量最终的结果是六个维度质量和乘以各自的权重得到。各个维度下的具体度量元可以由用户根据需求个性化定制,单需涵盖基本的度量元。维度的权重是由于各个用户对软件关注的焦点差别而区别对待,用户应针对不同的需求对质量评价模型进行删减。根据用户需求确定评估维度:本实施例选取了某邮件系统进行试验具体说明本专利技术一种程序代码质量评估方法,该模型选取了三个维度来评价,正确性,安全性和可维护性。图4所示为质量模型的结构图,参考图1以及图4,本实施例的一种程序代码质量评估方法包括:确定每一维度考量的度量本文档来自技高网...
【技术保护点】
一种程序代码质量评估方法,其特征在于,包括:确定评估维度;确定每一维度的度量元;确定每一维度占权重:确定每一度量元的权重;确定每一度量元评分值;计算评估结果加权值;计算评估结果值,包括:QOC=∑W
【技术特征摘要】
1.一种程序代码质量评估方法,其特征在于,包括:确定评估维度;确定每一维度的度量元;确定每一维度占权重:确定每一度量元的权重;确定每一度量元评分值;计算评估结果加权值;计算评估结果值,包括:QOC=∑Wdi*(∑ei*Wei);其中,QOC为软件评估结果值,Wdi为维度的权重,ei为每个度量元的权重,Wei为每个度量元的评分值。2.如权利要求1所述的程序代码质量评估方法,其特征在于,该维度包括:正确性、规范性、易读性、安全性和维护性。3.如权利要求1所述的程序代码质量评估方法,其特征在于,该度量元包括:类数、类层级数、引用包数、路径数、函数个数、函数参数、函数返回值、直接调用个数、层级数...
【专利技术属性】
技术研发人员:何沁洁,刘磊,孙渊博,常青,穆森,
申请(专利权)人:北京计算机技术及应用研究所,北京航天爱威电子技术有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。