删除或更新信息,请邮件至freekaoyan#163.com(#换成@)

基于语义和结构的UML类图的检索

本站小编 Free考研考试/2020-03-23

袁中臣1,2, 马宗民1
1. 东北大学 软件学院,辽宁 沈阳 110169;
2. 沈阳工业大学 化工过程自动化学院,辽宁 辽阳 111003
收稿日期:2018-12-20
基金项目:国家自然科学基金资助项目(61370075, 61772269)。
作者简介:袁中臣(1978-), 男, 辽宁辽阳人, 东北大学博士研究生,沈阳工业大学讲师;
马宗民(1965-), 男, 山东金乡人, 东北大学教授, 博士生导师。

摘要:以软件重用为背景提出基于语义和结构的UML类图检索.构建了UML类图的重用模型,定义了存储UML类图的重用库结构.提出将本体的概念语义距离应用到UML类图的语义相似性度量和使用图表示UML类图的结构进行结构相似性度量.基于检索流程形式化检索需求,提出了UML类图的检索算法.基于提出的衡量标准,从语义、结构和混合三种检索类型对提出的算法进行了验证.实验结果表明,所提出的检索算法在检索质量和检索效率上要优于其他方法.
关键词:UML类图语义结构相似性度量检索
Retrieval of UML Class Diagrams Based on Semantics and Structure
YUAN Zhong-chen1,2, MA Zong-min1
1. School of Software, Northeastern University, Shenyang 110169, China;
2. School of Chemical Process Automation, Shenyang University of Technology, Liaoyang 111003, China
Corresponding author: YUAN Zhong-chen, E-mail: yuanzhongchen@163.com.

Abstract: The UML class diagram retrieval based on semantics and structure was proposed under the background of software reuse. The reuse model of UML class diagram was constructed and the reuse repository structure of UML class diagram was defined. The conceptual semantic distance of ontology was applied to the semantic similarity measure of UML class diagram and a graph was used to represent the structure of UML class diagram for the structural similarity measure. The retrieval requirements were formalized based on the retrieval procedure and the retrieval algorithm of UML class diagram was proposed. The proposed algorithm was validated from three retrieval types(semantics, structure and hybrids) according to the proposed criteria. The experimental results showed that the proposed algorithm is superior to other methods in terms of both retrieval quality and efficiency.
Key words: UML class diagramsemanticsstructuresimilarity measureretrieval
随着软件复杂性的日益增强,对于软件重用的需求在不断增加.重用的内容也不再仅限于代码,而是涉及到软件生命周期的各个阶段[1].实际上,软件开发过程中产生的任意产品都在重用范围之内,这种重用被视为软件工程师的知识和经验的重用.因为软件设计对接下来的开发阶段将产生重要的影响,所以软件设计的重用受到了关注.作为建模工具,UML类图被广泛地应用于设计阶段,已成为软件设计事实上的标准[2],所以UML类图的重用成为研究热点[3-4].
随着语义web的发展,大量的本体被开发.本体是共享概念的明确而详细的说明,概念通过特定的关系建立联系[5].本体分为通用本体和领域本体.通用本体覆盖了若干领域的概念知识,如WordNet;领域本体是由来自单个领域的概念构成的,如基因组学领域的基因本体(gene ontology,GO)等.本体为概念之间的相似性度量提供了途径.例如,在WordNet中提供了基于路径和信息共享两种方法来衡量概念之间的相似性[6].相似性度量被广泛应用于分类、聚类和检索等.在软件产品的重用过程中,检索是核心工作,检索是基于相似性.UML类图所呈现的信息包含语义和结构,类、属性和操作属于语义范畴;UML类图的结构通过类之间的关系来表达,类之间的关系包含不同的类型(关联、泛化、聚合、组合、依赖和实现).所以,UML类图的相似性度量既包含语义相似性也包括结构相似性.
现有的基于重用的类图检索可以归结为两种策略.第一种是基于语义的匹配[7],类图之间的相似性是通过语义相似性来衡量.其中,类图的关系被定义为向量R=[端点类1,关系类型,端点类2],关系的相似性通过向量R的差异或距离来度量.第二种是基于模型查询语言[8],解析类图元素并基于模型查询语言重写类图,并提出模式匹配方法.
第一种策略仅仅考虑了语义,而没有考虑结构.即使考虑了概念之间关系,本质上也是语义匹配,在仅考虑类图的结构而不考虑语义的检索要求时,这种策略不能很好地工作.实际上,结构对于一个UML类图是非常重要的.在使用UML模型化一个系统时,首要考虑的是系统的结构而不是单个类.第二种策略虽然考虑了结构,但元素匹配是基于关键字而不是基于语义,没有考虑检索结果的非精确性.最后,两种方法都没有对检索条件给出一种形式化的定义.实际上,检索需求经常是复杂的,通常不仅仅是一个简单的类或类图,这就需要一个检索条件的明确表达.同时,每个检索元素在检索条件中的权重应该被考虑,因为类图中的不同元素在模型化一个系统时的重要程度不同.
本文正是基于语义和结构两个方面实现对类图的检索,定义了语义相似性和结构相似性度量方法.基于检索流程,形式化地定义了检索表达,并提出了检索算法.实验验证了所提算法的有效性.
1 UML类图及其重用模型1.1 UML类图UML类图是由类和类之间的关系两部分构成.图 1是类图的一个样例,表示类“Professor”继承类“Teacher”.
图 1(Fig. 1)
图 1 UML类图样例Fig.1 A sample of UML class diagram

