一种基于元模型的UML语法一致性检测方法与流程

文档序号:18667567发布日期:2019-09-13 20:23阅读:433来源:国知局
一种基于元模型的UML语法一致性检测方法与流程

本发明涉及计算机软件工程技术领域,具体而言,尤其涉及一种基于元模型的uml语法一致性检测方法。



背景技术:

uml(unifiedmodelinglanguage,统一建模语言)在软件工程领域已被广泛接受,它是一种通用的可视化建模语言,适用于对软件进行描述、可视化处理、构造和建立软件系统的文档,是omg(objectmanagementgroup,对象管理组)中最常用的规范,是实现mda(modeldrivenarchutecture,模型驱动架构)的首选建模语言。近几年随着学术界和工业界对mda的极大关注,这使得uml模型在软件开发中变得越来越重要,这就对uml模型的一致性提出了更高要求。由于uml不是形式化的语言,不能给出精确规范,因此在语法语义上以及不同视角的图之间很可能出现不一致的情况,会出现各种冲突,而这种不一致可能是以后软件系统故障和问题的来源,因此对uml模型进行一致性检测是至关重要的。

现在有很多uml一致性检测的技术,不过大多基于各种形式化方法以及逻辑语言,比如z语言、b语言、csp、ctl/ltl命题逻辑等,这些形式化方法和逻辑语言都是基于严格的数学理论的,都需要开发人员有很好的数学基础,而且一些语言比较古老,缺少新版本的编译器,与现在的各种技术融合度不高。本发明不是基于这些逻辑语言,而是基于uml的元模型。omg定义了一个四层模型体系来分开组成一个模型的不同概念层次:实例(m0)、模型(m1)、元模型(m2)和元—元模型(m3)。uml元模型位于m2层,定义了uml模型的结构,常常包含一些元类。该方法与之前的方法相比,比较简单易行,实现起来比较方便,容易理解。



技术实现要素:

根据上述提出的技术问题,而提供一种基于元模型的uml语法一致性检测方法,实现对uml模型的语法一致性的检测。

本发明采用的技术手段如下:

一种基于元模型的uml语法一致性检测方法,包括:

步骤1:将需要检测的uml模型映射成xmi文档,通过支持xmi的uml绘图软件,将uml模型导出为xmi文档;

步骤2:通过java语言使用dom4j解析器解析xmi文档;

步骤3:设计uml元模型结构,通过xpath技术对uml模型进行关键词抽取,以获取uml元模型的信息,信息包括标签以及标签的属性值;

步骤4:将步骤3获取的uml元模型信息,存储至数据库,用于后续的读取;

步骤5:根据uml语法一致性规则对数据库中存储的uml元模型进行检验,通过java代码实现自动化检测。

进一步地,所述步骤2的具体步骤如下:

步骤2.1:创建saxreader解析器;

步骤2.2:通过saxreader解析器的read方法将xmi文档读取至内存中,并生成一个document对象树。

进一步地,所述步骤5的具体步骤如下:

步骤5.1:归纳整理uml语法一致性规则,uml模型中的以及uml模型间的一致性规则;

步骤5.2:依据uml语法一致性规则,获取需要检测的uml模型映射在数据库中的uml元模型实例,并对该实例进行查询,以获取被检测的uml模型的信息;

步骤5.3:将检测的结果返回给用户,判断检测结果是否正确,若正确,则返回检测信息,若不正确,则将错误的uml元模型实例id号以及错误原因返回给用户,方便用户修正。

较现有技术相比,本发明具有以下优点:

1、本发明提供的一种基于元模型的uml语法一致性检测方法,简单易行,准确高效,方便查找模型中有问题的结点。

2、使用本方法,无需学习逻辑相关的专业数学知识,也无需额外使用相关逻辑语言的编译器,不需要再向其他模型转换,减少了中间的转换步骤,从而减少转换过程中出错的可能性,从而减少检测过程的复杂性。

基于上述理由本发明可在计算机软件工程领域广泛推广。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明方法流程图。

图2为本发明实施例提供的一个简单类图的检测的元模型设计示意图。

图3为本发明实施例提供的一个简单类图。

图4为本发明实施例提供的一个简单类图转换成的xmi文档截图。

图5为本发明实施例提供的一个简单类图的检测结果截图。

具体实施方式

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。同时,应当清楚,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员己知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任向具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

如图1所示,本发明提供了一种基于元模型的uml语法一致性检测方法,包括以下步骤:

步骤1:将需要检测的uml模型映射成xmi文档,通过支持xmi的uml绘图软件,将uml模型导出为xmi文档;

步骤2:通过java语言使用dom4j解析器解析xmi文档;

步骤3:设计元模型结构,通过xpath技术对uml模型进行关键词抽取,以获取uml元模型的信息,信息包括标签以及标签的属性值;

步骤4:将步骤3获取的uml元模型信息,存储至数据库,用于后续的读取;

步骤5:根据uml语法一致性规则,对数据库中存储的uml元模型进行检验,通过java代码实现自动化检测。

实施例

本发明提供了一种基于元模型的uml语法一致性检测方法,包括:

步骤1:将需要检测的uml元模型映射成xmi文档,通过rationalrose、staruml等支持xmi的uml绘图软件,将uml元模型导出为xmi文档;本实施例中,需要检测的uml模型为如图3所示的类图,将其映射成如图4所示的xmi文档,从uml图转变成形式化可扩展的标记语言,uml模型中的元素转变成xmi文档中的标签。

步骤2:通过java语言使用dom4j解析器解析xmi文档;

步骤2的具体步骤如下:

步骤2.1:创建saxreader解析器;

步骤2.2:通过saxreader解析器的read方法将如图4所示的xmi文档读取至内存中,并生成一个document对象树。

步骤3:设计元模型结构,通过xpath技术对图2所示的uml类模型进行关键词抽取,以获取uml元模型所需的信息,信息包括标签以及标签的属性值;本实施例中,将如图2所示的简单类图抽象成元模型结构,将uml元模型设计成几个类元:operation,attribution,class,classdiagram和association等。

步骤4:将步骤3获取的uml元模型信息,存储至数据库,用于后续的读取;数据库存储结构可以根据元模型结构对应存储,每个类元都存成一个表,每个表的主键由时间戳加类元的实例名组成,这样方便用户获取所需信息,方便后续的修改操作。

步骤5:根据uml语法一致性规则对数据库中存储的uml元模型进行检验,通过java代码实现自动化检测。

步骤5的具体步骤如下:

步骤5.1:归纳整理uml语法一致性规则,uml模型中的以及uml模型间的一致性规则;

步骤5.2:依据uml语法一致性规则,获取需要检测的uml模型映射在数据库中的uml元模型实例,并对该实例进行查询,以获取被检测的uml模型的信息;本实施例中,如图2所示的类图模型需检测“接口不能有属性”这条规则,即系统查询数据库中的类(类元)表和属性(类元)表,获取所有接口类的属性,如果返回有结果,则说明错误,在步骤5.3将该错误发生所在类的id号获取并返回给用户;

步骤5.3:将检测的结果返回给用户,判断检测结果是否正确,若正确,则返回检测信息,若不正确,则将错误的uml元模型实例id号以及错误原因返回给用户,方便用户修正。本实施例中,比如步骤1中所转换的类图模型,该模型检测的返回结果如图5所示,系统会返回检测正确的和错误的规则项,并将错误原因和错误结点的id号返回给用户,帮助用户修正。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1