当前位置: 首页 > 专利查询>南京大学专利>正文

基于结构匹配的UML模型查询方法技术

技术编号:8594007 阅读:194 留言:0更新日期:2013-04-18 07:12
一种基于结构匹配的UML模型查询方法,包括步骤:步骤10:获取模型库模型文件;步骤11:利用模型查询语言编辑目标查询模式;步骤12:解析目标模型模式;步骤13:利用结构匹配算法将步骤12解析好的目标模型模式与模型库中模型进行结构匹配;步骤14:显示匹配结果;该方法主要特点为查询语言简单,不仅能支持简单的关键字的模型查询更能支持纯粹的结构查询,更加具有一般性。

【技术实现步骤摘要】

本专利技术涉及设计阶段项目模型的分析与理解,主要涉及一种基于结构匹配的UML 模型查询方法。
技术介绍
随着软件工程技术的日益成熟,模型规模伴随着软件规模的发展而不断扩大,如 何利用现有软件资源提高软件生产效率已收到广泛关注。软件复用技术可借鉴现有成熟的 软件设计方案,降低软件设计和维护成本,提高软件生产效率,找出合适的模型或代码是复 用技术的难点。在模型库日趋庞杂的今天,模型驱动领域亟须对模型搜索相关技术展开研 究,帮助用户搜索模型库快速找出目标模型。目前模型搜索技术借鉴了文本搜索相关技术, 搜索效果和普及率均不甚理想,未能充分利用模型的结构信息和语义信息。近些来,随着模型驱动技术和UML建模支撑工具的逐步发展,UML模型查询技术逐 渐开始得到研究人员的关注(UML是通用的可视化建模语言,用于对软件进行描述、可视化 处理、构造和建立软件系统工作的文档,充分考虑了各种需求、方法和语言的特点)。目前与 UML相关的模型查询工作主要有元模型查询技术、基于对象约束语言(Object Constraint Language, OCL)的查询扩展以及基于信息检索技术的模型查询等。元模型是对建模语言进行描述的模型,其复杂度高,且难以消除,元模型查询主要 是针对元模型进行的查询。对象约束语言最初的雏形是IBEL (Integrated Business Engineering Language, IBM)和Syntropy,是IBM基于这两种语言进行设计而产生的。对象约束语言伴 随着UML1.1 一起发布,通过形式化的方法定义模型约束,对UML建模语言进行补充,进而 提高模型的表达能力。OCL语言能够描述类视图中类不变性、方法前置和后置条件等约束, OCL不仅可以精确定义模型约束,而且拥有描述模型查询能力。基于OCL模型查询的研究已 取得部分进展,能够支持简单的UML语义查询。目前与关系代数查询语言相比,OCL的表达 能力还存在一些不足。此外,使用OCL编写的查询语句的结构复杂、不直观、不易被用户阅 读和理解。与此同时,OMG标准组织给出了 OCL的定义,暂时没有一个统一成熟的工具支持 OCL的实现,相应的支撑工具正在开发中。基于信息检索技术的模型查询主要是将信息检索技术移植到模型搜索中,使用信 息检索技术来实现UML模型查询。整个查询过程与网页搜索引擎类似,主要利用关键词匹 配进行搜索,找出模型中哪些地方出现上述关键词。通过相关性算法得出模型元素与关键 词的相关性,对模型与关键词的相关程度进行排序。最后利用信息检索的评价指标对模型 搜索引擎进行评价,主要包括精度(Precision)、Recall (召回值)、Fneasure (F值)等评 价指标。整体上而言利用关键词进行模型查询存在一些不足,模型文件中有意义的字符串 所占比例较少,文件包含大量枚举类型值和模型结构描述。关键字搜索技术针对网页长文 本而实现的,短句和数字查询的效果并不佳。模型不仅描述了模型元素的名称,更重要的是 模型精确地描述模型元素之间的关系,模型结构信息无法利用关键字查询进行搜索。
技术实现思路
本专利技术目的是,鉴于上述问题,本专利技术旨在提供一种基于结构匹配的UML模型查询方法,该方法主要分析模型存储文件中的模型元素结构信息,然后抽取其中的模型元素, 利用匹配算法进行匹配,获取查询结果。实现UML模型查询。本专利技术是通过以下的技术方案实现的基于结构匹配的UML模型查询方法,步骤10 :获取UML模型库模型文件;步骤11 :利用模型查询语言编辑目标查询模式;步骤12 :解析目标查询的模型模式;步骤13 :利用结构匹配算法将步骤12解析好的目标查询模型模式与UML模型库中模型进行结构匹配;步骤14:显示匹配结果;其中步骤11中的目标查询模型查询语言符合下面的语法规范本文档来自技高网
...

