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

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

【技术实现步骤摘要】

本专利技术应用于软件工程领域,是一种基于软件复杂网络度量,用于评价软件开发和维护过程中软件的质量水平的分析方法。
技术介绍
随着软件在人们生活中应用的日益普及和深入,人们对软件功能的需求越来越丰富,对软件质量的要求也越来越高。软件规模的扩大和软件应用环境的日益复杂,使软件系统的规模和复杂性不断增长。这不仅带来了更多的软件问题也使得软件系统更加难以控制。为了更好地解决软件问题,对软件进行开发和维护,必须更加全面深入地了解软件特性。为此,从结构化软件到面向对象软件,研究人员从不同角度提出了各种度量方法对软件网络的结构特性进行研究。而如基于程序体积的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=|Mi-μM|+|Hi-μH|+|Ci-μC|+|Pi-μP|(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本文档来自技高网
...
一种基于软件复杂网络的四维软件演化度量分析方法

【技术保护点】
一种基于软件复杂网络的四维软件演化度量分析方法,其特征在于,实现步骤如下:步骤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=|Mi‑μM|+|Hi‑μH|+|Ci‑μC|+|Pi‑μP|    (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;Nx=(100×Φ-1(2-υ2)×σρ×μ)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对基准阈值进行优化。...

【技术特征摘要】
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随着版本演化的波动趋势图,从四个维度监测软件版本演...

【专利技术属性】
技术研发人员:艾骏杨雨微张少雄王菲王佳明
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1