【技术实现步骤摘要】
一种无监督的软件复杂度评估方法
本专利技术涉及软件复杂度评估技术,特别涉及无监督的软件复杂度评估方法。
技术介绍
软件复杂度度量作为软件工程的重要组成部分,可为软件的控制和降解、软件测试的资源分配和高质量软件的研制提供支撑。软件复杂性度量作为软件度量的重要分支,可以有效评估软件产品的复杂性。通过复杂性度量对软件复杂性进行预警,可以帮助人们客观地分析和评估软件生命周期不同阶段的复杂度情况,并采取一定的复杂度控制和降解措施,来降低软件缺陷率,提高软件质量。软件复杂度度量元数据是一种客观存在的集合,如何针对客观数据,制定无监督的综合评估模型,成为现阶段软件工程领域的难题。当前软件复杂度相关研究多集中在软件复杂度度量体系,对于软件复杂度的评估研究还比较少,且已有的关于软件复杂度评估大多依赖少量度量元或者人工设置各度量元的超参数权重,工作量大且准确度难以保证。
技术实现思路
本专利技术的目的在于提供一种无监督的软件复杂度评估方法,用于解决上述现有技术的问题。本专利技术一种无监督的软件复杂度评估方法,其中,包括:步骤一、针对软件程序复杂度的度量,总结提炼常用的程序复杂度度量元;步骤二、基于高斯混合模型的度量元概率归一化,包括:首先,针对数据中的各个度量元的频率分布,使用无监督的最大期望算法进行高斯混合建模,拟合该度量元的概率密度函数,基于该度量元的概率密度函数计算其累积分布函数,使用累积分布函数的值作为该度量元的归一化处理后的数值;步骤三、评估基于AOV网络的软件复杂度,包括:在基于高斯混合模 ...
【技术保护点】
1.一种无监督的软件复杂度评估方法,其特征在于,包括:/n步骤一、针对软件程序复杂度的度量,总结提炼常用的程序复杂度度量元;/n步骤二、基于高斯混合模型的度量元概率归一化,包括:/n首先,针对数据中的各个度量元的频率分布,使用无监督的最大期望算法进行高斯混合建模,拟合该度量元的概率密度函数,基于该度量元的概率密度函数计算其累积分布函数,使用累积分布函数的值作为该度量元的归一化处理后的数值;/n步骤三、评估基于AOV网络的软件复杂度,包括:/n在基于高斯混合模型对度量元数据进行概率归一化的基础上,借助AOV网络,基于度量元在软件复杂度评估中的重要程度来赋予不同的权重,通过线性组合来计算软件的整体复杂度,对软件复杂度进行评估。/n
【技术特征摘要】
1.一种无监督的软件复杂度评估方法,其特征在于,包括:
步骤一、针对软件程序复杂度的度量,总结提炼常用的程序复杂度度量元;
步骤二、基于高斯混合模型的度量元概率归一化,包括:
首先,针对数据中的各个度量元的频率分布,使用无监督的最大期望算法进行高斯混合建模,拟合该度量元的概率密度函数,基于该度量元的概率密度函数计算其累积分布函数,使用累积分布函数的值作为该度量元的归一化处理后的数值;
步骤三、评估基于AOV网络的软件复杂度,包括:
在基于高斯混合模型对度量元数据进行概率归一化的基础上,借助AOV网络,基于度量元在软件复杂度评估中的重要程度来赋予不同的权重,通过线性组合来计算软件的整体复杂度,对软件复杂度进行评估。
2.如权利要求1所述的无监督的软件复杂度评估方法,其特征在于,基于度量元在软件复杂度评估中的重要程度来赋予不同的权重,包括:
通过皮尔逊相关系数度量两个变量间的线性相关性,其值在-1与1之间,首先,计算不同度量元间的皮尔逊相关系数,评估其相关关系的大小,得到度量元的皮尔逊相关系数矩阵P;然后,基于线性拟合方法得到不同度量元间线性相关关系的斜率大小,得到度量元的斜率矩阵K;继而,基于皮尔逊相关系数的大小与斜率的大小对斜率进行过滤处理,剔除不相关或者斜率值小于阈值的斜率,得到斜率矩阵T;进而,将斜率矩阵转化为一个有向有环图,度量元作为图中的节点,斜率矩阵中度量元间的斜率作为图中对应边的权重;接下来,通过最大生成树算法将有向有环图转换为AOV网;最后,基于AOV的权重计算每个度量元的影响域,根据度量元影响域的大小分配每个度量元的权重。
3.如权利要求2所述的无监督的软件复杂度评估方法,其特征在于,基于AOV网络对软件复杂度进行评估包括:
输入:归一化后的软件度量样本集为R={R1,R2,...,Rn},其中第i个软件度量样本是共m个度量元,是第i个样本的第j个度量元的归一化度量值,第i个度量元的数据集是j∈[1,m]且j∈N+,N+为正整数;用户设定的域值β和γ;
输出:样本各度量元权重集合W={W1,W2,...,Wp};
计算不同度量元间的皮尔逊相关系数矩阵P=Pm*m,pab为样本集R中第a个和第b个度量元的数据集Sa、Sb间的皮尔逊相关系数,计算方式见公式(5)所示:
(2)计算不同度量元间的斜率矩阵K=Km*m,kab为样本集R中第a个和第b个度量元的数据集Sa、Sb间使用线性拟合方法计算的斜率;
(3)斜率矩阵K的过滤处理:当两个度量元间的相关系数pab小于阈值β,或者斜率kab小于γ时,认为第a个和第b个度量元间不具备线性相关关系,置wab=0,得到权重矩阵T=Tm*m,计算方式见公式(6)所示:
(4)基于邻接矩阵T构造有向有环图G(N,E);其中N={n1,n2,n3,...,...
【专利技术属性】
技术研发人员:柯文俊,王坤龙,杨雨婷,陈旭,陈静,
申请(专利权)人:北京计算机技术及应用研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。