一系列工具能被用来编辑UML类图,如Rose和MyEclipse等.对象管理组织(object management group,OMG)为所有UML模型定义了文档类型定义(document type definition,DTD)标准[9],UML模型被描述为遵守DTD的基于XML元数据交换(XML-based metadata interchange,XMI)文档.
1.2 重用模型UML类图的重用模型被描述为一个过程,如图 2所示.这一过程包含4个阶段,分别是类图的检索、候选类图返回、候选类图调整并应用到新项目和新类图被抽取并加入到重用库.在这几个阶段中,检索是关键,决定着重用质量和效率.重用库存储大量的可重用类图,重用库的有效管理和组织对于提高检索效率也是非常重要的.重用库中的类图被分为“域”和“目录”两级,如图 3所示.
图 2(Fig. 2)
图 2 UML类图重用模型Fig.2 Reuse model of UML class diagrams

图 3(Fig. 3)
图 3 重用库结构Fig.3 Structure of reuse repository

建模不同领域项目的UML类图cdi被分类到不同的域,如D1, D2, …, Dn.在一个域内,类图又被划分为多个结构目录,如在D1中的C1, C2, …, Cm.结构相同或者相近的类图被分类到相同的目录.在每个域内定义一个特征概念集合,在每个目录中定义一个特征结构集合.特征概念和特征结构的选取是基于其所在域和目录的重用次数和出现频率.fc(Di)和fs(Cji)分别标记域Di的特征概念集合和域Di中结构目录Cj的特征结构集合.
2 相似性度量2.1 语义相似性现有的语义相似性能被归结为同一类,就是基于本体来计算两个概念的语义相似性.本文选择被广泛使用的基于本体路径语义距离来计算UML类图概念之间的语义相似性.在本文中,除了类,属性和方法也被认为在语义范畴内,所以类图之间的语义相似性为
式中:cd1和cd2是两个类图;类Ci来自类图cd1AiOi分别是类Ci的属性集合和操作集合;同理,类Cj来自类图cd2AjOj分别是类Cj的属性集合和操作集合;Ci被匹配到CjAi被匹配到Aj, Qi被匹配到Qj;SimC,SimA和SimO分别表示类相似性、属性相似性和操作相似性.在计算属性和操作相似性时,除了考虑概念语义还考虑到属性的类型和操作的返回值类型.类图之间的语义相似性实际上就是类图概念元素之间的相似性.这里仅计算平均相似性,|cdi|表示类图cdi中包含的类的数目;αβγ是权重因子,且α+β+γ=1.
2.2 结构相似性由于UML类图的半形式化,图和UML类图两种模型在结构上的相似性(类对应于顶点,关系对应于边),本文提出采用图来表示UML类图的结构,目的是进行结构相似性度量.UML类图中的类被转换成图的顶点,UML类图中的关联、泛化、聚合、组合、依赖和实现等关系被转换成边,并分别被标记为e1, e2, e3, e4, e5e6.这样类图之间的结构相似性就被转换成对应的两个图的相似性.两个图之间的结构相似性可以通过最大公共子图(maximum common subgraph,MCS)度量[10].公式为
其中:NMCS表示存在于MCS中的边的数目;|gi|是表示图gi中边的数目.
当然,这里求解最大公共子图是基于边,而不是顶点,并且边的匹配是基于上面所述的标记.求解最大公共子图的算法见算法1.
算法1 ??搜索图g1g2之间的最大公共子图
输入:图g1g2
输出:最大公共子图(MCS)
1.初始化状态空间S=NULL;
2. //在g1中与S相连的下一条边ek
while(nextEdge(g1, S, ek)) do
3. begin
4. //ek是否使得g1g2的公共子图尺寸增加
if(IsFeasible(g1, g2, S, ek)) then
5. begin //更新公共子图
6. S=S+ek; //更新状态
7. if(size(S)>z)then
8. z=size(S); //更新尺寸
9. end;
10. else //退回S的上一个状态
11. backState(S);
12. end;
13. return S;
算法执行了一个深度优先搜索.S是一个状态空间,用于存储图g1g2之间的公共子图.S的尺寸会随着更多边的加入而变大直至最后形成最大公共子图.
3 类图检索3.1 检索流程UML类图的检索过程描述如图 4所示.用户首先输入检索需求,用户的输入可以是单个类(属性和操作),也可以是类图结构.解析是从检索要求获取检索元素,任何基于SAX(simple API for XML)的工具能被用来解析XMI文档[11].检索需求经常是复杂的,包含着用户的多种意愿,所以将检索需求转换成一个形式化表述,作为检索算法的输入.检索算法是核心,这里提到的检索应该是非精确的,目的是发现最贴近检索需求的候选类图序列.
图 4(Fig. 4)
图 4 UML类图检索流程Fig.4 Retrieval procedure of UML class diagrams