【技术保护点】
一种基于结构匹配的UML模型查询方法,其特征包括步骤:步骤10:获取UML模型库模型文件;步骤11:利用模型查询语言编辑目标查询模式;步骤12:解析目标查询的模型模式;步骤13:利用结构匹配算法将步骤12解析好的目标查询模型模式与UML模型库中模型进行结构匹配;步骤14:显示匹配结果;按照模型查询语言编辑目标查询模型模式主要是将目标模型模式中包含的模型元素以及它们之间存在的关系表达出来;解析目标查询模型模式即步骤12,其中解析过程包括:步骤30:读取已经编辑完的目标模型模式文件;步骤31:开始读取文件内容;步骤32:识别关键字:[Class]、[Attribute]、[Operation]、[Parameter]、[Abstraction]、[Generalization]、[Dependency];步骤33:根据关键字创建相应对象元素,读取相应元素特征:name、visibility等,若其含有内部元素,则跳转至步骤32;步骤34:判断是否全部元素已经读完,若已经全部读完,则跳转至步骤35,否则,跳转至步骤32;步骤35:结束此次解析;步骤12是利用结构匹配算法将步骤12解析好的目标查询模型模式在模型库进行结构匹配,需要先从模型库中抽取模型信息,然后再利用结构匹配算法进行匹配;步骤40:获取模型文件;步骤41:抽取模型元素信息;步骤42:将解析好的目标模型元素信息在模型库中对每个模型元素进行逐一的结构匹配;抽取模型库信息即进行结构匹配之前的准备工作;其具体步骤包括:步骤50:读取模型库文件;步骤51:抽取模型库文件中的类元素,如果类中嵌套有属性以及方法元素,则继续抽取嵌套的属性以及方法元素;步骤52:抽取模型库文件中的类之间关系元素;步骤53:判断是否模型文件中所有元素都已经读完,若读完,则停止抽取,否则跳转至步骤51;模型库文件中的类、属性和方法元素的抽取算法;其算法具体步骤包含:步骤60:开始读模型文件;步骤61:如果当前节点元素为UML:Package,则将当前包的指针currentPackage赋给指针parentPackage,即parentPackage=currentPackage,然后currentPackage=newPackage(name);步骤62:如果当前节点元素为UML:Class,则将当前类的指针currentClass赋给指针parentClass,以当前节点信息创建新的类对象付给类指针currentClass,如果当前创建的类对象合法,则加入类的列表中;步骤63:更新包以及类的相关指针:parentClass(Package),currentClass(Package)。步骤64:重复步骤61到步骤63直至文件结尾;模型库文件中的类之间关系的抽取算法。算法具体步骤如下:步骤70:读取模型文件;步骤71:如果节点元素为类之间关系,如UML:Generalization、UML:Abstraction等,则以当前节点元素id创建一个类之间关系对象;步骤72:如果当前节点元素为UML:Generalization.child,则将步骤71中创建的类之间对象的child设置为当前节点的id;步骤73:如果当前节点元素为UML:Generalization.parent,则将步骤71中创建的类之间对象的parent设置为当前节点的id;步骤74:重复步骤71到步骤73,直到模型文件读取结束;利用结构匹配算法进行匹配,匹配过程中包括类结构匹配以及类之间关系结构匹配;其中类结构匹配包括:步骤80:检查类的基本信息是否匹配,基本信息包括:name、visibility、isAbstract等信息,如果匹配则进入步骤81,否则跳转至步骤84;步骤81:匹配类中所包含的属性元素,属性元素的匹配主要是检查属性中所包含的特征值是否匹配即可,特征值包括:name、type等,如果匹配则进入步骤82,否则跳转至步骤84;步骤82:匹配类中所包含的方法元素,方法元素的匹配需要检查方法中包含的特征值信息是否匹配,特征值包括:name、type、visibility,如果匹配则进入步骤83,否则跳转至步骤84;步骤83:匹配成功,返回肯定结果;步骤84:匹配失败,返回否定结果。...

【技术特征摘要】
1. 一种基于结构匹配的UML模型查询方法,其特征包括步骤 步骤10 :获取UML模型库模型文件; 步骤11 :利用模型查询语言编辑目标查询模式; 步骤12 :解析目标查询的模型模式; 步骤13 :利用结构匹配算法将步骤12解析好的目标查询模型模式与UML模型库中模型进行结构匹配; 步骤14 :显示匹配结果; 按照模型查询语言编辑目标查询模型模式主要是将目标模型模式中包含的模型元素以及它们之间存在的关系表达出来; 解析目标查询模型模式即步骤12,其中解析过程包括 步骤30 :读取已经编辑完的目标模型模式文件; 步骤31 :开始读取文件内容; 步骤 32 :识别关键字[Class]、 [Attribute]、 [Operation]、 [Parameter]、[Abstraction]、 [Generalization]、 [Dependency]; 步骤33 :根据关键字创建相应对象元素,读取相应元素特征name、visibility等,若其含有内部元素,则跳转至步骤32 ; 步骤34:判断是否全部元素已经读完,若已经全部读完,则跳转至步骤35,否则,跳转至步骤32 ; 步骤35 :结束此次解析; 步骤12是利用结构匹配算法将步骤12解析好的目标查询模型模式在模型库进行结构匹配,需要先从模型库中抽取模型信息,然后再利用结构匹配算法进行匹配; 步骤40 :获取模型文件; 步骤41 :抽取模型元素信息; 步骤42 :将解析好的目标模型元素信息在模型库中对每个模型元素进行逐一的结构匹配; 抽取模型库信息即进行结构匹配之前的准备工作;其具体步骤包括 步骤50 :读取模型库文件; 步骤51 :抽取模型库文件中的类元素,如果类中嵌套有属性以及方法元素,则继续抽取嵌套的属性以及方法元素; 步骤52 :抽取模型库文件中的类之间关系元素; 步骤53 :判断是否模型文件中所有元素都已经读完,若读完,则停止抽取,否则跳转至步骤51 ; 模型库文件中的类、属性和方法元素的抽取算法;其算法具体步骤包含 步骤60:开始读模型文件; 步骤61 :如果当前节点元素为UML:Package,则将当前包的指针currentPackage赋给指针 paren...

【专利技术属性】
技术研发人员:张天张学林李宣东
申请(专利权)人:南京大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1