首页> 中国专利> 基于SysML v1和SysML v2的双向模型转换方法

基于SysML v1和SysML v2的双向模型转换方法

摘要

本发明公开了一种基于SysML v1和SysML v2的双向模型转换方法,基于SysMLv2标准规范构建类型识别与元素类型扩展,从而在SysMLv2内核上构建SysML v1的元素类型识别系统,以满足SysMLv1模型的编辑与分析功能,并通过UML类型、Stereotype类型及属性实现不同模型间的双向转换。本发明提供一种基于SysML v1和SysML v2的双向模型转换方法,可在SysML v2系统建模语言中表达SysML v1模型元素信息,并有效实现SysML v1与SysML v2之间的模型双向转换,面向对象为复杂装备系统建模领域,旨在解决SysML模型建模中的版本兼容性问题,从而更好的满足复杂装备研制中各类建模与设计人员的建模、交互、互操作和可视化等需求。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-09-29

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及复杂装备系统建模领域。更具体地说,本发明涉及一种基于SysML v1和SysML v2的双向模型转换方法。

背景技术

标准系统建模语言(Systems Modeling Language,SysML)能够有效表达系统的结构、行为、需求和约束等要素信息,并通过图形化建模、系统动态行为仿真、指标验证、架构驱动以及集成扩展等功能,支撑基于模型的系统工程实施,可应用于复杂装备系统建模。但SysML v1标准规范仅定义图形化建模规范,各厂商在模型交互、仿真、分析/管理、交换/集成、协作等方面实现方式差异性较大,难以满足面向多机构、多层级、多学科的复杂产品模型建模与集成仿真需求。

SysML v2致力于保持语言概念的一致性、模型交互的互操作性、模型表达的完备性以及可视化操作,突出了SysML作为MBSE的基础共性建模语言的地位,满足复杂系统互联建模的需求。但缺乏有效的模型转换工具实现SysML v1模型与SysML v2模型之间的双向转换,以支撑现有系统模型与SyML v2系统模型之间的平稳切换。

发明内容

本发明的一个目的是解决至少上述问题和/或缺陷,并提供至少后面将说明的优点。

为了实现本发明的这些目的和其它优点,提供了一种基于SysML v1和SysML v2的双向模型转换方法,其特征在于,基于SysMLv2标准规范构建类型识别与元素类型扩展,从而在SysMLv2内核上构建SysML v1的元素类型识别系统,以满足SysMLv1模型的编辑与分析功能,并通过UML类型、Stereotype类型及属性实现不同模型间的双向转换。

优选的是,所述SysMLv2标准规范是指SysMLv2元模型对象,所述类型识别与元素类型扩展包括:

构建面向SysML v1及UML类型的模型元素建模与交互机制,并通过相应的功能模块构建双向模型转换框架;

所述功能模块包括:EMF建模框架、UML标准规范和SysMLv2标准规范实现的SysMLv1模型管理、SysMLv2模型管理、元素类型识别器、模型元素转换器以及模型元素映射规则。

优选的是,所述元素类型识别系统构建的方式包括:

在SysML v2中基于MetaDataDefinition和MetaDataUsage构建面向SysML v1的UML、Stereotype类型识别系统,并通过相关特性实现UML剖面扩展机制,并将系统模型文本化;

其中,所述相关特性包括:元数据属性定义、使用、属性。

优选的是,所述元素类型识别系统构建步骤包括:

S10、在文本化模型库中通过MetaDataDefinition定义UML2的元对象类型及继承关系;

S11、将UML中的Profile类型和Stereotype类型转换为MetaDataDefinition,并通过MetaDataUsage及FeatureTyping与UML2元对象类型建立关联关系,识别方式为MetaDataUsage的名称为base_+UML2元对象类型,并通过FeatureTyping建立与UML2元对象类型;

S12、建立基于String与Element之间双向映射关系,添加元素标记时,通过元素id查找元素内存对象,并添加到Element的元数据标签中;

