[发明专利]一种从UML活动图到Event-B模型的转换方法有效
申请号: | 201610153720.0 | 申请日: | 2016-03-17 |
公开(公告)号: | CN105787198B | 公开(公告)日: | 2018-11-02 |
发明(设计)人: | 张虹;孙伟瑄;胡思远 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F17/50 | 分类号: | G06F17/50 |
代理公司: | 北京永创新实专利事务所 11121 | 代理人: | 祗志洁 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明是一种从UML活动图到Event‑B模型的转换方法,属于计算机软件工程领域。确定UML活动图的模型元素:发起活动的对象、基本活动和活动流;建立对象集合和活动集合,建立不变式以保证每个活动只属于一个对象,将活动的前置条件和后置条件在event的触发条件guards和动作actions中分别声明,对活动流进行映射,包括顺序流、分叉与汇合、分支与合并三种活动流。本发明方法将UML活动图转换为Event‑B模型,通过Event‑B的建模平台对转换后的模型进行形式化验证,可发现UML模型中存在的问题,同时针对作为形式化语言Event‑B不便于建模的问题,实现了利用UML活动图辅助其建模的方法。 | ||
搜索关键词: | 一种 uml 活动 event 模型 转换 方法 | ||
【主权项】:
1.一种从UML活动图到Event‑B模型的转换方法,其特征在于,实现步骤如下:步骤1,确定UML活动图的模型元素,包括发起活动的对象、基本活动和活动流;步骤2,在Event‑B模型中对UML活动图中参与活动的对象进行声明;对UML活动图中参与活动的所有对象建立对象集合OBJ_SETS,对象集合中元素为对象名称,将对象名称作为常量进行声明;步骤3,在Event‑B模型中对UML活动图中的基本活动进行映射;(3.1)对UML活动图中的所有活动名称,建立活动集合ACTIVITY_SETS,活动集合中元素为活动名称,将活动名称作为常量进行声明;(3.2)定义对象变量obj,表示当前活动所处的泳道,声明对象变量obj∈OBJ_SETS;(3.3)定义活动变量activity,表示当前进行的活动,声明活动变量activity∈ACTIVITY_SETS;(3.4)在Event‑B模型的Machine里建立不变式,保证每个活动只属于一个相应的对象;(3.5)将UML活动图中的活动的前置条件在Event‑B模型中的事件event的触发条件guards中进行声明,将UML活动图中的后置条件在动作actions中进行声明;步骤4,在Event‑B模型中对UML活动图中的活动流进行映射;UML活动图中的活动流包括有顺序流、分叉与汇合、分支与合并;(4.1)顺序流的映射规则是:声明控制变量sequence,利用控制变量sequence驱动活动按照顺序流顺序执行,具体是:当活动进入初始状态时,将sequence置为1;对于顺序执行的第i个活动,在活动的触发条件中增加sequence的值为i的条件,i为正整数,当活动中的动作执行完成后,追加sequence的值自增1的动作;(4.2)分叉与汇合的映射规则是:声明用于描述并行动作的动作变量和对象变量,声明两个控制变量sequence和sequence_2;使用控制变量sequence和sequence_2在Event‑B模型实现并发的逻辑为:a.当活动流将要进入分叉时,在将要进入分叉的上一个活动中追加动作,将sequence_2置为1;b.对于分叉中的一支,继续用sequence作为触发条件,控制活动的顺序执行;对于分叉中的另一支,用sequence_2作为触发条件,控制活动的顺序执行;c.在活动流即将汇合时,在汇合后的下一个活动中用两个控制变量sequence和sequence_2同时作为触发条件,表示进入该活动的条件是分叉中的并发事件都已执行完毕;(4.3)分支与合并,分为下面两种情况:(4.3.1)当活动执行完毕后,将进入一个分支判断,根据判断结果的不同,进入不同的活动;该情况的映射规则为:声明判定条件变量decision∈BOOL,当判定条件为真时,decision=True,当判定条件为假时,decision=False;将判定条件对应的decision的取值加入对应要进入的活动的触发条件中;(4.3.2)当活动1执行完毕后,将进入一个分支判断,如果判断条件为真,继续执行活动2,如果判断条件为假,则返回活动1重新执行,直到判断条件为真后才离开活动1;该情况的映射规则为:按照(4.3.1)中声明判定条件变量decision,当判定条件为真时,decision=True,当判定条件为假时,decision=False;增加辅助事件Loop_Branch,其中的动作为将控制变量sequence的值减1,在事件event的触发条件中加入decision=False,通过辅助事件Loop_Branch使活动流在判定条件为假时自动回到活动1中重新执行。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610153720.0/,转载请声明来源钻瓜专利网。