[发明专利]一种概率选择的软件模块聚类方法有效

专利信息
申请号: 201711100834.X 申请日: 2017-11-07
公开(公告)号: CN107766076B 公开(公告)日: 2021-02-09
发明(设计)人: 孙家泽;令蓓蕾 申请(专利权)人: 西安邮电大学
主分类号: G06F8/72 分类号: G06F8/72;G06K9/62
代理公司: 暂无信息 代理人: 暂无信息
地址: 710061 陕西*** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 概率 选择 软件 模块 方法
【权利要求书】:

1.一种概率选择的软件模块聚类方法,其特征主要包括以下步骤:

(1)在面向对象语言编写的软件系统中,以代码中的方法作为节点,方法之间的调用关系作为边,将软件系统表示为一个图,并以矩阵形式存储,若该系统中有n个方法,这些方法可以用集合F表示为F={f1,f2,...,fj,...,fn},j为1到n之间的任意一个整数值,fj表示该软件系统中的第j个方法,其中1≦j≦n,则该软件系统中方法之间的调用关系用一个n×n的二维矩阵B进行编码表示,若方法fi调用方法fj,其中1≤i≤n,1≤j≤n,则B的第i行第j列的元素值为1,即bij=1,若方法fi没有调用方法fj,其中1≤i≤n,1≤j≤n,则B的第i行第j列的元素值为0,即bij=0,按照上述方法,软件系统的方法调用关系编码表示为:

(2)假设该软件系统需要被聚类形成m个模块,其中mn,则经过模块聚类之后的软件系统可以用集合C表示为C={c1,c2,...ci,...cm},i为1到m之间的任意一个整数值,ci表示软件系统经过模块聚类后的第i个模块,对该软件系统的模块聚类方案可以表示为一个n维向量Cluster,其中ai表示向量中的元素,0≤ai≤m且ai为整数,若方法fi属于第j个类,其中1≤i≤n,1≤j≤m,则Cluster中的第i个元素的值为j,即ai=j,若ai=0,则fi还不属于任何一个聚类,因此软件系统的模块聚类结果可以用向量表示为:

Cluster={a1 a2 a3···an}

初始化的聚类结果向量表示为Cluster0,合并操作迭代到第t步时的聚类结果向量表示为Clustert,t为合并操作阶段的迭代步数,其中t≥0;

(3)设定概率选择的软件模块聚类算法的参数,所述的参数包括合并操作中的迭代次数r1,动态调整操作中的迭代次数r2

(4)对模块聚类的结果进行初始化,使聚类结果向量Cluster中每一维的值ai=0,1≤i≤n,即Cluster0={0,0,.......,0},初始化最优聚类结果向量Cluster*={0,0,.......,0},使聚类形成的模块数为0,即int clus=0,初始化聚类结果的最优MQ值为gbestMQ=0,令局部合并操作的迭代次数t=1,开始进行局部合并操作;

(5)进行局部合并操作

将每个方法fi的直接调用方法保存在列表listi中,其中1≤i≤n,将列表listi按照长度进行升序排序,形成一个有序的列表序列list1,list2,.......listi,.......listn,对应于一个有序的方法序列f1,f2....fi....fn,其中1≤i≤n,

对每个方法:

根据上一步的聚类结果Clustert-1,计算SCi是列表listi中结点的聚类结果序列,0≤j≤l,l≤m,计算每个聚类在SCi中的方法数目计算方法fi选择聚类的概率值以概率决定方法fi是否属于聚类如果否则,ai=++clus,更新聚类向量Clustert的值;

(6)计算当前聚类方案Cluster的MQ值:

假设第i个模块ci中的方法个数用Ni表示,其中1≤i≤m,模块ci与模块cj之间方法的调用次数通过方法调用矩阵B计算,并用Ei,j表示:

模块ci内部方法之间的调用次数用Mi表示:

软件系统进行模块划分后,第i个模块ci和第j个模块cj之间的耦合性用εi,j表示:

第i个模块ci的内聚性由μi表示:

高内聚、低耦合是评价软件模块划分优劣的标准,使用软件模块质量将模块内部的内聚性和模块之间的耦合性结合起来综合评价软件模块划分的优劣,软件模块质量即Modularization Quality,简称MQ,当前合并操作进行到第t步时的软件模块聚类方案的MQ值用MQt进行评估表示,

其中,m表示将软件系统划分成m个模块,在优化过程中,软件系统耦合性尽可能减小,内聚性尽可能增大,即MQ的值不断增大;

(7)将当前该步骤计算出的MQ值与全局最优的gbestMQ进行比较,若MQ大于gbestMQ,使gbestMQ=MQ,使全局最优聚类结果为当前聚类结果Cluster*=Clustert,t=t+1;

(8)若t<r1,则重复上述(5)-(8)步,若t≥r1,则重复下列(9)-(13)步;

(9)令动态调整操作的迭代次数为p=1,其中p≥0,动态调整操作的聚类结果表示为Clusterp,根据上述局部合并操作得到的初步结果,使用动态调整操作进行聚类结果的动态优化;

(10)根据局部合并操作的结果Cluster得到聚类结果集合C={C1,C2,.......,Cm},1≤Ci≤m,对每一个方法计算选择各个聚类的概率值:

计算方法fi与聚类Cj之间的调用次数Ni,j,1≤i≤n,1≤j≤m,计算方法fi选择每个聚类Cj的概率值p'i,j,生成一个0到1之间的随机数,确定方法fi是否需要改变当前聚类,更新聚类向量Clusterp的值;

(11)利用步骤(6)的方法计算当前聚类方案Cluster的MQ值;

(12)将当前该步骤计算出的MQ值与全局最优的gbestMQ进行比较,若MQ大于gbestMQ,使gbestMQ=MQ,使全局最优聚类结果为当前聚类结果Cluster*=Clusterp,p=p+1;

(13)若p<r2,则重复上述(10)-(12)步,若p≥r2,则结束整个步骤,完成整个软件模块聚类。

2.根据权利要求1所述的一种概率选择的软件模块聚类方法,其特征在于:该方法应用于面向对象语言编写的软件系统模块聚类中,能够有效的减少计算量。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安邮电大学,未经西安邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201711100834.X/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top