S13、当类型识别时,遍历Element的元数据标签,判断该元素的数据类型进而完成识别。

优选的是,满足SysMLv1模型的编辑与分析功能还包括:

构建基于元素类型和元素属性的模型转换映射器;

构建基于UML、Profile/Stereotype和SysML v2之间的模型映射规则;

实现SysML Profile及依赖模型到SysML v2的模型库转换以及检索机制。

优选的是,所述模型转换映射器包括分别定义的元素转换规则、属性转换规则;

其中,所述元素转换规则是通过特定字段Ⅰ构成,用于识别SysML v1与SysML v2之间特殊类型的转换;

所述属性转换规则是通过特定字段Ⅱ字段实现SysML v1与SysML v2之间特殊类型属性的转换,而用于识别元素类型或者继承构造型类型的元素,则直接通过Stereotype类型、Stereotype属性名称与MataData类型、MataData属性实现通用转换;

所述特定字段Ⅰ包括:UML2元对象类型、Stereotype类型、元素类型识别符、SysMLv2元素类型、SysML v2关系类型、SysML v2继承类型;

所述特定字段Ⅱ包括:UML2元对象类型、Stereotype类型、元素类型识别符、SysMLv1属性名称、SysML v2属性名称、SysML v2元数据定义类型。

优选的是,所述模型映射规则是基于UML2和SysMLv2的元对象类型构建基于UML、Profile/Stereotype和SysML v2之间的模型映射规则,通过Json配置文件完成之间的映射规则,对于复杂映射规则,通过ocl语言或者java编码的方式实现其映射逻辑;

其中,在SysML v1到SysMLv2模型映射时,遍历UML element中的构造型类型,如果在元素类型识别器中,则按照映射规则映射;如果不在元素类型识别器中,则按照UML元素类型和构造型类型一一映射,通过SysML v2模型管理器创建元素,并添加响应的元数据类型识别符。

在SysMLv2到SysML v1模型映射时,遍历SysML v2的各个元素,通过元素类型识别器识别出该元素的类型,则根据元素类型转换规则将其转换为UML类型,并添加相关Stereotype标记;如果该元素在元素类型识别器中,则按照映射规则映射;如果不在元素类型识别器中,其元素属性以及元数据属性值将自动映射到UML类型以及Stereotype属性值上。

优选的是,所述模型库转换以及检索机制的构建方式为:

S20、加载SysML v2文本化模型库,同时基于元素名称全称Qs和元素id持久化模型元素信息,确保模型元素id的唯一性;

S21、通过模型映射规则的模型转换技术将SysML v1相关Profile转换为SysML v1内存模型库模型;

S22、建立元素名称全程与元素内存对象、元素id与元素内存对象、剖面构造型名称与元素内存对象的键-值映射关系,实现模型库内元素的快速检索。

优选的是,所述模型转换框架的转换流程包括:

S30、SysML v1模型管理器通过持久化技术读取不同厂商的系统模型文件;

S31、当加载用户模型时,系统根据模型数据格式调用相应持久化算法,实现SysMLv1系统模型的依赖分析以及模型加载;

S32、通过模型转换技术将SysML v1模型转换为SysML v2模型,用户在SysML v2模型上编辑和分析模型信息;

S33、基于模型转换规则将SysML v2模型转换为SysML v1模型,并根据需要将其保存为指定格式的模型文件。

本发明至少包括以下有益效果:本发明公开了一种基于SysML v1和SysML v2的双向模型转换方法,可在SysML v2系统建模语言中表达SysML v1模型元素信息,并有效实现SysML v1与SysML v2之间的模型双向转换。该方法基于SysMLv2标准规范,在元模型层面构建基于SysMLv2元模型的模型、元素、属性、元数据类型、元数据属性及模型库等要素组成的模型元素管理机制,通过元数据定义和使用实现SysML v1及相关剖面的类型识别,从而满足SysMLv1模型在SysMLv2建模机制下的模型建模、模型分析以及模型集成需求。该方法面向复杂装备系统建模领域,旨在解决SysML模型建模中的版本兼容性问题,从而更好的满足复杂装备研制中各类建模与设计人员的建模、交互、互操作和可视化等需求。

