在系统工程的生命周期中存在一个系统概念设计的阶段,对需要开发的系统进行初步的结构与功能设计,其目的是开发一种能够反映用户对系统的需求和规格的功能原型。在概念设计阶段所做的修改与后期具体设计和测试阶段的修改相比,花费的成本更少,对系统开发产生的影响更大,因此,如何在系统工程概念设计阶段建立有效的概念模型并进行分析是一个重要的问题。研究者们提出了许多用于概念建模的图形化建模语言来建立概念模型并分析系统的结构和行为,如统一建模语言(UML)、系统建模语言(SysML)、对象过程方法论(OPM)等。UML/SysML在分离的视图中建立系统结构和行为的模型,而OPM建立整体的层次模型来描述系统,将系统视为一个整体,更加符合系统工程的思想。OPM模型的动态逻辑可以通过推演进行检查,在一定程度上能够解决描述系统的动态行为和模型有效性验证的问题,适合进行概念模型的建模与分析。OPM的不足之处是不能完整描述系统定量的特点,也不能支持精确的仿真和分析,现有一些研究提出了不同的方法来解决OPM定量计算能力不足的问题[1-3]。其中将OPM转换为着色Petri网(CPN)是一种良好的思路,能够结合OPM对系统的描述能力与CPN的仿真分析能力,但已有的方法需要对OPM进行扩展,加入由CPN语义定义的额外的信息,同时没有提出将多层次的OPM模型转换为有子网的CPN模型的具体方法。针对上述方法的不足,本文在已有的研究基础上提出了一种新的OPM到CPN的转换方法,使OPM在概念设计中能够进行定量的分析与仿真。
1OPM与CPN
1.1OPM介绍
对象过程方法论(OPM)是由Dori提出的一种整体建模语言[4],它结合了面向对象和面向过程的建模范式,基于整体的模型同时描述系统结构和行为方面的特点,能够用于对系统的理解和开发。OPM主要的建模元素是实体和连接。实体包括状态和事物(Thing),事物是对象和过程的总称。对象是在特定时间与地点以物理或信息形式存在的事物;过程是能够产生、消耗或影响单一或多个对象的事物,用来描述对象的变化;状态是对象在特定时间点可能处于的情形,是隶属于对象的实体。连接包含结构性连接和过程性连接:结构性连接表示对象之间或过程之间静态的持续关系;过程性连接表示系统的动态行为。OPM管理系统复杂性的方式是通过对细节的分解,而不是将不同的方面分解为不同的视图,因此建立的OPM模型是整体的层次模型而不是分布在各个视图的模型。OPM包括两种表达方式:图形表达和文本表达,它们在语义上是完全等价的。对象过程实例工具(OPCAT)[5]是支持使用OPM进行系统开发的软件环境。
1.2CPN介绍
着色Petri网(CP-netsorCPN)是用于离散事件系统设计、规范、仿真和验证的图形化语言[6]。它结合了Petri网和编程语言的能力,可建立层次模型。CPN的建模元素是库所、变迁、令牌和弧。库所描述系统可能处于的状态;变迁描述系统的行为,即状态的变化;弧描述状态在变迁发生时变化的方向,可由弧上的表达式描述具体的条件;每一个库所包含一些令牌,令牌带有给定类型的数据值,这些数据值的类型即颜色集。颜色集的定义可以使令牌之间相互区分,这也是CPN与Petri网最显著的区别。CPNTools是支持编辑,仿真和分析CPN的成熟的工具,其嵌入语言是标准ML语言。CPNTools有不同的仿真模式,可运用监视器观察、干预、控制或修改仿真[7]。在分析方面,CPNTools支持状态空间分析和表现分析。
2OPM到CPN的转换方法
OPM和CPN均为图形化的建模语言,并有一定的联系。CPN主要描述了系统状态的变化,而OPM也能描述系统的状态,没有定义状态的对象可以视为该对象处于存在状态,OPM中的过程能改变对象及其状态。OPM与CPN不同,没有精确的数学定义,难以用严格的数学方法定义转换方法,所以将OPM和CPN的建模元素进行映射,建立一系列的规则实现转换,这样由建模元素构建的OPM模型可以转换为CPN模型。考虑到OPM模型层次性特点,在转换过程中将转化规则分为两个部分:第一部分是实体与连接的转化规则,将单幅对象过程图中描述的实体及其关系转换为CPN;第二部分是层次的转换规则,将OPM对象过程图的层次关系转换为CPN及其子网之间的关系。通过两个部分规则的转换可以实现层次性OPM模型转化为CPN模型。该转换方法通过程序将OPCAT的xml文件按转换规则自动变为CPNTools的xml文件,实现了OPM模型到CPN模型的自动转换。
2.1实体与连接的转换规则
OPM中的实体包括对象、过程和状态。OPM中的过程均转换为CPN中的变迁,因为它们均描述了系统的变化。所有的状态均转换为库所,以“O-S”的形式命名,其中“O”表示状态所属的对象的名称,“S”表示状态的名称。对象的转换分为3种情况处理:1)连接到过程且不包含状态的对象,转换为库所;2)连接到过程且包含一个或多个状态的对象,不转换为库所,对象的连接以连接的转换规则进行处理;3)没有过程性连接的对象,无需映射到CPN。因为CPN主要针对系统的行为进行仿真与分析,所以OPM中的结构性连接无需映射到CPN。过程性连接可以划分为4种类型并分别进行转换:消耗类连接,手段类连接,结果类连接和过程类连接。消耗类连接包括消耗连接和消耗事件连接,消耗类连接是从一个对象或状态连接到一个过程,映射为库所到变迁的弧。一种特殊的情况是连接的起点为对象并包含n个状态(n>1)。首先将对象的n个状态转换为库所,过程转换为变迁。然后建立n条弧,并在所有弧之间添加亦或的逻辑关系。采用亦或关系而不是或关系,是因为亦或关系固定了变迁消耗的令牌的数量。亦或的逻辑关系是通过CPN的结构表示的,建立n个新的变迁命名为“Pixorrelation”,其中“Pi”表示第i个状态转换的库所的名称(i=1…n)。n条弧的起点为“Pi”,终点为建立的新变迁“Pixorrelation”。最后,再建立一个以原对象名称命名的新库所,将所有的“Pixorrelation”单向连接到的该库所,并将该库所单向连接到过程转换的变迁,便完成了连接的起点为对象并包含n个状态(n>1)的消耗类连接的转换,转换的结果见表1。如果n=1,则只需将连接的起点改为该状态转换的库所。手段类连接包括实体连接、手段连接、影响连接、手段事件连接和条件连接。主体连接和影响连接是从对象到过程的连接,其他的连接是从对象或状态到过程的连接。这些对象和状态可以触发过程,而自身不会被过程转变,所以手段类连接映射为库所和变迁之间双向的弧。如果连接的起点是有n个状态的对象,其转换规则和消耗类连接相似,不同之处是建立的n条弧是双向的,转换的结果见表1。结果连接是从过程到对象或状态的连接,映射为从变迁到库所的弧。如果连接的终点是带有n个状态的对象(n>1),首先将过程转换为变迁,n个状态转换为库所。然后建立n条弧,弧的起点为过程转换的变迁,弧的终点是对象的第i个状态所转换的库所(i=1…n)。这些弧之间添加用亦或的逻辑关系,由弧表达式表示。在使用弧表达式之前,需要事先声明一个新的整数类型的颜色集,以“Xor-O”命名,其中“O”是连接对象的名称。颜色集的取值范围为0到n-1。此外声明一个该颜色集类型的变量,以“xor-O”命名,其值代表了对象的一个特定状态。弧表达式为“ifxor-O=jthen1`nelseempty”,其中j=0…n-1,代表对象第j+1个状态。一旦变迁点火,变量“xor-O”将被赋予一个随机确定的值,如果它等于代表的某一状态的值,就会将令牌传递到该状态转换的库所中,通过弧表达式的条件,可以控制变迁只产生一个状态。表1展示了该转换规则的一个例子。过程类连接包括触发连接和异常连接,均为两个过程之间的连接。在转换过程中,两个过程转换为两个变迁,在两个变迁之间添加一个新的库所,以“T1Trigger-Event”或“T2-Exception”命名,其中“T1”和“T2”分别代表连接中起始过程和终点过程的名称。一个过程类连接将转换为起始过程到新增库所的弧以及新增库所到终点过程的弧,转换结果见表1。通过实体和连接的转换规则,可以将没有层次的OPM模型初步转换为CPN模型,并且该OPM模型与转换后的CPN模型在动态的逻辑上具有相同的含义。
2.2层次的转换规则
在OPM中,管理系统复杂性并建立层次模型的主要机制是放大/缩小,可以使在一个对象或过程内部一系列低层次细节的对象和过程可见/不可见。每一个放大的对象或过程会形成一个新的对象过程图(OPD),所有的OPD均由放大的对象或过程相互关联。在CPN中,建立层次模型的主要的机制是替代变迁。替代变迁是一个替代整个网络结构的变迁,和替代变迁关联的库所是槽库所,在被替代的网络中作为子网与父网通讯接口的库所称为端口库所。端口库所有输入、输出或输入/输出3种类型的标签,分别代表输入端口,输出端口或输入/输出端口。每一个子网的端口库所都与替代变迁的槽库所一一对应,其功能是相同的,作为父网与子网之间的连接。因为OPM中放大/缩小的机制优先在过程中使用,在层次转换规则中放大的过程会转换为替代变迁,而放大的对象表示的并不是系统动态行为的细节,所以将不会转换到CPN。将层次OPM模型转换为带有子网的CPN模型的规则如下:1)放大的过程转换为替代变迁。2)如果主过程,即放大的过程,包含一个或多个子过程,则CPN子网不包括由主过程转换而来的变迁,而仅仅包含所有子过程转换的子变迁。3)如果主过程转换的变迁没有包含在子网中,则所有连接到主过程的连接改为连接到子过程。连接按类型连接到第一个子过程或最后一个子过程。子过程的顺序按照连接的逻辑关系,在没有逻辑关系的情况下,根据它们所在的位置定义。OPD的时间线是从上到下执行的,第一个子过程在主过程内部的最上方,最后一个子过程在主过程内部的最下方。按照连接的类型划分:如果主过程是消耗类连接、手段类连接或过程类连接的终点,则将连接的终点改为第一个子过程;如果主过程是结果类连接或过程类连接的起点,则将连接的起点改为最后一个子过程。4)如果一个对象在父OPD和放大OPD中同时出现,且满足转换为库所的条件,则在父OPD中的对象转换为槽库所,在放大OPD中的对象转换为端口库所。端口库所的标签通过对象和主过程的关系进行定义。如果对象的连接类型仅为消耗类连接,则为输入端口;如果只有结果类连接,则为输出端口;如果包含手段类连接,则为输入/输出端口。同时出现在父OPD和放大OPD的对象所包含的状态也根据此条规则进行转换。5)如果消耗类连接和过程类连接同时出现在父OPD和放大OPD中,且在转换过程中需要新添加库所,则在进行层次转换过程中也需要考虑按照规则4)进行转换。由于CPN逻辑性要求,除了图形逻辑关系的描述外,还需要定义颜色集和库所的类型使CPN可以执行,因此需要一些额外的转换规则:1)声明默认的颜色集合和变量。默认的颜色集为“INT”,即整数类型;默认变量是“n”是“INT”类型的变量。所有的库所是INT类型,所有的弧表达式为“n”表示每一个令牌带有一个整数作为其数据值。用户也可以根据问题补充自定义的声明和弧表达式,以及相关参数。2)如果库所不包含任何由变迁连接到该库所的弧,则该库所拥有初始的令牌,默认标记为“1`1”,表示有一个数据值为1的令牌。由一个对象中所有状态转换的一系列的库所中,只有一个表示对象初始状态的库所会拥有初始令牌。3)如果一个过程没有输入,即不是任何连接的终点,将增加一个额外的库所,名为“PStart”,其中P表示过程的名称,库所会连接到该过程转换为的变迁,该库所拥有初始令牌。结合实体和连接的转换规则与层次的转换规则及补充规则,可以将复杂的层次的OPM模型转换为CPN模型,并实现逻辑的执行和验证。
3反潜作战系统案例研究
现代战争逐渐由传统的陆路作战转向海上、空中作战,反潜作战作为一种海上作战样式具有十分重要的作用。本文结合反潜作战系统的案例说明该转换方法在概念设计过程中的应用。在系统工程概念设计阶段,设计是一个从顶层开始的过程,从最初模糊的概念到最终包括细节的模型。反潜作战系统主要由情报侦察节点、指挥决策节点以及火力打击节点构成,所包含的作战活动主要是情报信息的采集、指挥决策和火力打击。随着作战活动的开展,会改变目标潜艇的状态,由此可以建立出反潜作战系统的初步的模型。图1是反潜作战系统的对象过程图,展示了作战节点、作战活动及其相互关系,包括状态的变化关系。在初步的模型的基础上,可以通过展开对象或过程进行进一步的设计。如情报侦察节点与火力打击节点又可以根据所处的物理位置的不同分为空中、水下和水面3部分。空中节点包括反潜机,水面节点包括水面舰艇,水下节点包括潜艇。图2展示了情报侦察节点放大对象过程图,可以进一步根据问题细化包含的武器型号数量等有关参数。每一个作战活动也可以进行放大,描述作战活动的细节。图3展示了火力打击这一作战活动放大对象过程图,其中火力打击可以进步分为跟踪搜索目标和打击目标两个子作战活动。依据这个简单的反潜作战模型,我们可以根据提出的从OPM到CPN的转换方法进行模型的转换,图4和图5是经过转换的后的反潜作战系统的CPN模型。由于CPNTools不支持中文,故转换时使用以英文命名的OPM模型。图4中将反潜作战系统的作战活动转换为变迁,并将放大火力打击活动转换为图5中的CPN子网。
4结束语
本文针对系统过程概念设计阶段的需求,提出了一种通过转换OPM建模元素到CPN,进而将OPM模型转换为CPN模型的方法。该方法不仅实现了从OPM到CPN基本实体和连接的转换,而且实现了层次模型特征的转换。通过该转换方法能够结合OPM的描述能力与CPN仿真分析的能力,支持系统工程概念设计阶段从概念到细节模型的开发与验证。在简单反潜系统中的应用展示了根据提出的方法将OPM建立的概念模型转换为初步的CPN仿真模型的结果。在某种程度上,它能使系统工程概念设计阶段的开发过程更加连续,并更为简单地开发、分析和验证模型。在未来,可以进一步提出转换OPM中时间概念的规则,建立时间CPN模型,并基于OPM元模型对转换方法进行形式化的定义。
作者:周文璐 李小波 杨峰 朱一凡 单位:国防科学技术大学信息系统与管理学院