[发明专利]一种基于本体的设计模式识别方法有效
申请号: | 201710507261.6 | 申请日: | 2017-06-28 |
公开(公告)号: | CN107368302B | 公开(公告)日: | 2020-04-24 |
发明(设计)人: | 李必信;熊壬浩;廖力;王璐璐;孔祥龙 | 申请(专利权)人: | 东南大学 |
主分类号: | G06F8/74 | 分类号: | G06F8/74 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 刘传玉 |
地址: | 210096 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 本体 设计 模式识别 方法 | ||
本发明公开了一种基于本体的设计模式识别方法,主要用于软件的逆向工程领域中设计模式的识别。设计模式提供了对软件系统的子系统、组件或它们之间的关系进行改进的纲要,描绘了对彼此通信的组件进行组织的常见结构,可解决特定背景下的一般性设计问题。本发明使用描述逻辑进行设计模式的概念建模,并以此为依据,构造本体类和本体属性。从源码中自动化抽取本体实例之后,将目标系统抽象与设计模式抽象进行比对的过程,转换为使用本体查询语言进行本体推理的过程。依据描述逻辑构造本体查询语句,并使用推理机进行推理。基于本体的设计模式识别,既有较强的表达能力,也能兼顾推理性能,提高了识别的准确度,使模式库易于扩展和使用。
技术领域
本发明涉及软件的逆向工程领域,尤其涉及一种基于本体的设计模式识别方法。
背景技术
设计模式提供了对软件系统的子系统、组件或它们之间的关系进行改进的纲要,描绘了对彼此通信的组件进行组织的常见结构,可解决特定背景下的一般性设计问题。GoF(Gang of Four)将设计模式分为三类,即创建型、结构型和行为型,三者分别关注对象的创建、类或对象的组合以及类之间的交互。设计模式的识别对于提高软件的可理解性和可维护性具有重要意义,是软件重用以及软件重构(Refactoring)的重要手段之一。
设计模式识别技术的研究得到了广泛的关注,目前的识别技术通常将目标软件系统的抽象表示和设计模式的抽象表示进行比对,进而抽取出目标软件系统中的设计模式。因此目标系统及设计模式的抽象是技术问题的关键。对目标系统进行抽象时使用的信息可分为静态信息和动态信息两类,前者是指调用、委托和继承等类之间的结构关联,后者是指运行时对象之间的交互。如何提高识别精度、如何应对变体问题是当前研究面临的两大困境。为了提高识别的准确度,需要在信息抽象阶段利用动态信息,同时使用精确的比对算法。为了应对变体问题,需要解决模式库的可扩展性和可维护性问题。然而现有的设计模式识别方法精确度较低,模式库的可扩展性和可维护性也不高。
发明内容
本发明所要解决的技术问题是针对背景技术中所涉及到的缺陷,提供一种基于本体的设计模式识别方法,提高了设计模式识别的准确度,同时利用本体的可扩展性,增强了模式库的可扩展性和可维护性。
本发明为解决上述技术问题采用以下技术方案。
一种基于本体的设计模式识别方法,将所有用于检测的设计模式构成设计模式集合,对于设计模式集合中的每一种设计模式:
步骤1),对该设计模式进行概念建模,并使用描述逻辑进行表示;
步骤2),根据描述逻辑构造本体类和本体属性,其中本体属性包括对象属性和值属性;
步骤3),依据步骤2)中构造的本体类和本体属性,从需要进行设计模式识别的目标系统中抽取本体实例;
步骤4),将步骤2)构造的本体类、本体属性及步骤3)抽取的本体实例进行合成,构造完整的本体;
步骤5),根据描述逻辑,选取本体查询语言,构造本体查询语句;
步骤6),将步骤4)构造的本体以及步骤5)构造的本体查询语句作为输入,使用推理机进行推理,得到该设计模式的设计模式实例。
作为本发明一种基于本体的设计模式识别方法进一步的优化方案,所述步骤2)中根据描述逻辑构造本体类和本体属性的详细步骤如下:
区分描述逻辑中的简单概念和复杂概念,仅使用简单概念构造本体类和本体属性。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
1.使用本体进行概念建模,可以在较高的层次上对设计模式进行抽象,同时,概念的复用十分有利于借鉴、融合已有的研究成果;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710507261.6/2.html,转载请声明来源钻瓜专利网。