本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。

附图说明

图1为本发明面向异构SysML模型的双向模型转换流程示意图;

图2为本发明SysML v1到SysML v2模型转换流程示意图;

图3为本发明SysML v2到SysML v1模型转换流程示意图;

图4为本发明基于SysML v1和SysML v2的模型库模型加载方式流程示意图;

图5为本发明基于SysML v2的模型转换框架示意图。

具体实施方式

下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。

本发明的一种基于SysML v1和SysML v2的双向模型转换方法,是基于SysMLv2元模型对象构建面向SysML v1及UML类型的模型元素建模与交互机制,通过EMF建模框架、UML标准规范和SysMLv2标准规范实现的SysMLv1模型管理、SysMLv2模型管理、元素类型识别器、模型元素转换器以及模型元素映射规则等功能模块,实现由SysMLv1系统模型、SysMLv2系统模型以及模型转换模块等组成的双向模型转换框架;其总体思路是基于SysML v2的语言特性,通过MetaDataDefinition和MetaDataUsage实现SysML v1中UML类型、Profile、Stereotype的类型识别与元素类型扩展,从而在SysMLv2内核上构建SysML v1的元素类型识别系统,从而满足SysMLv1模型的编辑与分析功能,并通过UML类型、Stereotype类型及属性实现不同模型间的双向转换,其在具体实施时,包括:

在SysML v2中基于MetaDataDefinition和MetaDataUsage构建面向SysML v1的UML、Stereotype类型识别系统,通过元数据属性定义、使用、属性等特性实现UML剖面扩展机制,并可将系统模型文本化。

在于SysML v2模型库中构建UML源对象类型,并通过动态加载机制加载SysML v1剖面库,实现SysML v1文本化模型库及SysML v1剖面库下的模型建模机制。

构建基于UML类型及Stereotype类型的双向模型转换机制时,是通过EMF ECore反射机制实现SysML v1与SysML v2用户模型之间的双向转换。

参照图1,对本发明的一种基于SysML v1和SysML v2的双向模型转换方法实施步骤进一步进行说明,包括:

步骤一:构建基于SysML v2元模型的元素类型识别系统,通过元数据定义和元数据使用有效识别UML类型以及构造型类型;

步骤二:构建基于元素类型和元素属性的模型转换映射器;

步骤三:构建基于UML、Profile/Stereotype和SysML v2之间的模型映射规则;

步骤四:实现SysML Profile及依赖模型到SysML v2的模型库转换以及检索机制;

步骤五:基于UML元模型和SysML v2元模型搭建模型转换框架,实现SysML v1和SysML v2的双向模型转换。

进一步的:步骤一构建基于SysML v2元模型的元素类型识别系统,在文本化模型库中通过MetaDataDefinition定义UML2的元对象类型及继承关系;将UML中的Profile类型和Stereotype类型转换为MetaDataDefinition,并通过MetaDataUsage及FeatureTyping与UML2元对象类型建立关联关系,识别方式为MetaDataUsage的名称为base_+UML2元对象类型,并通过FeatureTyping建立与UML2元对象类型。最后,建立基于String与Element之间双向映射关系,添加元素标记时,通过元素id查找元素内存对象,并添加到Element的元数据标签中;当类型识别时,遍历Element的元数据标签,判断该元素的数据类型。

