[发明专利]一种基于聚类与标签传播的软件系统模块划分方法有效
申请号: | 202111069531.2 | 申请日: | 2021-09-13 |
公开(公告)号: | CN113869378B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 王俊峰;杨凯元;方智阳;宋紫华;李凡 | 申请(专利权)人: | 四川大学 |
主分类号: | G06F18/231 | 分类号: | G06F18/231;G06F8/41 |
代理公司: | 成都禾创知家知识产权代理有限公司 51284 | 代理人: | 刘凯 |
地址: | 610065 四川*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 标签 传播 软件 系统 模块 划分 方法 | ||
本发明公开了一种基于聚类与标签传播的软件系统模块划分方法,使用一个基于特征密度的离群值检测算法过滤离群值,并且使用标签传播将这些离群值分配到一个合适的集群,从而克服传统语义聚类过程中语义离群值存在的问题。与现有的基于语义或者结构信息的软件聚类技术不同,本发明将部分软件实体单独处理,首先过滤掉这些对于聚类过程有干扰的离群值然后用余下高质量的语义特征构造一个划分骨架,然后用结构信息去处理这些离群实体。本发明可以有效地增强一个软件模块划分质量,从而优化了软件维护操作并且可以对一个复杂软件系统有一个更细致的理解。
技术领域
本发明涉及软件维护过程中对于整个软件系统重新划分模块的方法,具体是一种基于聚类与标签传播的软件系统模块划分方法。
背景技术
在软件生命周期中,软件的模块化结构经常偏离原始设计。一个软件的代码结构反映了在实现软件功能性和非功能性需求时所采取的关键设计决策。在维护期间,一些程序修改操作(新需求迭代和修复Bug)通常由指定的开发人员执行。然而,这些开发人员很可能从设计文档中学习不同的设计概念。甚至有人为了编码更容易,从预设的代码基线中偏离。事实上,这些维护活动并非始终按照预期的设计进行。因此,软件模块化质量随着时间的推移一直下降,这使得对于软件基本组件的复用和对当前系统的修改相当困难。因此,一种可以确保软件系统可持续发展的软件模块化技术是很必要的。
软件聚类技术旨在将软件实体(例如文件、函数、类等)映射为其对应的模块。软件聚类的输入是从代码数据中提取可以表征整个软件系统的特征。获取特征后,各种聚类方法(例如,凝聚层次、基于搜索、基于图)用于对软件实体进行分组。一个具有良好模块化结构的软件系统划分结果是这些聚类技术的输出。这个划分结果用于帮助了解已发布的系统并优化维护活动。如果关注提取特征的方式,其依赖的代码数据有三个类别:结构信息、语义信息和两者的结合。结构信息有助于构建一个实体依赖图,从而可以把聚类问题转化为对一张图的划分过程。语义信息揭示了很多有关设计的细节概念。如何提取单词和应用哪些语义分析方法来获得语义特征是这些方法之间的主要区别。语义特征之间的距离揭示语义强度软件实体之间的关系,这个距离驱动了整个聚类过程。此外,这两种信息的组合也是比较流行的信息提取方式。当把软件聚类视为多目标优化问题,该混合特征提供了更多关于目标函数的选择。
特征的质量对于软件质量有很大的影响。在使用结构信息时,一些方法已经注意到一些存在干扰的软件实体,并指出有一个预处理步骤移除这些与众多模块有联系的公共接口文件或工具库文件是必要的。然而,语义方法的基础是使用相似概念词汇的实体应归入同一个集群,但是其在聚类过程中几乎没有考虑语义离群值。这些离群值的出现总是降低聚类结果的准确性。按照经验来说,这种离群值可能一开始就存在于组织结构中,或者随着软件的演化而出现。图1描述了一个软件的真实组织结构。目录结构是开发人员对于设计师概念理解的具体实施。所以,除了这些离群值,同一父文件夹中的实体倾向于保持相似的词汇信息。根据经验,语义离群值的来源可能来自以下五个位置:1)在一个组件内部的公共库函数和工具类;2)功能比较精确且代码行数微小的接口;3)组件之间的连接器;4)开发过程中编码不当;5)维护期间引入的新功能。这些离群值不呈现明显的语义特征,但是它们可能与同一模块中的其他实体在结构上有直接的联系。
发明内容
针对上述问题,本发明的目的在于提供一种基于聚类与标签传播的软件系统模块划分方法,能够克服语义聚类过程中离群值的存在,通过语义离群值过滤和标签传播来增强软件系统模块划分。技术方案如下:
一种基于聚类与标签传播的软件系统模块划分方法,包括以下步骤:
步骤1:从源代码中提取语义信息和结构信息:
所述语义信息指代码文件中的语句;通过基于主题聚类的信息提取方式,得到每个文件实体的主题概率分布,从而获得所有文件实体的向量表示;
所述结构信息代表文件之间的依赖关系;对软件代码进行静态分析发现文件之间依赖关系,构建文件依赖图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川大学,未经四川大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111069531.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种便利型骑行工具
- 下一篇:一种用于5G通讯的光缆交接箱