3.2 检索表达在输入检索需求时,经常会有如下几种情况:
1) 希望几个检索元素在候选类图中同时出现.可以被表达为
2) 希望在候选类图中某些元素部分出现或者同时出现.可以被表述为
3) 希望有些检索元素在候选类图中不要出现.可以被表述为
所以,综合上述几种情况,检索需求能被形式化地描述如下:
其中:eiei′为检索条件中的概念元素,它是类Ci,也包含类的属性Aij或者操作Oijsisi为结构元素;e″p为不能出现在候选类图中的概念元素;s″q为不能出现的结构元素.
3.3 检索算法一般情况下,在类图的检索中,候选类图不一定完全满足检索需求.这里设定一个阈值σ,当检索元素被匹配到重用库中的类图所取得的相似性值大于σ时,重用库中的类图即被列为候选类图.因为不同的元素(概念和结构)在模型化一个系统时具有不同的重要程度,所以不同的检索元素在检索条件中被分别赋予权重,W=[w1, w2, …, wn].类图的检索算法被描述为算法2.
算法2 ??类图的检索算法
输入:检索表达UCD_QS,W和重用库L
输出:候选类图序列
1. //初始化目标类图所在域、目录和候选类图序列
2. //获取检索元素
classElements=getClass(UCD_QS); //概念元素
noClassElements=getNoClass(UCD_QS);
strucElements=getStructures(UCD_QS); //结构元素
noStrucElements=getNoStructures(UCD_QS);
3. //赋予权重
assignWeight(classElements, strucElements, W);
4. //候选类图所在的域
if(classElements!=NULL) then
5. for each Di in L do
6. begin
7. FCi=getFeatClass(Di); //获取特征概念
8. SimDi=SimCS(classElements,FCi); //域相似性
9. end;
10. SimDx=max(SimD);
11. d=Dx;
12. //候选类图所在的目录
if(strucElements!=NULL) then
13. for each Ci in d do
14. begin
15. FSi=getFeatStrucs(Ci); //获取特征结构
16. SimCi=SimSS(strucElements,FSi); //目录相似性
17. end;
18. SimCy=max(SimC);
19. c=Cy;
20. //计算类图相似性,并插入候选序列
for each cdk in c do
21. if(μ*SimCS(classElements, cdk)+(1-μ) *
SimSS(strucElements, cdk)>σ) then
22. insertCD(cdk, l);
23. //删除不期望包含元素的类图
for each ei from noClassElements and each si from noStrucElements do
24. for each cdq in l do
25. if(ei or si) in cdq then
26. deleteCD(cdq, l);
27. return l; //返回候选类图序列
在检索算法中,基于定义的特征概念和特征结构,通过相似性计算分别决定候选类图所在的域和目录,这样能过滤掉大量的类图,大大提高检索的效率.检索元素被匹配到已经确定目录内的每个目标类图并计算相似性,当相似性的值高于指定阈值σ,目标类图被插入候选序列.最后,从候选序列中删除不期望的元素所在类图.μ为相似性权重,在应用中可以根据检索需求进行调整.
4 实验使用Java语言实现了本文所提出的检索算法,并且在PC机(Win 10, Intel Core i7, RAM 8GB)上执行.实验中使用的类图来自3个领域,分别为教育、医疗和房地产,每个类图中类的数目在15~25之间.所有类图均来自公司已经开发的项目,每个领域的类图、目录、特征概念以及每个目录包含的特征结构数量如表 1所示.
表 1(Table 1)
表 1 重用库中 UML 类图Table 1 UML class diagrams in reuse repository
领域 类图 目录 特征概念 特征结构
教育 100 4 15 4, 5, 5, 4
医疗 100 5 18 4, 4, 4, 3, 3
房地产 100 4 16 5, 4, 3, 4