进一步的:步骤二构建基于元素类型和元素属性的模型转换映射器,分别定义元素转换规则以及属性转换规则。前者,通过UML2元对象类型、Stereotype类型、元素类型识别符、SysML v2元素类型、SysML v2关系类型、SysML v2继承类型等字段构成,用于识别SysML v1与SysML v2之间特殊类型的转换;后者,通过UML2元对象类型、Stereotype类型、元素类型识别符、SysML v1属性名称、SysML v2属性名称、SysML v2元数据定义类型等字段实现SysML v1与SysML v2之间特殊类型属性的转换。用于识别元素类型或者继承构造型类型的元素,直接通过Stereotype类型、Stereotype属性名称与MataData类型、MataData属性实现通用转换。

进一步的:步骤三基于UML2和SysMLv2的元对象类型构建基于UML、Profile/Stereotype和SysML v2之间的模型映射规则,通过Json配置文件完成之间的映射规则,对于复杂映射规则,通过ocl语言或者java编码的方式实现其映射逻辑。

参照图2,SysML v1到SysMLv2模型映射时,遍历UML element中的构造型类型,如果在元素类型识别器中,则按照映射规则映射;如果不在元素类型识别器中,则按照UML元素类型和构造型类型一一映射。通过SysML v2模型管理器创建元素,并添加响应的元数据类型识别符。

参照图3,SysMLv2到SysML v1模型映射时,遍历SysML v2的各个元素,通过元素类型识别器识别出该元素的类型,则根据元素类型转换规则将其转换为UML类型,并添加相关Stereotype标记。如果该元素在元素类型识别器中,则按照映射规则映射;如果不在元素类型识别器中,其元素属性以及元数据属性值将自动映射到UML类型以及Stereotype属性值上。

进一步的参照图4:步骤四实现SysML v1 Profile和SysML v2文本化模型库的复合加载以及模型元素检索方法。首先,加载SysML v2文本化模型库,同时基于元素名称全称Qs和元素id持久化模型元素信息,确保模型元素id的唯一性;其次,通过步骤三的模型转换技术将SysML v1相关Profile转换为SysML v1内存模型库模型;然后,建立元素名称全程与元素内存对象、元素id与元素内存对象、剖面构造型名称与元素内存对象的键-值映射关系,实现模型库内元素的快速检索。

进一步的参照图5:步骤五基于上述步骤构建SysML v1模型与SysML v2模型之间的模型转换框架,SysML v1模型管理器通过持久化技术读取不同厂商的系统模型文件。当加载用户模型时,系统根据模型数据格式调用相应持久化算法,实现SysML v1系统模型的依赖分析以及模型加载;然后,通过模型转换技术将SysML v1模型转换为SysML v2模型,用户在SysML v2模型上编辑和分析模型信息;最终,基于模型转换规则将SysML v2模型转换为SysML v1模型,并根据需要将其保存为制定格式的模型文件。

实施例1:

步骤一,在模型库中定义UML2元模型对象,并命名为UML2.sysml,定义为文件内容如下:

在SysML v2模型管理器中引入模型元素及模型元素关系操作的抽象层ElementBase和ElementRelation,通过ElementBase对外提供元素对象、元数据对象、元素属性、元数据对象、元素类型识别等操作接口,其定义如下:

    

元素类型添加标识符时,直接调用addMetaData函数添加UML类型或者Stereotype类型,通过MetaDataUsage建立与UML元对象类型和Stereotype类型之间的关系。

元素类型识别系统首先通过getStereotypes()函数获得元素的构造型列表,如果模型映射器中存在该构造型类型,则表明该构造类型为元素类型;如果模型映射器中不存在该构造类型,则通过getUMLType()函数判断是否为UML类型;如果没有标记,则代表其为SysML v2基础元素类型。

步骤二,模型映射规则元素映射与属性映射规则定义如下:

     

其中,elementRules用于识别所有元素已注册的元素类型,umlElementRules识别uml元素类型。当元素相关stereotypes均不在elementRules中,将会被识别为uml数据类型对象。

步骤三,uml元素映射时,elementType类型为uml类型,通过v1UMLType和v2ElementType构建关联关系;elementType为构造型类型,通过v1UMLType、v2ElementType和v2MetadataType识别,对于uml活动图相关元素直接关联到ActionUsage,并通过defClass关联到ActionDefinition中。

