基于面向对象Petri网的UML建模技术
折建峰1,简炜2
1武汉科技大学计算机科学技术系,武汉(430081) 2湖北汽车工业学院计算机科学技术系,十堰(442002)
E-mail:jf_she@163.com
摘 要:UML作为通用面向对象建模语言缺乏形式化的模型验证和分析工具,Petri网有严格的数学定义和多种模型的验证方法。本文提出一种从UML的状态图获取单个的对象网模型(ONM)算法,依据UML的协作图将单个ONM整合为一个系统层面的有色Petri网。 关键词:面向对象,有色Petri网,状态图,协作图 中图分类号:TP31
1. 引言
面向对象的建模技术是将建模系统的属性映射为一组数据结构,系统与其环境的交互映射为一组操作,环境对系统的访问只能通过这组特定操作来进行。它是从组织结构上模拟客观世界,通过对构成客观世界的对象的抽象,给不同的对象赋予不同的属性和操作,为复杂的并发系统的建模提供了新的思考问题的角度[1]。由于它缺乏严密有效的分析和验证方法,本文提出了一种映射算法将UML模型转换为对象Petri网模型, 从而可以利用Petri网的分析方法来实现系统模型的验证。在对象Petri网模型中,对象的状态可由Petri网中库所中的托肯分布来表示,而对象的行为可由相应的Petri网中的变迁序列来模拟。从实质上讲,Petri网的托肯驱动机制与面向对象的消息驱动机制都是基于事件的驱动方式。
2. Petri网和UML建模技术分析
UML作为一种可视化、通用的离散型面向对象建模语言,主要采用图形符号表示系统中的对象以及对象之间的关系,并能够从不同的角度描述所建模系统。UML具有面向对象方法的封装和继承等特点,因此,有利于实现系统的模块化和模型重用。但是,它的不足之处是没有能够形式化的分析和验证所建立的系统模型的方法和相应的工具,因而难以对系统模型进行分析验证。
而Petri网建模技术是以图形化的数学工具库所和变迁来描述具有并发、冲突、分布式、非确定性等特性的复杂系统[2]。Petri网建模技术有严格的数学基础并有多种形式化的分析和验证的方法和工具。但是,它主要的不足表现在复杂系统的状态空间“爆炸”问题没有很好的解决和没有模块化封装的思想。
3. 对象Petri网模型形式化描述
基于以上简单讨论的两种建模技术,可以看出单一的建模技术存在局限性,无法很好地完成从系统建模、分析到验证的全部任务。改进和扩展单一的建模技术,将面向对象建模技术与Petri网建模技术相结合的面向对象Petri网,综合两种建模技术的优势,为解决大规模复杂系统建模问题提供了有效途径。
定义:一个对象Petri网的模型可表示为一个三元组:(LM,EGM,IA)LM是一个对象在其生命周期内状态转移的模型(通常由有色Petri网来描述)可以抽象为一个更高层次的变迁EGM是一个事件触发和管理机制。IA是一个接口弧集合包含了对象于其他对象的交元素[3]。
互,IA=ITA∪OTA ITA为输入弧集,OTA为输出弧集。
-1-
http://www.paper.edu.cn
EGM机制定义了三种库所分别为:输入库所(IP)、输出库所(OP)和事件分发库所(ED)。其中输入库所(IP)存放发往对象网ONM本身的事件托肯,输出库所(OP)存放发给其他ONM的事件托肯,事件分发库所(ED)有两个功能:1)生成内部事件托肯;2)分发不同颜色的事件托肯。
定义:对象Petri网的事件托肯的结构用 定义:ONM中事件库所只存放颜色集为 定义:事件分发库所ED是对象生存周期模型LM的输出事件库所,事件库所IP是LM的输入事件库所。 4. 状态图到平滑状态机的转换规则及算法 4.1 转换规则 这里首先讨论从UML状态图中得到ONM。状态图由状态和转换弧组成,状态包括了简单状态和复合状态,转换弧上标有事件或者操作。为了对状态图中定义的操作和事件的建模,引入了事件触发器和相关的转换规则。为此定义事件触发器为产生相应事件的函数。 规则1:状态图中转换弧上的操作被映射为事件触发器,记为TRG(Y),表示对象在状态转移过程中产生输出事件Y。 规则2:转换弧上的型如WHEN(X)或IF(X)的监护条件可映射为当表达式为真时所产生的事件X。 规则3:状态的入口操作X和出口操作Y分别表示进入某一个状态和推出某个状态时执行的动作可被映射为相应的事件函数TN(X)和OUT(Y)。 规则4:状态图中的组成状态须分解为由一系列并发或顺序子状态组成的平滑状态机。 4.2 转换算法描述 通过上面的转换规则,可以把对象的状态图转换成平滑状态机,然后从该状态机中得到ONM中的用有色Petri网描述的对象生命周期模型LM。状态机中的状态直接对应Petri网中的库所,状态机中的转换直接对应Petri网中的变迁。在UML中,协作图表示了对象间的交互作用,它清楚地表示出了对象间的关系。由面向对象网模型(ONM)的定义,我们可以通过状态图产生ONM,然后由协作图得到系统层面的对象网模型。以下描述具体的算法流程。 算法1:从状态图到面向对象网模型ONM的转换 输入:一个UML状态图S。 输出:一个面向对象网模型ONM。 BEGIN 1. 2. 3. 4. 5. 置ONM为一个LM为空(在LM中没有变迁和库所)的对象网模型。 设SM为一个平滑状态机,包含了状态图S的除了复合状态以外所有状态。 对于任何s∈S,当s是一个顺序的组合状态时,根据下面的算法2将其转换对于任何s∈S,当s是一个并发的组合状态时,根据下面的算法3将其转换将所有状态图中与转换弧相关联的操作转换成平滑状态机SM中相应的事 -2- 为状态机FSM,并将其置入SM中。 为状态机FSM,并将其置入SM中。 http://www.paper.edu.cn 件发生器。 6. 7. 8. 9. 将S中每个状态的入口操作X转换为SM中对应状态的事件发生器IN(X)。 将S中每个状态的出口操作Y转换为SM中对应状态的事件发生器依据SM中状态和转换弧的连接方式连接相应的ONM中的库所和变迁。 如果S中的一条弧上标有触发器事件(代表由事件发生而引起的状态转 OUT(Y)。 换),则在ONM中,为相应变迁生成指向输出库所IP的弧。 10. 对ONM中的每个变迁t产生一条输出弧指向ED,如果以下两个条件成立时:1)在SM中对应于t的输入库所的状态,包含一个退出事件;2)在SM中对应于t的输出库所的状态,包含一个进入事件。 END 算法2:转换顺序组合状态图为平滑状态机 输入:一个UML状态图S包含了一个顺序的组合状态SCS 输出:平衡状态机FSM BEGIN 1. 2. 中。 3. 4. 换弧。 5. END 算法3:转换并发组合状态图为平滑状态机 输入:一个UML状态图S包含了并发组合状态CCS 输出:平衡状态机FSM BEGIN 1. 2. 中。 3. 4. 5. 6. 7. END -3- 将状态机FSM初始化为不包含任何状态和转换。 对于任何状态s∈S且s≠SCS,将状态s和它的转换弧直接加入状态机FSM如果x∈S且x=SCS,则将状态x和与它关联所有转换弧加入状态机FSM中。 为状态s≠SCS到状态x∈SCS有转换弧增加从s∈FSM到x∈FSM的入口转如果每个状态x∈SCS到状态s≠SCS有转换弧相连,则为每个x∈FSM到 s∈FSM增加一条出口转换弧。 将状态机FSM初始化为不包含任何状态和转换 对于任何状态s∈S且s≠CCS,将状态s和它的转换弧直接加入状态机FSM如果y∈S且y=CCS,则把每条独立路径上的所有状态加入到FSM中。 在FSM中加入一个分叉状态,并从分叉状态到每个独立路径的初试状态在FSM中加入一个合并状态,并从每个独立路径的结束状态到合并状态对于任何s∈S且s≠CCS,从s到CCS有弧连接,则在FSM中从s到分叉状态对于任何s∈S且s≠CCS,从CCS到s有弧连接,如果该转换弧上没有触发 增加一条转换弧。 增加一条转换弧。 加入一条转换弧。 器,则在FSM中从合并状态到s加入一条转换弧。 http://www.paper.edu.cn 5. 系统层面的对象Petri网的获取 基于以上的算法描述可得到单个对象所对应的对象网模型。在UML中,协作图清楚地表示了对象之间的交互关系[4],依据对事件在状态图和协作图中的命名保持一致,对象间消息的交互就表现为相应ONM模型间发送或接收外部事件托肯的行为。对象间的消息交互映射为从事件发送方ONM的输出变迁弧集合(OTA)到事件接收方ONM模型的输入变迁弧集合(ITA)的外部事件托肯流,连接得到系统层面的有色Petri网。 6. 结论 本文主要讨论了如何从UML状态图得到对象网模型,进而根据对象在协作图中的关系提出了构建系统层面的有色Petri网的方法,主要体现了在Petri网中的面向对象的封装思想应用。 参考文献 [1] C.A.Lakos. Object Petri nets – Definition and Relationship to Colored Nets[C]. Tech- Report TR 94-3, Computer Science Dept, University of Tasmania,2002.80-100. [2] 乐晓波,汪琳,庹清.面向对象的Petri网建模技术的研究[J].计算机工程,2005,5(10):25-29. [3] M.Elkoutbi, R.F.Keller. Modeling Interactive Systems with Hierarchical Colored Petri Nets[C]. Proc. of the Conference on High Performance Computing, 1998.31-32 [4] 魏青云,王丁,周正康,等.基于OPN的面向对象软件系统建模与实例[J].计算机工程,1997,19(12):85-87. Modeling Techniques for UML Based on Object-oriented Petri Nets She Jianfeng1, Jian Wei2 1 Department of Computer Science and Technology ,Wu Han university of science and technology , Wuhan,Hubei (430081 ) 2 Department of Computer Science and Technology,HuBei university of automotive industry ,Shiyan,Hubei (442002) Abstract UML, as a general object-oriented modeling language, lacks formalized tools for making analysis and validation of the models. Petri Nets is a well-defined mathematic modeling language which has many strict validating methods. This paper describes an arithmetic of conversion of Statechart Diagram to Object Net Model (ONM), and how to compose those single ONMs as a system-level Petri Nets. Keywords: Object-oriented; Petri net; Statechart Diagram Collabo;ration Diagra 作者简介: 折建峰(1980-),男,陕西清涧人,在读硕士,主要研究方向为Petri网、智能控制等; 简炜(1961-),男,湖北人,教授,主要研究方向系统工程,Petri网理论等。 -4- 因篇幅问题不能全部显示,请点此查看更多更全内容