表 1 重用库中 UML 类图 Table 1 UML class diagrams in reuse repository

本文做三种检索类型(概念、结构和混合)操作,如表 2所示.每种检索类型操作基于不同领域元素被执行3次,检索条件的设定主要从检索元素数量和分布考虑.
表 2(Table 2)
表 2 检索条件设定Table 2 Retrieval conditions setting
检索类型 概念 结构
Q1 8(3) 0
Q2 0 5(2)
Q3 6(2) 3(1)
??注:括号中数字表示不允许出现在候选列表中的概念或结构的数量.


表 2 检索条件设定 Table 2 Retrieval conditions setting

提出的检索算法和其他方法(语义检索[6]和模型语言检索[8])进行比较,本文提出的检索方法被称为二级检索,主要从检索质量和检索效率两个方面进行比较.参数设置α=0.5, β=0.25, γ=0.25, σ=0.5.在三种检索方法中,相似性计算权重μ分别被设定为1.0,0和0.5.检索元素权重设定为平均权重.
衡量检索质量可以从查准率P、查全率R和二者调和平均值F三个指标来度量[12].这里设定A表示正确地出现在查询结果中候选类图的数量;B表示错误地出现在查询结果中候选类图的数量;C表示应该出现但没有出现在检索结果中的类图数量.PRF计算公式为
平均查准率P、查全率R和调和平均值F的对比分别如图 5图 6图 7所示.可以看出,三种检索方法查准率差别不大,如图 5所示.但查全率出现较大差别,特别是结构和混合检索,如图 6所示.综合来看,对于概念检索(Q1),三种检索方法呈现的结果差别不大;而对于结构检索(Q2),本文提出算法和模型语言检索得出的结果要明显优于语义检索;对于混合检索(Q3),本文提出的算法的检索结果要优于其他两种方法,如图 7所示.原因是本文的检索算法同时考虑了语义和结构,而其他两种方法存在片面性.
图 5(Fig. 5)
图 5 查准率比较Fig.5 Comparison of precision ratios

图 6(Fig. 6)
图 6 查全率比较Fig.6 Comparison of recalls

图 7(Fig. 7)
图 7 调和均值比较Fig.7 Comparison of harmonic means

检索效率是指执行检索的响应时间.三种检索方法分别在不同检索类型数据上执行检索所需的响应时间如图 8所示.
图 8(Fig. 8)
图 8 检索时间比较Fig.8 Comparison of retrieval time

