[发明专利]一种基于层次聚类组合的软件架构恢复方法在审
| 申请号: | 202111501663.8 | 申请日: | 2021-12-09 |
| 公开(公告)号: | CN114510257A | 公开(公告)日: | 2022-05-17 |
| 发明(设计)人: | 夏虹;陈彦萍;张永康;田振洲;王忠民 | 申请(专利权)人: | 西安邮电大学 |
| 主分类号: | G06F8/70 | 分类号: | G06F8/70;G06K9/62 |
| 代理公司: | 西安嘉思特知识产权代理事务所(普通合伙) 61230 | 代理人: | 王萌 |
| 地址: | 710061 陕西*** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 层次 组合 软件 架构 恢复 方法 | ||
1.一种基于层次聚类组合的软件架构恢复方法,其特征在于,包括:
步骤1:获取软件源代码中的函数实体;
步骤2:构建所述函数实体之间的关系;
其中,所述函数实体关系包括:实体引用的全局变量、局部变量、用户定义类型、数据文件,实体间的互相调用、系统调用,以及实体引用的宏;
步骤3:使用五种相似度计算方法分别计算函数实体间的相似度,得到每种相似度计算算法计算出的相似度;
步骤4:基于每种相似度计算算法计算出的相似度,使用CL、WCA、LIMBO三种层次聚类算法分别对函数实体进行聚类,得到根据每种相似度进行聚类的聚类结果;
步骤5:将每种聚类结果用描述矩阵的形式表示;
步骤6:使用主成分分析的方法将表示每种聚类结果的描述矩阵进行组合,得到多维矩阵;
步骤7:从所述多维矩阵中恢复出最终层次结构,以实现软件结构的恢复。
2.根据权利要求1所述的基于层次聚类组合的软件架构恢复方法,其特征在于,所述步骤1包括:
通过软件代码处理工具,从软件源代码中反向获取实体信息。
3.根据权利要求1所述的基于层次聚类组合的软件架构恢复方法,其特征在于,所述步骤2包括:
步骤2-1:获取每个函数实体的特征向量;
其中,每个函数实体用码字表示,当码字为1时表示码字对应的位置具有特征,当码字为0时表示没有特征;将存在特征进组合,得到每个函数实体的特征向量;
步骤2-2:将每个函数实体的特征向量,构建函数实体与函数实体之间的关系。
4.根据权利要求1所述的基于层次聚类组合的软件架构恢复方法,其特征在于,所述步骤3包括:
步骤3-1:使用Jaccard方法计算表达式,计算函数实体之间的第一二元相似度;
所述Jaccard方法计算表达式表示为:
步骤3-2:使用JaccardNM方法表达式,计算函数实体之间的第二二元相似度;
所述JaccardNM方法表达式表示为:
步骤3-3:使用Jaccam方法表达式,计算函数实体之间的第三二元相似度;
所述Jaccam方法表达式表示为:
其中,Ei,Ej表示计算的两个实体,a表示两个实体共有的特征数;b表示Ei中存在但Ej中不存在的特征数;c表示Ej中存在但Ei中不存在的特征数;d表示两个实体中都缺少的特征数;
步骤3-4:使用Unbiased Ellenberg measure方法表达式,计算函数实体之间的第四非二元相似度;
所述Unbiased Ellenberg measure方法表达式表示为:
其中,Ma表示两个函数实体中存在的特征的总和;
步骤3-5:使用信息丢失度表达式,计算函数实体间的第五相似度;
所述信息丢失度表达式表示为:
δI(Ei,Ej)=p(Ei)+p(Ej)*Djs(fi,fj)
其中,Dkl[fi||fj]是假设分布为fj的编码中冗余的度量,当分布为fi时,Djs是fi和fj与fij的平均Dkl距离。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安邮电大学,未经西安邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111501663.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:液压支架监测装置
- 下一篇:一种账户核算方法、装置及电子设备





