【技术实现步骤摘要】
基于ATL的SysML模型到SLIM模型的自动转换方法
[0001]本专利技术属于复杂系统的安全性分析
,具体涉及基于ATL的SysML模型到SLIM模型的自动转换方法。
技术介绍
[0002]ATL(ATLAS Transformation Language)是ATLAS研究组开发出来的一种模型转换语言,其引擎是基于EMF(Eclipse模型框架)的一个Eclipse插件。
[0003]SysML是一种通用图形建模语言,它是对UML2.0子集的重用和扩展,其支持复杂系统的分析、规范、设计、验证等,可以包含硬件、软件、数据、人员、设施、和在物理环境内的其它元素。它旨在用于描述系统架构,以促进MBSE方法的广泛应用。SysML模型包括九种图:模块定义图(Block Definition Diagram,BDD)、内部模块图(Internal Block Diagram,IBD)、用例图、活动图、序列图、状态机图、参数图、包图和需求图。在建模过程中主要使用BDD图、IBD图和状态机图来构建复杂系统的架构。其中BDD ...
【技术保护点】
【技术特征摘要】
1.基于ATL的SysML模型到SLIM模型的自动转换方法,其特征在于,包括:S1、构建SysML元模型和SLIM元模型,通过分析SysML元模型和SLIM元模型,建立SysML模型与SLIM模型元素映射表;S2、设计源文件处理算法,得到用于转换的SysML模型源文件;S3、基于SysML模型与SLIM模型元素映射表,采用ATL语言编写从SysML模型向SLIM模型转换的转换规则文件,结合SysML模型源文件,调用ATL引擎自动实现SysML模型到SLIM模型的转换。2.根据权利要求1所述的基于ATL的SysML模型到SLIM模型的自动转换方法,其特征在于,所述S1根据SysML规约文档以及XMI文件构建SysML元模型,根据SLIM的BNF范式建立SLIM元模型。3.根据权利要求1所述的基于ATL的SysML模型到SLIM模型的自动转换方法,其特征在于,所述SysML模型与SLIM模型元素映射表包括:SysML模型的元素:classElement、ownedPort、type、defaultValue、ownedAttribute(name!=null)、ownedConnector、start、end、ownedBehavior、subvertex、transition、guard、effect,其含义分别为:系统组件、组件端口、端口类型、端口默认值、组成部分、端口连接、输出端口、输入端口、状态机、状态、状态转换、卫士、影响;SLIM模型的元素:System与SystemImpl、Port、Type、Defaultvalue、SubComponent、Connection、start、end、StateMachine、state、transition、guard、effect,其含义分别为:模块与实现接口、组件端口、端口类型、端口默认值、子组件、端口连接、输出端口、输入端口、状态机、状态、状态转换、卫士、影响。4.根据权利要求1所述的基于ATL的SysML模型到SLIM模型的自动转换方法,其特征在于,所述S2利用Dom4j和org.w3c.dom工具包设计源文件处理算法,采用源文件处理算法处理SysML模型XMI文件,对XMI文件结构作出调整,以获得用于转换的SysML模型源文件,即将要进行转换的SysML模型源文件。5.根据权利要求4所述的基于ATL的SysML模型到SLIM模型的自动转换方法,其特征在于,所述采用源文件处理算法处理SysML模型XMI文件,对XMI文件结构作出调整,包括:删除标签中与转换无关的属性以及为记录端口信息的ownedPort标签添加属性方向direction。6.根据权利要求5所述的基于ATL的SysML模型到SLIM模型的自动转换方法,其特征在于,所述删除标签中与转换无关的属性的方式为:将文档的根节点作为遍历的起点,根据标签名和属性名判断当前节点是否拥有与转换无关的属性,即要删除的属性,如果有,则删除属性,否则从当前节点的父节点进行递归遍历与判断,直至找到所有拥有要删除的节点,并删除属性或文档所有节点都循环完毕。7.根据权利要求5所述的基于ATL的SysML模型到SLIM模型的自动转换方法,其特征在于,所述为记录端口信息的ownedPort标签添加属性direction的方式为:首先,编写一个recordAttribute()函数,遍历所有节点,查找到流端口FlowPort标签,使用两个List数组分别记录属性端口编号base_Port、direction的值,接着在另一个addAttribute()函数中,通过遍历的方式找到ownedPort标签,然后遍历包含base_Port值的数组,数组当前值记为s,如果ownedPort的id等于s,则使用setAttributeValue()函数生成属性di...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。