一种基于知识图谱的软件UML类图相似度计算方法
2025-03-15 本站作者 【 字体:大 中 小 】
(19)国家知识产权局
(12)发明专利申请
(10)申请公布号
(43)申请公布日
(21)申请号202310126886.3
(22)申请日2023.02.16
(71)申请人南京航空航天大学
地址210000江苏省南京市江宁区将军大
道29号南京航空航天大学
(72)发明人尤世伟严丽
(51)Int.Cl.
G06F16/901(2019.01)
G06F16/903(2019.01)
G06F16/36(2019.01)
G06F8/36(2018.01)
(54)发明名称
一种基于知识图谱的软件UML类图相似度计
算方法
(57)摘要
本发明公开了一种基于知识图谱的软件UML
类图相似度计算方法。本发明被应用到了软件需
求分析阶段当中,主要解决UML类图重用的问题。
系统首先将已经完成的软件UML类图转化为知识
图谱的表示形式,并为每个转换后的知识图谱分
别创建节点和路径索引。对于当前的软件项目,
通过需求创建系统的类图,并构建相应的知识图
谱表示,并将该图中的每一条路径与待重用的类
图的知识图谱表示的路径进行相似度计算,通过
路径相似度计算得到图之间的相似度。将所有待
重用的类图与当前项目类图进行计算,相似度最
高的作为候选类图进行重用。本发明的目的是通
过利用已有的软件开发过程中产生的UML简化当
前项目开发过程中的建模,从而减少软件开发的
成本,提高效率。
权利要求书2页说明书7页附图3页
CN116204685A
2023.06.02
1.一种基于知识图谱的软件UML类图相似度计算方法,其主要特征包括以下步骤:
(1)提出了将UML中的类图转换为知识图谱形式的规则;
(2)提出了知识图谱上的节点索引和路径索引两种数据结构;
(3)提出了节点相似度矩阵的概念,用于计算节点之间的相似度并寻找匹配节点;
(4)提出了路径相似度计算方法,并通过路径相似度来计算图之间相似度的方法。
2.根据权利要求1所述的基于知识图谱的软件UML类图相似度计算方法,其特征在于:
所述步骤(1)中提出的类图转换成为知识图谱的数据格式,分为以下5个步骤:
(2.1)通过DOM4J解析XMI格式的文档,得到类图中的所有信息,并采用jena构建知识图
谱。
(2.2)对于类图中的每个类,在知识图谱中为其构建一个节点,节点标签为类的名称。
(2.3)对于类的属性,在知识图谱中为其构建一个节点,节点标签为属性名称,并构建
一条从该属性所属的类节点指向该属性节点的边,边上的标签为“属性”;
(2.4)对于类的方法,在知识图谱中为其构建一个节点,节点标签为方法名称,并构建
一条从该方法所属的类节点指向该方法节点的边,边上的标签为“方法”;
(2.5)对于类图中两个类之间的关系,在知识图谱中的两个类节点之间构建一条有向
边,边上的标签为两个类之间的关系名称。
3.根据权利要求1所述的基于知识图谱的软件UML类图相似度计算方法,其特征在于:
所述步骤(2)中提出的两种索引的构建方式,分为以下4个步骤:
(3.1)对于知识图谱中的每一个类节点,为其创建一个索引节点,索引节点包含该类节
点的属性和方法信息,出度和入度信息以及相邻节点信息。
(3.2)对于入度为0的类节点,将其看作起始节点;对于出度为0的节点,将其看作结束
节点,一条路径可以看作从起始节点到结束节点的节点与边的交替序列。
(3.3)通过深度优先遍历的方法遍历整个知识图谱,通过(3.2)的方法找到所有的不同
的路径,为每一条路径分配一个唯一的路径编号,创建路径索引。
(3.4)对于路径索引中的每一条路径,更新(3.1)中构建的节点索引。在路径上的节点
所在的节点索引中添加该路径的路径编号,从而可以通过该节点的节点索引快速确定该节
点的所在路径。
4.根据权利要求1所述的基于知识图谱的软件UML类图相似度计算方法,其特征在于:
所述步骤(3)中提出的通过节点相似度矩阵寻找匹配节点的方法,分为以下3个步骤:
(4.1)对于两个节点之间的相似度,计算类名的相似度、每个属性的相似度以及每个操
作的相似度,将这些相似度加权求合作为两个节点之间的相似度。相似度计算采用同义词
词林的方法。
(4.2)对于输入图中的每一个类节点,与每个知识图谱的节点索引中的节点索引计算
相似度,相似度结果保存在一个二维矩阵中,称为相似度矩阵。
(4.3)采用贪心算法在(4.2)中构建的相似度矩阵中寻找节点的最佳匹配节点。找到相
似度最大的匹配节点与之匹配,该匹配节点无法再参与后续的匹配过程。从剩下的数据中
再找到具有最大相似度的节点进行匹配,重复直到所有节点有对应的匹配。
5.根据权利要求1所述的基于知识图谱的软件UML类图相似度计算方法,其特征在于:
所述步骤(4)中提出的路径相似度与图相似度计算方法,分为以下5个步骤:
权利要求书
1/2页
CN116204685A
(5.1)通过(4.3)中的结果找到输入路径起始节点的匹配节点,然后通过(3.1)中的节
点索引确定可能匹配的路径编号,再通过(3.3)中构建的路径索引找到对应的路径。
(5.2)通过(4.2)中的相似度矩阵构建路径相似度矩阵,找到路径中每个节点的匹配节
点与相似度分数。
(5.3)通过(5.2)中节点的匹配结果来匹配边。判断两个匹配节点之间是一条边还是一
条路径。若是路径,则不匹配;若是边,判断与输入路径中两个节点之间的边上的标签是否
一致。
(5.4)为节点相似度和边的相似度赋予不同的权重,进行加权求和计算两条路径的相
似度。
(5.5)对于(5.1)中所有的路径进行相似度计算,每条路径根据路径中包含的节点数和
边的数量之和占所有路径节点数量和边的数量之和的比例分配权重,所有路径加权求和得
到两个图之间的相似度。
权利要求书
2/2页
CN116204685A
一种基于知识图谱的软件UML类图相似度计算方法
技术领域
[0001]
本发明公开了一种基于知识图谱的软件UML类图相似度计算方法。利用知识图谱
在语义上更直观的表达方式,将UML类图转换成为知识图谱的表示形式进行相似度计算,从
语义和结构两个方面入手,准确快速的找到最佳的候选类图以供重用。本方法属于软件工
程领域,是一种实现软件UML图重用的全新方法。
背景技术
[0002]
软件开发生命周期是构建或维护软件系统的过程,其中分析,设计和开发是最重
要的三个阶段,在这三个阶段中会产生大量软件开发的工件(例如各种需求和设计文档,模
型等)和代码。在不同的软件系统开发阶段,统一建模语言(UML)都是一个重要组成部分。实
际上,UML已成为软件系统建模的事实标准规范,大量的内容通过构建模型进行表示,成为
了软件开发过程中必不可少的结构基础。重用UML可以利用已经开发完成的软件的UML来帮
助构建模型而不必从头开始。重用不仅可以加速软件开发的过程,也可以减少使用的成本
并降低软件开发的风险。
[0003]
UML类模型重用有四个阶段:表示、检索、复用和合并。首先需要提出新软件组件的
基本模型,即查询模型。然后从模型的存储库中检索一个或多个与查询模型最为相似的模
型。通过对检索到的组件进行修改即可得到适配新开发软件的模型。最后,新的模型被添加
到存储库中以供将来重用。在这个过程中,模型的检索是最关键的阶段,只有准确计算查询
模型与存储库中的模型元素之间的相似性和差异性,才能精确的匹配模型,进而更好的管
理和重用模型。
[0004]
在面向对象方法中,类图是分析和设计阶段的核心,在此阶段生成的类图可以通
过建模对象和对象之间的关系清楚地显示系统的静态结构。因此类图的重用非常有意义。
现有的UML重用的方法大致可以分为四种:信息检索法、案例推理法、基于本体的方法和基
于结构的方法。这些方法的核心都是通过计算两个模型之间的相似度来实现类图的重用,
但是也存在着一定的不足之处。一个类图包括了语义和结构两方面的信息,因此在计算两
个类图相似度上需要考虑这两个方面。对于语义相似度,几乎所有的研究都是针对UML图中
的词汇信息完成语义相似度计算,词汇信息主要包括类名,类的所有属性以及类的操作。其
中类的属性又可以包括数据类型,访问权限修饰符等,操作又可以包含返回值类型,访问权
限修饰符等。这些信息被综合考虑并对每一项分配不同的权重用于语义相似度的计算。而
结构相似度主要是用类节点之间的关系来衡量。现有的一些研究只是针对语义或者结构来
进行相似度计算,这显然是不够全面的。另外在一些同时考虑语义和结构相似度的研究中,
往往是将语义和结构两部分分开计算的,并且采用较为复杂的算法来完成,在执行效率和
准确率上面都有所欠缺。
[0005]
受到知识图谱的启发,我们将UML类图转换成知识图谱的表示形式,即RDF格式,来
计算UML的相似度。UML和RDF都是表示数据的一种形式,而RDF在语义表示方面有着更明显
的优势。针对RDF图,本方法采用基于路径的方式,将图分解成多条不同的路径,通过路径之
说明书
1/7 页
CN 116204685 A
间的相似度来计算图之间的相似度。为了加快计算速度,还提出了节点索引和路径索引两
个数据结构来加快整个过程。本方法不仅包含了语义和结构两种信息,还有着较高的检索
效率,是一种新的UML类图重用的方法。
发明内容
[0006]
[发明目的]:为了解决软件工程领域UML类图的重用问题,本发明提出了一种基于
知识图谱的软件UML类图相似度计算方法,解决传统方法对信息利用不够全面、实现过程较
为复杂的问题。
[0007]
[技术方案]:本发明中采用的技术方案主要包括以下内容:
[0008]
1)将存储库中的类图转化为知识图谱的表示形式
[0009]
1.解析存储库中的类图,得到类图中的类,属性,方法和类之间的关系。
[0010]
2.对类图中的每个类,将其转化为RDF图种的一个节点,称为类节点,节点标签为
类的名称。
[0011]
3.对于一个类中的所有属性,将其转换成RDF图中的节点,节点的标签是属性的名
称。
[0012]
同时创建一条从类节点指向该属性节点的一条有向边,边上的标签为“属性”。
[0013]
4.对于一个类中的所有操作,将其转换成RDF图中的节点,节点的标签是操作的名
称。
[0014]
同时创建一条从类节点指向该操作节点的一条有向边,边上的标签为“操作”。
[0015]
5.对于两个类节点,按照类图中两个类之间的关系建立一条有向边,边上的标签
为类之间的关系名称。
[0016]
6.将转换后的知识图谱结果存储在磁盘中。
[0017]
2)为每个存储库中的构建的知识图谱创建索引
[0018]
1 .遍历知识图谱,为每个类节点创建一个索引节点,索引节点中包含了与这个类
节点有属性边或者操作边的节点信息、该节点的出度和入度、该节点的相邻类节点名称。
[0019]
2.每个入度为0的节点称为起始节点,每个出度为O的节点称为结束节点,通过节
点索引找到所有的起始节点和结束节点。
[0020]
3.以起始节点开始,到结束节点结束,通过深度优先遍历找到知识图谱中的所有
路径,为每个路径指定唯一的编号,构建路径索引。
[0021]
4.对于每一条路径上的节点,将该节点所在的路径编号信息加入到节点索引中。
[0022]
3)计算输入类图与存储库中的类图之间的相似度
[0023]
1.按照1)中的做法将输入类图转化为知识图谱的形式。
[0024]
2.计算每个类节点的出度和入度信息,找到开始和结束节点并生成路径,称为查
询路径。
[0025]
3.通过构建节点相似度矩阵来进行节点相似度计算,找到每个节点的匹配节点。
[0026]
4.对于每条查询路径,找到其起始节点的匹配节点,通过节点索引找到匹配节点
的所在路径编号,通过路径编号在路径索引中找到对应的匹配路径,将该查询路径与所有
的匹配路径进行相似度计算,得到该条查询路径的最大相似度。
[0027]
5.对于每一条查询路径,通过步骤2‑4计算得到相似度分数。
说明书
2/7 页
CN 116204685 A
[0028]
6.将输入类图的所有查询路径的相似度进行综合计算,得到输入类图和存储库中
类图之间的相似度。
[0029]
7.对于存储库中的每一个类图,重复步骤2‑6得到输入类图与存储库中每个类图
之间的相似度分数,将其按照从高到低进行排序,得分最高的作为候选类图以供重用。
[0030]
[有益效果]:本发明创造性的将UML中的类图与知识图谱相结合,提出了一种全新
的类图相似度计算方法。通过知识图谱表示的类图来进行类图之间的相似度计算,不仅结
合了类图的语义和结构信息,同时采用构建索引的方式加快整个计算过程,实现了软件开
发过程中的类图重用。为了验证发明的有效性,我们通过实验将结果与专家的结果进行对
比,表明了我们的方法有较高的准确率。
附图说明
[0031]
图1为本发明所构建系统的整体架构图,图2为一个类图实例,图3为转化成知识图
谱后的结果,图4为相似度矩阵,图5和图6为本方法的结果与人类专家的结果对比。
具体实施方式
[0032]
为了使本领域技术人员更好地理解本发明中的技术问题、技术方案和技术效果,
下面结合附图和文档对本发明作进一步详细说明。
[0033]
本发明的总体流程图如图1所示,可以分为两块内容。一部分是对于存储库中的类
图进行处理,另一部分内容是进行图的相似度计算。首先对于存储库中的类图进行处理,为
每个类图构建知识图谱的表示形式。图2展示了一个简单的类图,图3展示了转换成知识图
谱的表示形式。为了提高后续相似度计算的效率,本方法为每个知识图谱构建了两个索引,
称为节点索引和路径索引。节点索引中包括了知识图谱中与类节点相关的属性节点和操作
节点信息、类节点的出度和入度信息,该类节点所在的路径编号列表。然后通过类节点的出
度和入度信息找到图中的所有开始节点和结束节点,从开始节点进行深度优先遍历,直到
结束节点结束,找到图中所有的路径,为每个路径进行唯一的编号,构建路径索引。对于作
为输入的类图,按照同样的方式将其转换为知识图谱的形式,并找到所有的路径,称为查询
路径。将查询路径与路径索引中的路径进行匹配,将相似度最大的值作为该条查询路径的
相似度分数。为了避免大量的无效计算,本方法首先将查询路径的起始节点与节点索引中
的节点进行相似度计算,找到起始节点的匹配节点,通过匹配节点找到该节点的所在路径
编号,然后将查询路径与这些路径进行相似度计算。在计算的过程中,本方法采用节点优先
的原则,提出了节点相似度矩阵,如图4所示,找到查询路径中每一个节点的对应匹配节点。
然后通过相邻节点之间的边判断这两条边是否匹配,最终综合节点和边之间的相似度分数
得到两个路径之间的相似度。然后计算每一条查询路径的相似度,将这些查询路径的相似
度按照节点和边的数量之和的占比来计算两个图之间的相似度分数。对于存储库中的每一
个图,与输入的图进行相似度计算,将相似度最高的图作为候选类图输出。
[0034]
1.将类图转换成知识图谱的表示形式
[0035]
本发明是用知识图谱的格式来表示类图。一般来说,UML模型采用XMI格式进行存
储,首先需要解析XMI文件,得到类图的构成元素,然后将其转换成为知识图谱的表示形式。
以下为该过程的转换算法:
说明书
3/7 页
CN 116204685 A
[0036]
[0037]
其中输入的是XMI格式的类图,输出的是RDF格式表示的类图。3‑5处理XMI格式的
文件,从根节点开始遍历。6一13为通过具体的标签名称获取类图中的信息,然后将这些信
息保存在变量中。14为创建的RDF模型,同时作为输出的结果。15‑18为将这些元素添加到模
型中,通过类的信息构建相应的知识图谱,并最终返回构建完成的RDF模型。
[0038]
2.计算图之间的相似度
[0039]
对于输入的类图,同样将其用知识图谱的形式进行表示,并分解成为不同的路径。
首先需要计算节点相似度。我们采用节点相似度矩阵的方式来计算每个节点的匹配节点。
以下为该过程的实现算法:
说明书
4/7 页
CN 116204685 A
[0040]
[0041]
其中输入是两个知识图谱中的节点,输出是两个节点之间的相似度。3是计算类名
之间的相似度。4‑5获取两个类节点的属性列表。6创建并初始化属性相似度分数。7‑17用于
计算属性的最大相似度,将每个节点的最大相似度相加,通过18计算每个操作的平均相似
度。操作的相似度与属性相似度计算同理。19‑27根据输入节点所包含的元素类型分情况返
回节点相似度结果。若类节点包括了属性和操作,则类名权重为0.6,属性和操作占比0.2。
若两者都不包括,则只返回类名的相似度。若包含其中一个,则类名称权重为0.7,属性或操
作占比0.3。
[0042]
下一步是计算路径相似度。两条路径的相似度需要同时考虑节点和边的信息。这
里我们采用了节点优先的方式来计算路径相似度。首先我们通过上面构建的节点相似度矩
阵来构建路径节点相似度矩阵,确定每个节点的最佳匹配节点。对于边匹配,我们通过节点
匹配的结果来计算边的相似度。查询路径中两个相邻的节点,在数据路径中一定有两个对
应的节点,判断这两条边或者路径是否相同。以下为该过程的实现算法:
说明书
5/7 页
CN 116204685 A
[0043]
[0044]
输入为两条路径,输出为两条路径之间的相似度。3‑6行分别是获取两条路径的节
点列表、输入路径的边列表以及相似度矩阵。7‑19计算节点和边的相似度。9是通过相似度
矩阵找到最匹配的节点下标,10找到该匹配节点。12‑17计算边的相似度,若边相同,则相似
度为1,若不同则相似度为0。20返回两条路径之间的相似度,这里节点相似度权重为0.6,边
相似度权重为0.4。
[0045]
一个图可以分解成多条不同的路径,通过上述的方式计算每一条路径的相似度,
然后将这些相似度按照包含元素的多少分配不同的权重,然后计算两个图之间的相似度。
以下为该算法的实现过程:
[0046]
[0047]
[0048]
输入为两个知识图谱表示的类图,输出两个图之间的相似度。3‑4分别是获取输入
说明书
6/7 页
CN 116204685 A
图的节点信息和路径信息。6‑7为获取路径的起始节点。8找到这个节点的匹配节点。9通过
节点索引找到匹配节点所在的路径编号。10‑14分别对这些路径进行相似度计算,将相似度
最大的值作为结果。15‑16更新相似度节点和边的信息。18‑20按照路径上所有元素占整个
图中元素的比例分配权重,将所有路径的权重相似度相加得到两个图之间的相似度。
[0049]
本发明在不同情况下的相似度计算结果与人类专家给出的结果如图5和图6所示。
从结果上来看,本方法与人类专家给出的结果十分接近,说明我们的方法在不同情况下有
着不错的表现,可以适用于不同大小的类图并有着较高的准确率。
说明书
7/7 页
10
CN 116204685 A
10
图1
图2
说明书附图
1/3 页
11
CN 116204685 A
11
图3
图4
图5
说明书附图
2/3 页
12
CN 116204685 A
12
图6
说明书附图
3/3 页
13
CN 116204685 A
13

猜你喜欢

婆婆用了30多年的腌糖蒜秘方,酸甜可口,方法特简单


小意达的花儿读后感


惊诧!打了这么久球听说这些羽毛球知识你也不知道?


PK更上一层楼 大话2免费版跨服夺岛战打响


服务器的配置与管理,服务器配置与管理知识总结报告


聚力磨技能,师幼共提升 宜宾江安橙乡幼儿园开展教师讲课赛


服务器配置与管理知识总结报告,深入解析服务器配置与管理,知识总结与实战技巧


她的长寿花一开开半年,秘诀究竟是什么


霸气诗意的功夫茶茶道的术语


食品安全系万家,中检湖南公司带您一起了解食品安全小知识