可见,对于每种检索类型,本文算法的检索响应时间要少于其他两种方法.类图检索的响应时间主要取决检索元素和重用库中目标类图匹配的次数.本文提出的算法的匹配次数决定于重用库中域的数、候选类图所在域包含的结构目录数以及候选类图所在结构目录包含的类图数,所以匹配次数要远远少于其他两种方法.关于重用库中类图分类的这部分内容将会在接下来的工作中讨论.
所以,无论从检索质量还是从检索效率上,本文提出的算法都是可行的并且要优于其他两种方法.由于特征概念和特征结构的引入,算法对数据量越大的存储库检索表现越好.
5 结语本文基于软件重用从语义和结构两个方面提出对UML类图的检索.通过本体和图的引入,分别提出了类图之间语义相似性和结构相似性度量方法.基于检索流程,提出了类图的检索算法.实验结果表明,本文提出的算法在语义、结构和混合三种检索类型都获得较好的检索质量,特别是对结构和混合检索,与其他检索方法相比具有明显的优势.同时,本文提出的算法的检索效率也是可以接受的,并且优于其他两种方法.
参考文献
[1] Frakes W B, Kang K. Software reuse research:status and future[J]. IEEE Transactions on Software Engineering, 2005, 31(7): 529-536. DOI:10.1109/TSE.2005.85
[2] Medvidovic N, Rosenblum D S, Redmiles D F, et al. Modeling software architectures in the unified modeling language[J]. ACM Transactions on Software Engineering and Methodology(TOSEM), 2002, 11(1): 2-57. DOI:10.1145/504087.504088
[3] Adamu A, Zainon W M N W. A review of UML model retrieval approaches[J]. Indian Journal of Science and Technology, 2016, 9(46): 1-8.
[4] Salami H O, Ahmed M A. UML artifacts reuse:state of the art[J]. The International Journal of Soft Computing and Software Engineering(JSCSE), 2013, 3(3): 115-122.
[5] Antoniou G, Van Harmelen F.Web ontology language: OWL[M]//Handbook on ontologies.Berlin: Springer, 2004: 67-92.
[6] Meng L, Huang R, Gu J. A review of semantic similarity measures in wordnet[J]. International Journal of Hybrid Information Technology, 2013, 6(1): 1-12.
[7] Robles K, Fraga A, Morato J, et al. Towards an ontology-based retrieval of UML class diagrams[J]. Information and Software Technology, 2012, 54(1): 72-86.
[8] Zhang X, Chen H, Zhang T.An UML model query method based on structure pattern matching[C]//International Conference on Trustworthy Computing and Services.Berlin: Springer, 2012: 506-513. http://link.springer.com/chapter/10.1007/978-3-642-35795-4_64
[9] Routledge N, Bird L, Goodchild A.UML and XML schema[C]//Australian Computer Science Communications.Melbourne: Australian Computer Society Inc, 2002: 157-166.
[10] Raymond J W, Gardiner E J, Willett P. Rascal:calculation of graph similarity using maximum common edge subgraphs[J]. The Computer Journal, 2002, 45(6): 631-644. DOI:10.1093/comjnl/45.6.631
[11] Grose T J, Doney G C, Brodsky S A. Mastering XMI:Java programming with XMI, XML and UML[M]. New York: John Wiley & Sons, 2002.
[12] Yang Y. An evaluation of statistical approaches to text categorization[J]. Information Retrieval, 1999, 1(1/2): 69-90. DOI:10.1023/A:1009982220290

