CN106406870A - 一种基于软件复杂网络的四维软件演化度量分析方法 - Google Patents

一种基于软件复杂网络的四维软件演化度量分析方法 Download PDF

Info

Publication number
CN106406870A
CN106406870A CN201610804794.6A CN201610804794A CN106406870A CN 106406870 A CN106406870 A CN 106406870A CN 201610804794 A CN201610804794 A CN 201610804794A CN 106406870 A CN106406870 A CN 106406870A
Authority
CN
China
Prior art keywords
software
version
value
metric
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610804794.6A
Other languages
English (en)
Other versions
CN106406870B (zh
Inventor
艾骏
杨雨微
张少雄
王菲
王佳明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201610804794.6A priority Critical patent/CN106406870B/zh
Publication of CN106406870A publication Critical patent/CN106406870A/zh
Application granted granted Critical
Publication of CN106406870B publication Critical patent/CN106406870B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明是一种基于软件复杂网络的四维软件演化度量分析方法,属于软件工程领域。本发明包括:对目标软件的每个版本的代码进行函数调用网络的抽取;对版本演化过程中软件的模块性、结构层级性、复杂性以及故障传播性四个维度进行度量监测,每个维度设置有三个基本度量指标;对每个维度度量结果进行统计,分别绘制版本演化的波动趋势图;结合目标软件类型的四维度量基准阈值,对目标软件的版本进行评价;将评价结果较好的软件放入软件基准库,进行基准阈值优化。本发明实现对软件产品的整体结构质量水平的全面监测,可及时纠正软件开发中存在的问题,对同一类型的目标软件在统一的基准阈值标准下进行分析和评价,保证了结果的客观性和有效性。

Description

一种基于软件复杂网络的四维软件演化度量分析方法
技术领域
本发明应用于软件工程领域,是一种基于软件复杂网络度量,用于评价软件开发和维护过程中软件的质量水平的分析方法。
背景技术
随着软件在人们生活中应用的日益普及和深入,人们对软件功能的需求越来越丰富,对软件质量的要求也越来越高。软件规模的扩大和软件应用环境的日益复杂,使软件系统的规模和复杂性不断增长。这不仅带来了更多的软件问题也使得软件系统更加难以控制。为了更好地解决软件问题,对软件进行开发和维护,必须更加全面深入地了解软件特性。为此,从结构化软件到面向对象软件,研究人员从不同角度提出了各种度量方法对软件网络的结构特性进行研究。而如基于程序体积的Halstead方法,面向对象的McCabe圈复杂度量以及C&K和MOOD度量集等这些传统的软件度量分析方法,或是着眼于宏观的架构,或是着眼于局部的逻辑,但过于注重单一功能个体,强调微观统计特性而忽略了软件系统结构的整体性,难以从全局角度对软件网络结构进行度量。复杂网络的兴起,为分析软件结构特性提供了新的视角。
复杂网络是一种用于描述复杂系统的模型,通过将软件系统中的包、类、变量、函数等元素抽象为结点,元素之间的相互关系抽象为连接,整个软件可以抽象为一种具有特定拓扑结构的网络形态。利用复杂网络理论方法对复杂软件进行研究,有效解决了以上传统度量方法的局限性,使可以从宏观角度对软件有更加深刻的认识。在软件复杂网络方法的推动下,软件演化规律,软件结构特性等方面的研究取得了一定的成果。随着软件复杂性的不断提高,软件复杂网络的方法将更广泛的应用于度量软件结构,分析软件特征,以及评价软件质量的过程中。
目前,广泛应用的软件复杂网络结构度量方法主要是利用复杂网络科学中一些基本度量方法,或者根据软件对象本身特性提出某种单个或者综合度量方法,用来分析和评价软件的某种单一或者有限的结构特性。而作为复杂系统的软件产品,其质量的好坏需要由软件的多方面的综合表现决定,因此从更全面的视角了解软件的结构特性是非常重要的。当前的软件复杂网络度量分析方法很少能够对软件的多种结构特征进行综合分析评价,这导致了开发人员难以全面深入地了解软件产品,无法及时纠正软件开发中存在的问题,难以对软件质量进行有效控制。
发明内容
本发明针对目前软件的度量分析方法仅局限于单一或者有限方面的软件结构特性,导致对软件产品分析不全面的问题,提出了一个基于软件复杂网络度量方法的四维软件演化分析方法,对版本演化过程中软件的模块性Modularity,结构层级性Hierarchy,复杂性Complexity以及故障传播特性Propagation四种结构特性(简称MHCP)进行度量监测。
本发明提出的基于软件复杂网络的四维软件演化度量分析方法,包括如下步骤:
步骤1:确定目标软件的各个版本及其源代码,对每个版本的软件代码进行函数调用网络的抽取。
步骤2:对版本演化过程中软件的模块性、结构层级性、复杂性以及故障传播性四个维度进行度量监测;其中,选取模块性的度量指标为聚集系数cc、网络密度d和模块划分质量q;选取结构层级性的度量指标为出度匹配系数oac、流层级性di和最大核度mc;选取复杂性的度量指标为平均节点度ad、基本环数量bc和标准结构熵hs;选取故障传播性的度量指标为网络效率e、有效直径ed和平均波及度tavg
获得目标软件各版本的软件函数调用网络后,对演化过程中的每个函数调用网络进行四个维度的度量计算。首先获取四个维度下各度量指标的值,然后根据下面公式获得模块性、结构层级性、复杂性以及故障传播性的度量值。
M=(f(cc)α×q)/f(d)β (1)
H=[f(oac)γ×f(di)]/f(mc)θ (2)
C=-[hs×f(ad)×f(bc)] (3)
P=f(e)λ/[f(ed)δ×f(tavg)τ] (4)
其中,M表示模块性的度量值,H表示结构层级性的度量值,C表示复杂性的度量值,P表示故障传播性的度量值。反正切函数f(x)对输入参数x进行标准化处理,使得对应度量指标的数值在[0,1]范围内,α、β、γ、θ、λ、δ和τ分别为基本度量参数cc、d、oac、mc、e、ed和tavg的权重系数。
步骤3:对每个维度的度量结果进行统计,分别绘制M、H、C、P随着版本演化的波动趋势图,从四个维度监测软件版本演化。
步骤4:结合目标软件类型的四维度量基准阈值,对目标软件整个演化过程的结构质量进行评价。当度量结果超过基准阈值时,表示目标软件在对应维度的结构质量较高。
首先,根据软件类型,选取该类型下开源软件的稳定版本建立一个软件基准库,从中选取一定数量的最近软件版本,计算选取的所有版本在四个维度下的各度量指标的平均值,再根据公式(1)~(4)得到四个维度的综合度量平均值μM,μH,μC和μP
然后,计算基准阈值,具体包括步骤4.1~4.5。
步骤4.1:计算软件基准库中每一个版本的M、H、C、P与综合度量平均值之间的偏差和;
diffi=|MiM|+|HiH|+|CiC|+|PiP| (5)
其中,diffi表示软件基准库中第i个版本的四个维度的度量值Mi、Hi、Ci、Pi与综合度量平均值之间的偏差和,1≤i≤N,N为软件基准库中的总版本数。
步骤4.2:选取偏差和diffi最小的前10个版本构成版本集合VS,1≤i≤N。
步骤4.3:根据中心极限定理,在保证diffi值在置信水平为(1-υ)×100%,精确度为±ρ%的范围内,通过公式(6),计算目标软件类型在考虑综合度量参数x下所需的版本数量Nx
其中,μ和σ分别表示VS集合中所有版本的综合度量参数x的均值和方差;Φ表示标准正态分布;x∈{M,H,C,P};取四个版本数中的最大值,标记为NX
步骤4.4:如果NX<|VS|,表示版本数量稳定,继续步骤4.5;否则,将其他不在VS集合中的版本按照diffi值从小到大的顺序依次加到VS集合中,每加入一个版本重复步骤4.3,更新NX
步骤4.5:计算版本集合VS中所有版本在四个维度下的各个度量指标的平均值,根据公式(1)~(4)得到四个维度的基准阈值。
步骤5:若目标软件的评价结果较好,将该软件的版本放入软件基准库,然后再依据步骤4.1~4.5对基准阈值进行优化。
本发明与现有技术相比,具有以下明显的优势:
首先本发明根据现有的对软件结构的研究,将软件结构特性分为四个方面,分别从软件的模块性M,层级性H,复杂性C以及故障传播特性P四个维度对软件进行全面监测。其次,为了更加全面深入的进行分析,本发明分别从基本度量、综合度量和全面度量三个层次对软件复杂网络进行度量。最后,本发明提出了一种基准阈值计算方法,将某种度量参数值至少应达到的平均水平的数据作为该参数的基准阈值。对同一类型的目标软件在统一的基准阈值标准下进行分析和评价,保证了结果的客观性和有效性。
通过在软件开发过程中不断监控各个版本函数调用网络的MHCP四个维度的三个层次的度量结果,对软件产品的整体结构质量水平进行全面的监测,及时掌握软件的研发状态,发现演化趋势,及时纠正软件开发中存在的问题,有效控制软件质量,对软件工程实践具有深远的意义。
附图说明
图1是本发明基于软件复杂网络的四维演化度量分析方法的流程示意图;
图2是MHCP四维结构度量示意图;
图3是MHCP准则优先程度评估矩阵;
图4是采用本发明方法对Gedit开源软件从四个维度监测版本演化的示意图;其中(a)为软件模块性度量;(b)为软件结构层级性度量;(c)为软件复杂性度量;(d)为软件故障传播性度量;
图5是采用本发明方法对Gedit开源软件全面度量OE的示意图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图对本发明作进一步的详细和深入描述。
本发明在分析总结当前软件复杂网络相关研究的基础上,分别对软件的MHCP四方面结构特性进行度量,在如图2所示的三个层次的度量基础上对软件的结构特性进行分析。基础度量层,主要是针对每个维度选取三个度量指标,度量指标选用包含节点级与网络级度量在内的对软件该方面特性具有重要意义的,并用传统复杂网络度量方法计算获得指标值。
如图2所示,本发明实施例中,选取模块性的度量指标为聚集系数cc、网络密度d和模块划分质量q;选取层级性的度量指标为出度匹配系数oac、流层级性di和最大核度mc;选取复杂性的度量指标为平均节点度ad、基本环数量bc和标准结构熵hs;选取故障传播特性的度量指标为网络效率e、有效直径ed和平均波及度tavg
综合度量层,为了获得难以从单个基础度量中获得的结构特性综合表现,基于基础度量方法,对每个维度的结构度量提出该维度下的综合度量方法如下:
M=(f(cc)α×q)/f(d)β (1)
H=[f(oac)γ×f(di)]/f(mc)θ (2)
C=-[hs×f(ad)×f(bc)] (3)
P=f(e)λ/[f(ed)δ×f(tavg)τ] (4)
其中,M表示模块性的度量值,H表示结构层级性的度量值,C表示复杂性的度量值,P表示故障传播性的度量值。为了让所有度量指标的数值在[0,1]范围内,本发明对部分度量指标参数cc、d、oac、mc、ad、bc、e、ed、tavg使用反正切函数进行了标准化处理,x为输入的参数。α,β,γ,θ,λ,δ和τ分别为基本度量参数cc,d,oac,mc以及e,ed,tavg的权重系数,不同的权重值代表了在综合度量中用户更加倾向于哪一方面的基本特性。例如,如果认为在度量结构模块特性上,聚集系数cc对于特定软件系统起着更加重要的作用,因此就对α取更小的值。权重系数的取值范围是(0,1)。
全面度量层,为了监测整个软件产品级的结构质量,基于以上四种综合度量,本发明提出软件全面度量方法的标准OE:
OE=ωMM+ωHH+ωCC+ωPP (5)
其中,ωx代表综合度量参数x的权重系数,x=M,H,C,P。ωx的取值范围为(0,1),该系数可以在实际工程应用中根据不同的用户需要以及环境自行确定,权重值越大表示更加关注该方面的特性。
在实际工程应用中,可以采用在工程系统分析中常用的图3所示的准则优先程度评估矩阵来确定各个综合参数的权重系数。M,H,C,P为待比较的准则,矩阵中的每个元素代表准则x,y间的比例系数,kxy表示准则x与准则y相比的重要程度,x和y的取值均为{M,H,C,P}。各准则自身相比不得分,故评估矩阵对角线上各元素均为零。准则之间一一对比时,较重要的那个准则得分应大于5分,而两者之和应为10分,即kxy+kyx=10。将每一行的元素相加可以得到每个准则权重度量值Sx,然后综合度量参数x的权重系数ωx通过下面公式计算得到:
根据以上三层度量,实现对软件网络全面度量。获得度量结果后,根据软件版本的发布时间绘制每个综合度量参数指标的演化趋势图。横坐标为版本,纵坐标为综合度量参数的度量值。在此基础上,本发明还根据该目标软件的基准阈值对软件进行评价。
本发明的基于软件复杂网络的四维软件演化度量分析方法,整体步骤如图1所示。
步骤1:根据需求确定目标软件的各个版本及其源代码,对每个版本的软件代码进行函数调用网络的抽取。
函数调用网络是目前粒度最低的软件复杂网络,它将软件代码中的函数抽象为节点,函数之间的关系抽象为边。例如用ri代表函数fi的边,用fi→fj表示函数fi至少调用了函数fj一次。
步骤2:获得各版本的软件函数调用网络后,对演化过程中的每个函数调用网络进行MHCP四个维度的度量计算,计算公式见公式(1)~(4)。
步骤3:对每个维度的度量结果进行统计,分别绘制M、H、C、P随着版本演化的波动趋势图。
步骤4:根据目标软件所属软件类型的四个维度的基准阈值,及其度量结果演化趋势图,对目标软件演化过程中的版本以及整个软件的结构特性和基本质量水平进行分析。
本发明根据不同的软件类型,如数据库软件、平台软件等,分别选取某类型下大量成熟的开源软件的稳定版本建立相应的软件基准库,并计算得到该类型软件的统一基准阈值,具体是从软件基准库中选取一定数量的最近软件版本,这些软件版本并非属于同一个软件,例如选取最近50个版本,计算最近50个版本的四个综合度量参数的平均值。首先计算所有版本在四个综合度量下各基本度量指标值的平均值,然后根据公式(1)~(4)得到四个综合度量参数的平均值μM,μH,μC和μP。然后计算基准阈值,如步骤4.1~步骤4.5所示。
步骤4.1:计算软件基准库中每一个版本的综合度量参数值与综合度量平均值之间的偏差和。
diffi=|MiM|+|HiH|+|CiC|+|PiP| (6)
其中,diffi表示软件基准库第i个版本的四个综合度量参数值Mi、Hi、Ci、Pi与综合度量平均值之间的偏差和,1≤i≤N,N为软件基准库的总版本数。
步骤4.2:根据偏差和值的大小对版本进行筛选,选取偏差和diffi值最小的前10个版本构成版本集合VS,1≤i≤N。
步骤4.3:根据中心极限定理,在保证diffi值在置信水平为(1-υ)×100%,精确度为±ρ%的范围内保持统计稳定的条件下,使用如下公式,计算得到目标软件类型在考虑综合度量参数x下所需的版本数量Nx
其中,μ和σ分别表示VS集合中所有版本的综合度量参数x的均值和方差。Φ表示标准正态分布,根据中心极限定理得到。x∈{M,H,C,P}。
对于每个综合度量参数x都计算得到一个版本数Nx,取四个版本数的最大值,标记为NX
步骤4.4:如果NX<|VS|,表示版本数量稳定,否则,将其他不在VS集合中的版本按照diffi值从小到大的顺序依次加到VS集合中,每加入一个版本重复步骤4.3,更新NX。在实际工程应用中可以限制VS集合的最大容量为40。
步骤4.5:选取稳定版本后,计算选取出的某类型软件的版本集合VS下的所有版本的软件基本度量的平均值,根据公式(1)~(4)得到四个综合度量值,作为基准阈值,此外还可以根据公式(5)进一步计算全面度量的基准阈值。
在获得演化过程中的度量结果以及基准阈值后,可以对目标软件进行分析和评价。基准阈值是软件在某方面的结过质量至少应达到的平均水平,如果度量结果超过基准阈值,表示软件在这方面结构质量较高。基准阈值是随着基准库中的软件及其版本的改变而改变的,基准库中的软件越优质,版本越稳定,样本越丰富,得到的基准阈值越准确,评价越客观。对分析评价结果较好的软件可以将其纳入软件基准库中,利用本发明方法优化更新该类型软件的基准阈值。
步骤5:若目标软件的评价结果较好,将该软件的版本放入软件基准库,然后再依据步骤4.1~4.5对基准阈值进行优化。
采用本发明方法对Gedit开源软件的146个版本进行的MHCP度量分析,它是由C/C++语言编写的,Linux系统下的文本编辑器软件。分析结果如图4中a~d所示。图中,横坐标为版本号,纵坐标分别为综合度量指标M、H、C、P。
图a为软件模块性度量结果M意图。图中显示早期版本的M值相对较低,在开发的早期阶段软件代码结构的模块性较差。从版本41开始,M值有了显著提升,版本40时的M值为0.818,在版本41增加到了0.854,在版本42增加到了0.865。这主要是由模块度的变化引起的。从版本56开始,M值开始趋于稳定,尽管由于新功能模块的引入导致M值没有版本42到55高,但大部分的M值仍然高于红线标出的基本阈值。
图b为软件结构层级性度量结果H的示意图。和模块性度量相同,H度量值在版本41处发生了较大的变化,从0.185增加到了0.210。这是由初度匹配系数oac的增大引起的,这说明具有相似出度值的节点更倾向于相互连接。之后大部分版本的H值都高于基本阈值,说明了后期版本软件的层级结构较好。
图c为软件复杂性度量结果C的示意图。不同于M和H度量,早期Gedit软件的复杂度较高,C值从版本74开始有了显著的提升。早期版本的复杂性较高主要由较大的标准结构熵hs以及基本环数量bc引起的,这说明软件复杂网络的无标度特性不够显著,代码结构比较复杂。从版本78开始C值在-0.769到-0.764之间小范围波动。从图c可知除版本93之外的所有开发后期的68个版本的C值均在基本阈值之上。
图d为软件故障传播性度量结果P的示意图。从图中可以看到版本41到版本85之间的绝大多数版本的P值都处于基本阈值之下。这说明软件的故障传播特性表现并不理想。在版本41之前,网络效率e的减小直接导致了P值的下降,尽管有效直径ed以及平均波及度tavg都在增大。这说明节点的影响范围在显著增大,也就是说某个节点的故障传播更容易传播到其他节点。接着在小范围波动后,软件的P值在后期版本中仍然保持相对稳定。
图5为对Gedit开源软件的综合度量趋势图,其中设置综合度量参数x的权重系数ωx均为0.25。从图中可见软件在版本9之前质量较好。从版本9之后OE值开始显著下降,该趋势一直持续到版本64,达到了所有版本146个版本的最低值(0.227)。这是由软件新功能模块的完善导致整个代码结构复杂性的增大引起的,这个现象说明了在软件开发的早期阶段就应该重点关注其复杂特性。从版本64之后,OE值稳步上升直到版本93。OE值增大的原因主要有两点:第一,C值从-0.773增大到-0.767,软件的复杂性得到了改善;第二,软件的模块性和层级性稳步上升,并在后期在一定范围内保持稳定。版本93之后,Gedit进入到一个相对稳定阶段。OE值保持在0.237左右,这意味着软件已经进入到了一个成熟阶段,即软件的大部分功能均已实现,并完成了测试,开始被大量用户使用。

Claims (5)

1.一种基于软件复杂网络的四维软件演化度量分析方法,其特征在于,实现步骤如下:
步骤1:确定目标软件的各个版本及其源代码,对每个版本的软件代码进行函数调用网络的抽取;
步骤2:对版本演化过程中软件的模块性、结构层级性、复杂性以及故障传播性四个维度进行综合度量;其中,选取模块性的度量指标为聚集系数cc、网络密度d和模块划分质量q;选取结构层级性的度量指标为出度匹配系数oac、流层级性di和最大核度mc;选取复杂性的度量指标为平均节点度ad、基本环数量bc和标准结构熵hs;选取故障传播性的度量指标为网络效率e、有效直径ed和平均波及度tavg
获得目标软件各版本的函数调用网络后,对演化过程中的每个函数调用网络进行四个综合度量值计算,计算公式如下:
M=(f(cc)α×q)/f(d)β (1)
H=[f(oac)γ×f(di)]/f(mc)θ (2)
C=-[hs×f(ad)×f(bc)] (3)
P=f(e)λ/[f(ed)δ×f(tavg)τ] (4)
其中,M表示模块性的度量值,H表示结构层级性的度量值,C表示复杂性的度量值,P表示故障传播性的度量值;反正切函数f(x)对输入参数x进行标准化处理,使得对应度量指标的数值在[0,1]范围内,α、β、γ、θ、λ、δ和τ分别为基本度量参数cc、d、oac、mc、e、ed和tavg的权重系数;
步骤3:对每个维度的度量结果进行统计,分别绘制M、H、C、P随着版本演化的波动趋势图,从四个维度监测软件版本演化;
步骤4:根据目标软件类型对应的四个维度的基准阈值,对目标软件整个演化过程的结构质量进行评价,当度量结果超过基准阈值时,表示目标软件在对应维度的结构质量较高;
首先,根据软件类型,选取该类型下开源软件的稳定版本建立一个软件基准库,从中选取一定数量的最近软件版本,计算选取的所有版本在四个维度下的各度量指标的平均值,再根据公式(1)~(4)得到四个维度的综合度量平均值μM,μH,μC和μP
然后,计算基准阈值,具体是:
步骤4.1:计算软件基准库中每一个版本的M、H、C、P与综合度量平均值之间的偏差和;
diffi=|MiM|+|HiH|+|CiC|+|PiP| (5)
其中,diffi表示软件基准库中第i个版本的四个维度的度量值Mi、Hi、Ci、Pi与综合度量平均值之间的偏差和,1≤i≤N,N为软件基准库中的总版本数;
步骤4.2:选取偏差和diffi最小的前10个版本构成版本集合VS,1≤i≤N;
步骤4.3:根据中心极限定理,在保证diffi值在置信水平为(1-υ)×100%,精确度为±ρ%的范围内,通过公式(6),计算目标软件类型在考虑综合度量参数x下所需的版本数量Nx
N x = ( 100 &times; &Phi; - 1 ( 2 - &upsi; 2 ) &times; &sigma; &rho; &times; &mu; ) 2 - - - ( 6 )
其中,μ和σ分别表示VS集合中所有版本的综合度量参数x的均值和方差;Φ表示标准正态分布;x∈{M,H,C,P};取四个版本数中的最大值,标记为NX
步骤4.4:如果NX<|VS|,表示版本数量稳定,继续步骤4.5;否则,将其他不在VS集合中的版本按照diffi值从小到大的顺序依次加到VS集合中,每加入一个版本重复步骤4.3,更新NX
步骤4.5:计算版本集合VS中所有版本在四个维度下的各个度量指标的平均值,根据公式(1)~(4)得到四个维度的基准阈值;
步骤5:若目标软件的评价结果较好,将该软件的版本放入软件基准库,然后再依据步骤4.1~4.5对基准阈值进行优化。
2.根据权利要求1所述的一种基于软件复杂网络的四维软件演化度量分析方法,其特征在于,所述的步骤2中,在获得四个综合度量值,还继续根据下面公式进行全面度量;
OE=ωMM+ωHH+ωCC+ωPP (7)
其中,OE为软件全面度量值,ωx代表综合度量参数x的权重系数,x=M,H,C,P,ωx的取值范围为(0,1)。
3.根据权利要求2所述的一种基于软件复杂网络的四维软件演化度量分析方法,其特征在于,所述的权重系数ωx采用准则优先程度评估矩阵来确定,其中M,H,C,P为待比较的准则,矩阵中的元素kxy表示准则x与准则y相比的重要程度,x和y的取值均为{M,H,C,P};各准则自身相比为零,准则之间一一对比时,较重要的那个准则得分应大于5分,而两者之和应为10分,表示为kxy+kyx=10;将每一行的元素相加得到每个准则的权重度量值Sx,然后综合度量参数x的权重系数ωx通过下面公式计算得到:
&omega; x = S x &Sigma; y &Element; { M , H , C , P } S y .
4.根据权利要求1所述的一种基于软件复杂网络的四维软件演化度量分析方法,其特征在于,所述的步骤4.4中,设置集合VS的最大容量为40。
5.根据权利要求1或2所述的一种基于软件复杂网络的四维软件演化度量分析方法,其特征在于,所述的步骤4.5,在得到四个维度的基准阈值后,根据公式(7)计算得到全面度量的基准阈值。
CN201610804794.6A 2016-09-06 2016-09-06 一种基于软件复杂网络的四维软件演化度量分析方法 Active CN106406870B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610804794.6A CN106406870B (zh) 2016-09-06 2016-09-06 一种基于软件复杂网络的四维软件演化度量分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610804794.6A CN106406870B (zh) 2016-09-06 2016-09-06 一种基于软件复杂网络的四维软件演化度量分析方法

Publications (2)

Publication Number Publication Date
CN106406870A true CN106406870A (zh) 2017-02-15
CN106406870B CN106406870B (zh) 2019-06-04

Family

ID=57999906

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610804794.6A Active CN106406870B (zh) 2016-09-06 2016-09-06 一种基于软件复杂网络的四维软件演化度量分析方法

Country Status (1)

Country Link
CN (1) CN106406870B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106970803A (zh) * 2017-04-25 2017-07-21 北京理工大学 一种软件系统演化的分析方法和装置
CN107066384A (zh) * 2017-03-28 2017-08-18 东南大学 基于Halstead复杂度度量的软件演化评估方法
CN107392424A (zh) * 2017-06-14 2017-11-24 中国航空综合技术研究所 一种建立产品制造过程中质量波动源解释结构模型的方法
CN108255733A (zh) * 2018-01-30 2018-07-06 北京航空航天大学 一种基于复杂网络理论评估软件系统可靠性的方法
CN109032926A (zh) * 2018-06-26 2018-12-18 中国电子技术标准化研究院 软件质量的量化方法及系统
CN109597757A (zh) * 2018-11-07 2019-04-09 北京航空航天大学 一种基于多维时间序列熵的软件网络间相似度的度量方法
CN109828925A (zh) * 2018-06-25 2019-05-31 北京航空航天大学 一种基于软件网络结构特征的软件可靠性度量方法
WO2020107142A1 (zh) * 2018-11-26 2020-06-04 湖南中车时代电动汽车股份有限公司 一种软件质量度量方法及系统
CN111767212A (zh) * 2020-06-17 2020-10-13 中国船舶重工集团公司第七一九研究所 一种软件代码质量评价方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110093251A1 (en) * 2009-10-16 2011-04-21 Sun Microsystems, Inc. Virtualizing complex network topologies
CN103793230A (zh) * 2014-02-18 2014-05-14 河海大学 一种面向对象软件系统类的内聚度度量方法
CN105808435A (zh) * 2016-03-08 2016-07-27 北京理工大学 一种基于复杂网络的软件缺陷评估模型的构建方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110093251A1 (en) * 2009-10-16 2011-04-21 Sun Microsystems, Inc. Virtualizing complex network topologies
CN103793230A (zh) * 2014-02-18 2014-05-14 河海大学 一种面向对象软件系统类的内聚度度量方法
CN105808435A (zh) * 2016-03-08 2016-07-27 北京理工大学 一种基于复杂网络的软件缺陷评估模型的构建方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066384A (zh) * 2017-03-28 2017-08-18 东南大学 基于Halstead复杂度度量的软件演化评估方法
CN106970803A (zh) * 2017-04-25 2017-07-21 北京理工大学 一种软件系统演化的分析方法和装置
CN107392424A (zh) * 2017-06-14 2017-11-24 中国航空综合技术研究所 一种建立产品制造过程中质量波动源解释结构模型的方法
CN108255733B (zh) * 2018-01-30 2019-05-03 北京航空航天大学 一种基于复杂网络理论评估软件系统可靠性的方法
CN108255733A (zh) * 2018-01-30 2018-07-06 北京航空航天大学 一种基于复杂网络理论评估软件系统可靠性的方法
CN109828925A (zh) * 2018-06-25 2019-05-31 北京航空航天大学 一种基于软件网络结构特征的软件可靠性度量方法
CN109032926A (zh) * 2018-06-26 2018-12-18 中国电子技术标准化研究院 软件质量的量化方法及系统
CN109032926B (zh) * 2018-06-26 2022-04-05 中国电子技术标准化研究院 软件质量的量化方法及系统
CN109597757A (zh) * 2018-11-07 2019-04-09 北京航空航天大学 一种基于多维时间序列熵的软件网络间相似度的度量方法
CN109597757B (zh) * 2018-11-07 2021-04-30 北京航空航天大学 一种基于多维时间序列熵的软件网络间相似度的度量方法
WO2020107142A1 (zh) * 2018-11-26 2020-06-04 湖南中车时代电动汽车股份有限公司 一种软件质量度量方法及系统
CN111767212A (zh) * 2020-06-17 2020-10-13 中国船舶重工集团公司第七一九研究所 一种软件代码质量评价方法、装置、设备及存储介质
CN111767212B (zh) * 2020-06-17 2024-05-14 中国船舶重工集团公司第七一九研究所 一种软件代码质量评价方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN106406870B (zh) 2019-06-04

Similar Documents

Publication Publication Date Title
CN106406870A (zh) 一种基于软件复杂网络的四维软件演化度量分析方法
Al-Othman et al. Uncertainty modelling in power system state estimation
CN113780436B (zh) 一种基于综合度的复杂网络关键节点识别方法
CN111859249B (zh) 一种基于解析四维集合变分的海洋数值预报方法
Haque et al. Crop yield analysis using machine learning algorithms
Ghosh A FORTRAN program for fitting Weibull distribution and generating samples
CN110262954A (zh) 基于状态监测数据自动学习系统可靠性模型的方法
CN109389282A (zh) 一种基于高斯混合模型的电能表生产厂商评价方法
CN108830417A (zh) 一种基于arma和回归分析的生活能源消费预测方法及系统
CN107657349B (zh) 一种水库分期发电调度规则提取方法
CN111612371A (zh) 一种基于层次分析法的智能电表质量评估方法
CN114487976A (zh) 一种mcm电子式互感器校验仪溯源不确定度评定方法及系统
Philippe et al. Riemann sums for MCMC estimation and convergence monitoring
CN112765787A (zh) 动态环境下考虑性能指标聚类的退化建模与寿命预测方法
Wang et al. Data-driven model checking for errors-in-variables varying-coefficient models with replicate measurements
CN108008337A (zh) 电能表计量误差一致性的计算方法及装置
CN108710987A (zh) 指标决策方法
CN109858699B (zh) 水质定量模拟方法、装置、电子设备及存储介质
Vidotto et al. Averaging models: parameters estimation with the R-Average procedure
CN110084477A (zh) 一种云数据中心运行状态评估方法
McGregor Managing metrics in an iterative incremental development environment
CN115994639B (zh) 一种基于冗余分析的水网格局与地形地貌关联性评价方法
Immonen Classification and placement of measurements through LP/MIP algorithms
CN113191561B (zh) 一种基于高斯混合模型的径流随机模拟方法及系统
Kleinke et al. countimp version 2

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant