《一种需求模型到仿真模型的模型转换方法.pdf》由会员分享,可在线阅读,更多相关《一种需求模型到仿真模型的模型转换方法.pdf(10页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 (43)申请公布日 (21)申请号 201410727954.2(22)申请日 2014.12.03G06F 17/50(2006.01)(71)申请人 中国航空工业集团公司第六三一研究所地址 710119 陕西省西安市锦业二路 15 号(72)发明人 郭鹏 李亚晖 牛文生 张亚棣叶宏(74)专利代理机构 西安智邦专利商标代理有限公司 61211代理人 胡乐(54) 发明名称一种需求模型到仿真模型的模型转换方法(57) 摘要本发明针对需求模型难以验证的问题,提出了一种从需求模型到仿真模型的转换方法,能够实现需求模型到仿真模型的自动转换。该转换方法,首先设计需求模型到仿真模型。
2、的转换框架,在此基础上,分别设计需求模型元模型,仿真模型元模型,以及需求模型元模型到仿真模型元模型的转换规则,最终实现需求模型到仿真模型的自动转换。该方法实现需求模型和仿真两种异构模型同构化,提高嵌入式软件开发效率,丰富并且完善模型驱动开发,也为飞行控制系统,高速铁路控制,机载航电系统等嵌入式软件开发提供了技术支持。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页 说明书5页 附图3页(10)申请公布号 CN 104484518 A(43)申请公布日 2015.04.01CN 104484518 A1/1 页21.一种需求模型到仿真模型的模型转换方法。
3、,包括以下主要步骤 :1) 建立需求模型到仿真模型的模型转换框架 ;模型转换框架分为三层 :元元模型层 (M3 层 )、元模型层 (M2)、模型层 (M1),元元模型能够生成需求模型元模型、仿真模型元模型以及 ATL 语言 ;需求模型元模型能够生成需求模型,仿真模型元模型能够生成仿真模型,ATL 语言能够生成 ATL 模型 ;2) 建立需求模型元模型在模型转换框架的元元模型的基础上,根据用户选择的需求模型的语义和语法,构造需求模型元模型,需求模型元模型分为三类 :数据类型元模型、对象元模型和连接元模型 ;3) 建立仿真模型元模型在模型转换框架的元元模型的基础上,参照需求模型元模型的结构,构造仿。
4、真模型元模型,仿真模型元模型也分为三类 :数据类型元模型、对象元模型和连接元模型 ;4) 建立需求模型元模型和仿真模型元模型的映射关系建立需求模型元模型和仿真模型元模型之间数据类型元模型的映射、对象元模型的映射和连接元模型的映射。2.根据权利要求 1 所述的需求模型到仿真模型的模型转换方法,其特征在于 :数据类型元模型表示需求模型中所涉及的数据类型 ;对象模型表示需求模型的客观对象,包括类和注释 ;其中类包括属性和操作,建立属性与数据类型、枚举类型的关联,建立操作与属性的关联 ;连接模型表示类之间关系、类与注释之间的关系,其中类之间关系包括组合、聚合、引用和继承,类与注释之间的关系采用注释链接。
5、描述 ;步骤 4) 建立的映射关系包括 :需求模型元模型的数据类型映射到仿真模型元模型的数据类型 ;需求模型元模型的类映射到仿真模型元模型的类,需求模型元模型的类的属性映射到仿真模型元模型的类的属性,需求模型元模型的类的操作映射到仿真模型元模型中类的操作,需求模型元模型中类与类之间的关系映射到仿真模型元模型中类与类之间的关系。权 利 要 求 书CN 104484518 A1/5 页3一种需求模型到仿真模型的模型转换方法技术领域0001 本发明涉及一种需求模型到仿真模型的模型转换方法。背景技术0002 需求建模是软件需求工程中的一项重要的活动,需求工程师通过采用不同的建模方法识别、理解、挖掘需求。
6、提供者对系统的期望,从而构建软件系统的结构模型,行为模型,或者其他各种对展示待开发软件的不同特性的模型。如何验证需求模型的正确性,可以采用形式化的方法,但是形式化的方法对难以理解、同时要求软件开发人员有较强的数学功底。为此我们采用仿真的方式验证需求模型的正确性。如何从需求模型过渡到仿真模型,通常是软件开发人员根据需求模型手工完成仿真模型。软件开发人员在软件开发过程中完成各种模型,这势必增加开发人员工作量 ;另一方面,由于都是手工完成各种模型,开发人员难以保证各类模型的一致性。因此,如何从需求模型转换到仿真模型已经成为软件开发的重要问题。发明内容0003 本发明针对需求模型难以验证的问题,提出了。
7、一种从需求模型到仿真模型的转换方法,能够实现需求模型到仿真模型的自动转换。0004 本发明提出了一种需求模型到仿真模型的转换方法,首先设计需求模型到仿真模型的转换框架,在此基础上,分别设计需求模型元模型,仿真模型元模型,以及需求模型元模型到仿真模型元模型的转换关系,最终实现需求模型到仿真模型的自动转换。0005 该需求模型到仿真模型的模型转换方法,包括以下主要步骤 :0006 1) 建立需求模型到仿真模型的模型转换框架 ;0007 模型转换框架分为三层 :元元模型层 (M3 层 )、元模型层 (M2)、模型层 (M1),元元模型能够生成需求模型元模型、仿真模型元模型以及 ATL 语言 ;000。
8、8 需求模型元模型能够生成需求模型,仿真模型元模型能够生成仿真模型,ATL 语言能够生成 ATL 模型 ;0009 2) 建立需求模型元模型0010 在模型转换框架的元元模型的基础上,根据用户选择的需求模型的语义和语法,构造需求模型元模型,需求模型元模型分为三类 :数据类型元模型、对象元模型和连接元模型;0011 3) 建立仿真模型元模型0012 在模型转换框架的元元模型的基础上,参照需求模型元模型的结构,构造仿真模型元模型,仿真模型元模型也分为三类 :数据类型元模型、对象元模型和连接元模型 ;0013 4) 建立需求模型元模型和仿真模型元模型的映射关系0014 建立需求模型元模型和仿真模型元。
9、模型之间数据类型元模型的映射、对象元模型的映射和连接元模型的映射。说 明 书CN 104484518 A2/5 页40015 上述数据类型元模型表示需求模型中所涉及的数据类型 ;0016 对象模型表示需求模型的客观对象,包括类和注释 ;其中类包括属性和操作,建立属性与数据类型、枚举类型的关联,建立操作与属性的关联 ;0017 连接模型表示类之间关系、类与注释之间的关系,其中类之间关系包括组合、聚合、引用和继承,类与注释之间的关系采用注释链接描述 ;0018 步骤 4) 建立的映射关系包括 :需求模型元模型的数据类型映射到仿真模型元模型的数据类型 ;需求模型元模型的类映射到仿真模型元模型的类,需。
10、求模型元模型的类的属性映射到仿真模型元模型的类的属性,需求模型元模型的类的操作映射到仿真模型元模型中类的操作,需求模型元模型中类与类之间的关系映射到仿真模型元模型中类与类之间的关系。0019 本发明具有的优点 :0020 本发明的模型转换技术遵循对象管理组织提出的模型驱动架构标准 , 从而避免了对特定平台和语言的依赖,具有通用性和重用性。0021 另一方面,本专利实现需求模型到仿真模型两种异构模型的自动转换,代替了从需求模型到仿真模型的手工转换,节省了人力成本,提高了软件开发效率。附图说明0022 图 1 为模型转换框架。0023 图 2 为 KM3 元模型结构。0024 图 3 为 UML 。
11、状态图元模型。0025 图 4 为 Stateflow 元模型。0026 图 5 为自动飞控软件状态图。0027 图 6 为 Simulink 模型。具体实施方式0028 本发明的具体步骤如下 :0029 1 建立模型转换框架0030 模型转框架如图1所示,分为三层。最顶层M3层是元元模型层,M2是元模型层,M1是模型层。按照模型驱动理论中各类模型间的关系,元元模型可以生成元元模型和元模型,根据元模型可以生成模型。元元模型可以通过自身定义,同时可以生成需求模型元模型、仿真模型元模型、ATL 语言。需求模型元模型生成需求模型,仿真模型元模型生成仿真模型,ATL语言生成ATL模型。对于使用者而言,。
12、只需要输入需求模型,通过一系列转换,自动转换成仿真模型。0031 2 建立需求模型元模型0032 在模型转换元元模型的基础上,根据用户选择的需求模型的语义和语法,构造需求模型元模型。需求模型分类三类,数据类型模型、对象模型和连接模型。0033 数据类型模型表示需求模型中所涉及的数据类型,例如 boolean,double,single,int8,uint8,int16,uint16,int32,and uint32 等 ;0034 对象模型表示需求模型的客观对象,包括类和注释 ;其中类包括属性和操作,建立说 明 书CN 104484518 A3/5 页5属性与数据类型、枚举类型的关联,建立操作。
13、与属性的关联 ;0035 连接模型表示类之间关系、类与注释之间的关系,其中类之间关系包括组合、聚合、引用和继承,类与注释之间的关系采用注释链接描述 ;0036 提取需求模型元模型时,仅关注和仿真相关的需求模型,换句话说,这里的需求模型元模型只是需求模型的子集。如果仿真模型中某个元素无法与需求模型中的某一元素对应,需要对需求模型建立 Profile( 扩展 ),建立与仿真模型对应的需求模型元素,使它们之间可以映射。0037 3 建立仿真模型元模型0038 这里仿真模型元模型的建立过程与需求模型元模型类似,但是仿真模型元模型不需要 Profile。0039 4 建立需求模型元模型和仿真模型元模型的。
14、映射关系0040 第二、三步建立的元模型的目的是为了使它们之间存在有映射关系。映射关系也包含三部分,需求模型元模型的数据类型映射到仿真模型元模型的数据类型 ;需求模型元模型的类映射到仿真模型元模型的类,需求模型元模型的类的属性映射到仿真模型元模型的类的属性,需求模型元模型的类的操作映射到仿真模型元模型中类的操作,需求模型元模型中类与类之间的关系映射到仿真模型元模型中类与类之间的关系。0041 以下以 UML 需求模型到 Simulink 仿真模型的转换为例进一步详述本发明。使用KM3语言建立模型转换框架元元模型,在此基础上建立UML需求元模型、Simulink仿真元模型,进而撰写 UML 到 。
15、Simulink 转换规则。0042 1 转换框架元元模型 -KM30043 KM3为元元模型如图2所示。KM3元模型结构中,KM3元模型由一系列Package(包)构成,一个 Package 由一些抽象 ModelElement( 模型元素 ) 实体组成。ModelElement 是一个元模型,拥有 name 属性,其他元素都继承于 ModelElement。ModelElement 的子类包括 Enumliteral( 枚举值 )、Classifier( 分类器 )、Annotation( 注释 )、DataType( 数据类型 )、TypedELement( 类元 ) 等。Annotat。
16、ion 由一系列 AnnotationLink( 注释关联 ) 组成。Enumeration(枚举)至少包括一个Enumliteral。DataType(数据类型)和Class(类)继承于Classifler。Classifler和Class至少包括一个TypedELement类型元素。TypedElement定义了 lower、upper、isOrdered 和 isUnique 属性。StucturalFeature( 结构特征 ) 和Operation( 操作 ) 继承于 TypedElement。0044 2 UML 状态机元模型0045 状态机是一个类 / 对象可能经历的所有历程的模。
17、型图。状态机由对象的各个状态和连接这些状态的转换组成。每个状态对一个对象在其生命期中满足某条件的一个时间段建模。当一个事件发生时,它会触发状态间的转换,导致对象从一种状态转化到另一新的状态。当转换开始时,会发生与转换关联的某种效果 ( 动作或者活动 )。0046 根 据OMG Unified Modeling LanguageTM(OMG UML),Superstructure版 本2.4.1。UML 状态机的简化元模型如图 3 所示。一个状态机由仅有的一个顶级的状态机元素,一系列状态元素和转移元素组成。ModeleElement 是所有元素的基类。其中虚状态、状态、终止状态继承顶点状态。初始。
18、状态、连接状态、分叉状态继承虚状态。顶点状态由执行活动、进口活动、出口活动组成。转移由监护条件、触发条件、效果组成。顶级状态和转移存说 明 书CN 104484518 A4/5 页6在对应关系,一个顶级状态对应一个或者多个转移。0047 3 Simulink 状态机元模型0048 Stateflow 是 MATLAB 产品体系中非常重要的一个分支,它是在基于框图的动态系统建模仿真环境。Stateflow能够对基于有限状态机理论的事件驱动系统进行建模和仿真,也能够针对复杂逻辑系统进行建模和仿真。UML有严格的语法、语义,然而Stateflow不同,需要对其元素仔细分析,从而创建 Stateflo。
19、w 元模型。0049 Stateflow 的基本概念包括 :0050 1) 状态机 (State Machine) 包含在模型中的所有 Stateflow 块的集合。一个Simulink 模型中包含的所有 Stateflow 模型统称为一个 Stateflow 状态机 ;0051 2) 图块 (Chart) 包含状态图的模块,即模型中的 Chart。0052 3) 框图 (Diagram) 状态图的图形化表述,即具体的图块所包含的内容。0053 4) 状态是 Stateflow 状态图中最重要的元素之一,在有限状态机里,状态描述的是系统的一种模式。状态具有布尔行为,可以把状态看作为高级编程语言。
20、中的布尔类型变量,任何给定的时刻,状态要么是活动的要么是非活动的,不可能出现第 3 种情况。0054 5) 状态动作的关键字主要有 2 种,分别为 entry,当状态被激活时执行相应的动作。During,当状态保持其活动状态时执行相应的动作。0055 6) 转移是 Stateflow 框图中最常见的图形元素之一,转移描述的是有限状态系统内的逻辑流。当转移发生时,源状态变为非活动的状态,目标状态变为活动的状态。0056 7) 状 态 转 移 标 识 的 一 般 格 式 为 :eventconditioncondition_action/transition_action。事件是 Stateflo。
21、w 非图形对象的一种。在有限状态机中,只有在事件发生时,才可能去执行相应的转移。“”中的内容是条件,用于转移决策的逻辑判断。只有在相应的事件发生且条件也满足时,相应的转移才可能执行。紧接在条件后面“”中的内容就是条件动作,条件动作是在条件满足时就立即执行的某些表达式,例如赋值运算等 “。转移动作是整个转移标签的最后一个部分,位于“/”后面的内容都是转移动作。转移动作只有在整个转移通路都有效时才能够执行。0057 依据上述 1)-7) 内容,本文设计出 Stateflow 的元模型,如图 4 所示。0058 4 元模型间的映射规则0059 由 UML 状态机元模型和 Stateflow 元模型可。
22、知,二者具有较高的相似性。都是由状态、转移、状态动作、时间、效果、条件等元素组成。依据 UML 状态机和 Stateflow 元模型,设计 UML 状态机和 Stateflow 的映射规则 :0060 U2S1 :ModelElement 映射到 SimulinkElement0061 ModelElement 是 UML 状态机所有元素的基类,对应的设计 Stateflow 所有元素的基类 SimulinkElement。ModelElement 映射到 SimulinkElement。0062 U2S2 :StateMachineDiagrams 映射到 StateMachine0063 。
23、对 于 状 态 机 这 个 词,UML 和 Simulink 的 理 解 略 有 偏 差。UML 的StateMachineDiagram 由 StateMachine 组成。Simulink 的 StateMachine 由 Chart 组成。因此 UML 的 StateMachineDiagram 与 Simulilnk 的 StateMachine 含义基本相同。0064 U2S3:StateMachineDiagram 映射到 Chart0065 与 U2S2 不同,这里的 StateMachineDiagram 指单个状态图,对应到 Simulink 中的说 明 书CN 104484。
24、518 A5/5 页7Chart。0066 U2S4 :StateMachine 映射到 State0067 UML 的 StateMachine 由 State、Transition 等组成,Simulink 的 State 中也包含嵌套 State、Transition 等元素。0068 U2S5 :State 映射到 State0069 与 U2S4 不同,这里 UML 的 State 指非嵌套的状态。UML 和 Simulink 中的 State 含义相同,可以直接映射。0070 U2S6 :Transition 映射到 Transition0071 UML 和 Simulink 中的。
25、转移含义基本相同,直接映射。0072 U2S7 :DoActivity 映射到 DoActivity0073 UML 和 Simulink 中的持续活动含义基本相同,直接映射。0074 U2S8 :Entry 映射到 Entry0075 UML 和 Simulink 中的进口活动含义基本相同,直接映射。0076 U2S9 :Conditon 映射到 Condition0077 UML 和 Simulink 中的条件含义基本相同,直接映射。0078 U2S10 :Effect 映射到 Effect0079 UML 和 Simulink 中的效果含义基本相同,直接映射。0080 U2S11 :Tr。
26、igger 映射到 Trigger0081 UML 和 Simulink 中的事件含义基本相同,直接映射。0082 本发明以自动驾驶仪系统的自动飞控软件为模型,构建 UML 需求模型到 Simulink仿真模型转换场景,作实例说明。具体步骤如下 :0083 (1)UML 模型0084 使用 UML 状态图对自动飞控软件的状态进行建模。根据自动驾驶仪当前的故障类别,自动驾驶仪的状态分为正常状态、瞬时故障状态、伪正常状态、永久故障状态。其中根据故障的危险程度,永久状态又分为第一类永久状态、第二类永久状态、第三类永久状态。具体的状态图如图 5 所示。0085 (2) 模型转换引擎配置0086 利用 。
27、Eclipse 中 ATL 插件完成 UML 状态机到 Stateflow 模型转换的配置。在运行配置界面需要添加 ATL 映射规则 (.atl),UML 元模型,Simulink 元模型 (.ecore),源模型(.xmi),目标模型(.xmi)的相关路径。需要注意的是本文使用的UML源模型是uri:http:/www.eclipse.org/uml2/3.0.0/UML,Matlab 版本是 2011a。源模型和和目标模型都是标准XMI 格式。0087 (3)Simulink 模型0088 使用脚本语言对模型转换引擎生成的 Simulink XMI 文件进行解析生成图 6 所示的 Simulink 模型。说 明 书CN 104484518 A1/3 页8图1图2说 明 书 附 图CN 104484518 A2/3 页9图3图4说 明 书 附 图CN 104484518 A3/3 页10图5图6说 明 书 附 图CN 104484518 A。