相关话题/结构 语义

  • 领限时大额优惠券,享本站正版考研考试资料!
    大额优惠券
    优惠券领取后72小时内有效,10万种最新考研考试考证类电子打印资料任你选。涵盖全国500余所院校考研专业课、200多种职业资格考试、1100多种经典教材,产品类型包含电子书、题库、全套资料以及视频,无论您是考研复习、考证刷题,还是考前冲刺等,不同类型的产品可满足您学习上的不同需求。 ...
    本站小编 Free壹佰分学习网 2022-09-19
  • 大小叶盘-硬涂层阻尼结构的解析建模和振动分析
    高峰1,2,孙伟1,2,倪陈兵11.东北大学机械工程与自动化学院,辽宁沈阳110819;2.东北大学航空动力装备振动及控制教育部重点实验室,辽宁沈阳110819收稿日期:2017-11-23基金项目:国家自然科学基金资助项目(51775092);中央高校基本科研业务费专项资金资助项目(N170306 ...
    本站小编 Free考研考试 2020-03-23
  • 一种改进鱼群聚类算法在结构面分组中的应用
    王述红1,任艺鹏1,陈俊智2,张紫杉11.东北大学资源与土木工程学院,辽宁沈阳110819;2.昆明理工大学国土资源学院,云南昆明650093收稿日期:2017-11-01基金项目:国家自然科学基金资助项目(51474050);国家自然科学基金云南联合重点资助项目(U1602232);辽宁省高等学校 ...
    本站小编 Free考研考试 2020-03-23
  • 基于子结构模态综合法的重型牵引车优化设计
    李播博1,袁惠群2,王光定1,孙红运11.东北大学机械工程与自动化学院,辽宁沈阳110819;2.东北大学理学院,辽宁沈阳110819收稿日期:2018-02-08基金项目:国家自然科学基金资助项目(51775093);国家自然科学基金重点资助项目(51335003)。作者简介:李播博(1989-) ...
    本站小编 Free考研考试 2020-03-23
  • 真空渗碳炉加热系统结构优化数值模拟研究
    刘静,李家栋,王昊杰,王昭东东北大学轧制技术及连轧自动化国家重点实验室,辽宁沈阳110819收稿日期:2018-03-23基金项目:国家重点基础研发计划项目(2017YFB0306400)。作者简介:刘静(1989-),女,湖北襄阳人,东北大学博士研究生;王昭东(1968-),男,安徽淮南人,东北大 ...
    本站小编 Free考研考试 2020-03-23
  • 三维结构ZnO基乙醇气敏材料的制备及改性
    于慧敏,王硕,李祺炜,李建中东北大学冶金学院,辽宁沈阳110819收稿日期:2018-03-29基金项目:国家自然科学基金-中国宝武钢铁集团有限公司钢铁联合研究基金资助项目(U1760118)。作者简介:于慧敏(1993-),女,内蒙古通辽人,东北大学博士研究生;李建中(1976-),男,河北迁安人 ...
    本站小编 Free考研考试 2020-03-23
  • 新型四臂巡检机器人结构设计及转向越障研究
    房立金1,祝帅2,贺长林2,许继谦21.东北大学机器人科学与工程学院,辽宁沈阳110819;2.东北大学机械工程与自动化学院,辽宁沈阳110819收稿日期:2018-05-09基金项目:国家自然科学基金资助项目(51575092)。作者简介:房立金(1965-),男,辽宁沈阳人,东北大学教授,博士生 ...
    本站小编 Free考研考试 2020-03-23
  • 多孔结构对Vero White型光敏树脂力学性能的影响
    于天彪1,赵雨1,毕晓夕1,陈亚东21.东北大学机械工程与自动化学院,辽宁沈阳110819;2.东北大学中荷生物医学与信息工程学院,辽宁沈阳110169收稿日期:2018-04-16基金项目:国家工信部绿色系统集成重大专项(201675514);国家自然科学基金资助项目(51505075);沈阳市重 ...
    本站小编 Free考研考试 2020-03-23
  • 屯兰矿区含瓦斯煤微结构定量表征
    李江涛1,2,3,梁文勖2,3,贺志宏41.东北大学资源与土木工程学院,辽宁沈阳110819;2.煤科集团沈阳研究院有限公司,辽宁沈阳110016;3.煤矿安全技术国家重点实验室,辽宁抚顺113122;4.西山煤电(集团)有限责任公司,山西太原030000)收稿日期:2018-05-09作者简介:李 ...
    本站小编 Free考研考试 2020-03-23
  • 新管幕结构受力模式及关键技术分析
    贾鹏蛟1,赵文1,关永平2,李伟伟11.东北大学资源与土木工程学院,辽宁沈阳110819;2.中国铁路设计集团有限公司,天津300142收稿日期:2018-08-13基金项目:国家自然科学基金资助项目(51578116,51878127);中央高校基本科研业务费专项资金资助项目(N160106006 ...
    本站小编 Free考研考试 2020-03-23
  • 新型双折线绳槽结构设计与实验研究
    葛建兵1,2,3,龚宪生1,2,彭霞3,刘劲军41.重庆大学机械传动国家重点实验室,重庆400044;2.重庆大学机械工程学院,重庆400044;3.石河子大学机械电气工程学院,新疆石河子832000;4.洛阳矿山机械工程设计研究院有限责任公司,河南洛阳471039收稿日期:2018-04-25基金 ...
    本站小编 Free考研考试 2020-03-23