首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于软件依赖关系提取的多层架构识别方法_东南大学_202110587630.3 

申请/专利权人:东南大学

申请日:2021-05-27

公开(公告)日:2024-05-17

公开(公告)号:CN113467786B

主分类号:G06F8/53

分类号:G06F8/53;G06F8/70

优先权:

专利状态码:有效-授权

法律状态:2024.05.17#授权;2021.10.26#实质审查的生效;2021.10.01#公开

摘要:本发明公开了一种基于软件依赖关系提取过程的多层架构的识别方法,该识别方法地具体步骤如下:步骤1:目标系统的输入预处理,统一输入形式,剔除无关实体,绑定相关实体,提高源码扫描效率;步骤2,提取源码中隐含的依赖信息,并且计算相关的参考值作为划分的依据,步骤3:根据依赖关系进行初步划分和使用聚类算法对中间层的进一步划分。本方法对于软件层次的划分具有较高的准确度,可用于提高框架反演中架构识别过程的效率,并且辅助进行代码重构。

主权项:1.一种基于软件依赖关系提取过程的多层架构的识别方法,其特征在于,所述方法包括以下步骤:步骤1:目标系统源码预处理,步骤2:目标系统依赖信息提取,步骤3:目标系统层次划分;其中,所述步骤1:目标系统源码预处理,具体如下:11对非源码形式的目标系统的编译产物进行反编译,将输入形式统一为静态源码;12剔除系统中没有内容或被注释的类;13将系统中存在接口实现关系或继承关系的多个类进行绑定,参与层次划分时可将其作为一个实体看待,缩小识别对象的规模;其中,步骤2:目标系统依赖信息提取,具体如下:21提取预处理后每个类文件中的标识符信息,包括类名、属性名、方法名、方法形参名和注解名,构成一个标识符信息表,每个类的标识符信息是其中的一条记录;22扫描标识符列表,提取出可用来初步划分层次的依赖信息,每条依赖信息包括:类名、该类所在的路径、类所依赖的其他自定义类名,形成依赖信息表;23根据依赖信息表可以构建出若干条目标系统中的依赖路径,将源码中不在任何一条路径上的类剔除,可认为其不是分层架构的组成部分;其中,步骤3:目标系统层次划分,具体如下,31根据依赖信息表,计算出每个实体的扇入值FanIn和扇出值FanOut,其中FanIn是系统中依赖当前结点的结点个数,FanOut是当前结点所依赖的系统中其他结点的个数;32以扇入扇出值为依据,按照规则进行目标系统的初步划分,三条规则如下所列:满足FanIn=0且FanOut0的结点划分到顶层;满足FanIn≠0且FanOut≠0的结点划分到中间层;满足FanIn0且FanOut=0的结点划分到底层;33对初步划分结果中可能存在的“跨层依赖”现象,定义消除规则,然后根据规则对相关结点进行调整,规则如下所示:若某顶层结点跨层依赖底层结点的同时还保持对中间层某结点的依赖,并且该底层结点没有被中间层依赖,就将底层结点上移到中间层;若某顶层结点跨层依赖底层结点的同时不依赖中间层结点,并且该底层结点被中间层依赖,就将顶层结点下移到中间层;若某顶层结点跨层依赖底层结点的同时还依赖中间层结点,被该顶层结点依赖的底层结点同时也被中间层结点依赖,就比较顶层结点到中间层的扇出值和底层结点到中间层结点的扇入值,值小的一方移动到中间层;若某顶层结点跨层依赖底层结点,同时顶层、底层结点同中间层都没有依赖关系,则顶层结点或底层结点移动到中间层都可以;34对中间层的结点采用聚类算法进行进一步划分,聚类依据为实体结构相似度,其中使用结构相似度的依据是同层次实体实现类似的功能并且对相邻的需要使用其功能的层次提供统一的接口,这里考察其代码结构中的注解、继承的父类和实现的接口具有的相似性;35结合中间层聚类结果可得目标系统整体的分层状态,可以绘制分层架构图,图中展现了所划分的层次及其包含的实体,各层实体之间的依赖路径信息。

全文数据:

权利要求:

百度查询: 东南大学 一种基于软件依赖关系提取的多层架构识别方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。