UML元素定义如下:

构造型类型识别定义如下:

元素属性映射规则如下:

SysMLv1到SysMLv2模型映射时,首先,创建所有uml元素类型,通过Element.eClass.getName()获得元素uml类型,通过Element.getAppliedStereotypes()接口获得相关构造型类型,循环判断Stereotype是否在为V1V2MapperRule.elementRules中的类型,如果是,按照元素映射规则生成元素对象;如果不是,则首先通过接口创建UML元素对象,然后将Stereotype类型通过ElementBase.addMetaData接口一一添加到元素对象上;然后,遍历V1V2MapperRule中该类型的特殊属性转换规则,将SysML v1元素标量属性类型添加到SysML v2属性上;最后,当所有元素创建完毕后,将SysML v1元素相关引用属性添加到SysML v2属性上,包括关系的source和target、属性的类型等。

SysMLv2到SysMLv1模型映射时,遍历SysMLv2模型元素,通过ElementBase.getUMLType()函数判断是否为UML元素类型,如果是,则在SysMLv1模型管理器中创建该元素类型,并根据构造型名称将其添加到Element中;然后,获得通过ElementBase.getElementType()函数判断V1V2MapperRule.elementPropertyRules是否包含该元素类型,如果包含,则读取SysMLv2模型元素属性值,并添加到SysML v1模型元素上;反之,则逐个遍历SysML v1元素属性列表及元素属性值,添加相关属性信息;最后,当所有元素创建完毕后,将SysML v2元素相关引用属性添加到SysML v1属性上,包括关系的source和target、属性的类型等。

步骤四,定义模型库元素快速检索机制,定义如下:

组件加载时,SysML v1模型管理器解析模型库中模型之间的依赖关系,并顺序加载相关模型到内存;然后通过模型转换器将SysML v1模型库中相关模型元素映射到SysMLv2模型库中,并以ProfileName:StereotypeName的形式添加到模型库ProjectUsageManager.qsStereotypes中以便快速检索Stereotype对应的对象,添加到stereotypesNames,以便实现元素类型的快速检索。

量纲映射时,通过V1Element Qs和V2Element Qs建立之间的关联关系,实现SysMLv1 ISO80000量纲到SysML v2 ISO80000模型元素的映射。

步骤五,基于Ecore及UML.xmi创建UML元模型对象,并构建SysML v1的模型管理器,实现SysML v1模型元素的编辑管理的函数式接口;基于Ecore及SysML v2.xmi创建SysML v2元模型对象,并构建SysML v2的模型对象管理器,实现SysML v1模型元素的编辑管理的函数式接口,支撑文本化模型的导入及函数式模型元素创建的功能。

元素创建时,根据元素类型通过ElementBase.addChild函数添加Eobject元素对象,并添加到ElementBase.Object中,从而实现模型元素操作的抽象层。依据不同类型的SysMLv1模型文件,按照标准规范或则厂商提供的API接口读取和保存相关系统模型。

基于上述实施例可以看出,本发明的效果在于:

其一,本发明基于SysML v2的类型识别系统,能够在保证模型版本兼容性下实现在SysML v2模型建模编辑器上编辑SysML v1系统模型;

其二,本发明基于类型识别系统的模型转换规则,能够有效屏蔽不同厂商模型之间模型兼容性问题,实现异构系统模型与异构模型之间的快速集成。

以上方案只是一种较佳实例的说明,但并不局限于此。在实施本发明时,可以根据使用者需求进行适当的替换和/或修改。

这里说明的设备数量和处理规模是用来简化本发明的说明的。对本发明的应用、修改和变化对本领域的技术人员来说是显而易见的。

尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用。它完全可以被适用于各种适合本发明的领域。对于熟悉本领域的人员而言,可容易地实现另外的修改。因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号