没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记101(2004)129-153www.elsevier.com/locate/entcs端口状态机Vladimir Mencl1查尔斯大学数学与物理学院软件工程Malostranske namesti 25,118 00 Prague 1,CzechRepublicmencl@nenya.ms.m.cuni.cz摘要UML 2.0 [13]中的协议状态机(PSM)描述了操作调用的有效序列。为了支持建模组件,UML 2.0引入了一个与一组提供的和需要的接口相关联的端口不幸的是,PSM仅适用于单个接口,无论是提供的接口还是必需的接口;此外,嵌套调用不能用PSM建模此外,协议一致性的定义是相当模糊的,一般来说,对这种关系的推理是不可能的;因此,对组件组成的一致性的推理是不可能的。行为协议[17]通过一组跟踪捕获组件的行为提供了一个类似于正则表达式的文本在[1,17]中,合规关系和同意算子被定义为对组件组成的一致性进行推理;验证器工具[18]可用于合规关系。在本文中,我们提出了端口状态机(PoSM)来模拟端口上的通信。基于我们在行为协议方面的经验,我们将操作调用建模为两个原子事件请求和响应,允许PoSM在端口的提供和所需接口上捕获操作调用的交织和嵌套。PoSM的跟踪语义产生了一种正则语言。我们将行为协议的合规关系应用于PoSM,允许我们对软件架构中组件的行为合规性进行推理;现有的验证器工具可以应用于PoSM。关键词:行为规范,一致性推理,状态机,软件组件,组合,UML 2.01这项工作得到捷克共和国赠款机构项目102/03/0672的部分支助。研究结果将应用于OSMOSE/ITEA项目。1571-0661 © 2004 Elsevier B. V.根据CC BY-NC-ND许可证开放访问。doi:10.1016/j.entcs.2004.02.019130V. Mencl / Electronic Notes in Theoretical Computer Science 101(2004)129-1介绍1.1UML 2.0:状态机和协议状态机统一建模语言(UML)[12]的特点是基于广泛认可的状态图符号[8]的状态机;状态机的执行可以通过接受的事件和执行的动作(可能重叠)来观察。即将到来的新版本的标准,UML 2.0 [13],引入了状态机的专门化,即协议状态机(PSM),它可以用于对类解析器(通常是接口)上的操作调用的顺序进行建模。此外,UML 2.0引入了StructuredClassier和EncapsulatedClassier的概念,为内部结构建模和端口特性提供了支持;端口与一组提供的和需要的接口相关联。基于这些概念,一个组件可以被捕获在一个UML模型中,采用一个可能的分层组件模型;组件的外部通信被封装在组件的端口中在基于组件的软件工程中,为了验证软件体系结构和定义组件的可替换性,非常需要对软件组件的“兼容性”进行推理的基础UML显式地考虑请注意,UML只部分定义了协议一致性的语义(基于结构等价和转换上的匹配保护);在什么情况下可以声明协议一致性并不清楚,因此,自动决定协议一致性是不可行的。UML在组件框架中使用协议一致性,要求组件的实现(可能是指定组件的状态机)符合其所有接口的规范。此外,当所需接口IR连接到所提供的接口IP时,IR的PSM必须符合IP的PSM。然而,由于没有协议一致性的确切定义,验证组件架构是不可行的。1.2动机尽管UML中的状态机允许建模者清楚地相互交流思想,但它们不适合用作定义组件“兼容性”的基础组件的可观察行为通常被捕获为它所提供的和所需的接口上的通信V. Mencl / Electronic Notes in Theoretical Computer Science 101(2004)129-131[4、5、6、15]。然而,在UML状态机中,采用了显著不同的机制来指定接收和发送的事件。接收到的事件(在组件对应于所提供的接口上的操作的情况下)被捕获为与状态机的转换相关联的触发器。状态机使用活动来指定其对接收到的事件的响应(即,发送的事件和内部操作)。 一个Activity(原则上是一个类似于Petri网的抽象)由Action组成,其中一些Action对应于发送事件。然而,动作的范围相当大,并且不可能在触发器和与通信相关的动作之间建立一对一的对应关系;因此,不可能导出由状态机指定的通信组件(交换事件)的组合所导致的行为。协议状态机(又称PSM)是对(通用)行为状态机的一种细化,它对其转换施加了限制,要求没有活动与PSM的执行相关联。因此,PSM只能捕获一个“通信方向”。通信的指定与通信的方向无关,只有PSM描述的接口在端口中的使用方式决定了PSM捕获的事件是接收(对于提供的)还是发送(对于所需的接口); PSM不能描述所提供的和所需的接口上的事件的相互作用。UML状态机使用运行到完成语义,即,只有在状态机的转换完成之后才能处理另一事件因此,在执行方法(建模的,例如,作为转换的事件活动),状态机不能处理其它事件,即,不接受其它方法调用。因此,状态机不能捕获呼叫的交织(同时处理若干传入呼叫),并且也不能捕获嵌套呼叫(例如,回调或静态受限递归),它们也不支持(无限)递归。令人惊讶的是,PSM中的情况并不容易-因此,在正在处理的呼叫完成之前,不能接受任何呼叫,因此,对呼叫交织和嵌套呼叫的相同限制适用于PSM。因此,尽管PSM指定了操作调用序列,但由于PSM描述的序列中的事件(操作调用)的非原子性,与PSM描述的所提供和所需接口相关联的端口上的通信无法通过跟踪捕获以用于进一步的行为推理此外,这些描述无法捕获端口上调用的嵌套和交织,尽管这是组件中的常见模式132V. Mencl / Electronic Notes in Theoretical Computer Science 101(2004)129-通信考虑到缺乏定义良好的语义,根据PSM的行为建立严格定义的兼容性关系是不可行的其中,UML假设一种约束语言用于transi- tions的保护,但没有规定约束语言; OCL仅作为选项之一提供。此外,即使假设OCL是唯一允许的约束语言,这种关系也很难判定,原因如下:(i)OCL表达式可以访问分类器的属性,即, 具有潜在的无限状态空间的内部状态,以及(ii)事件可以被推迟并稍后处理,因此自动机得到堆栈(尽管没有给出检索顺序;因此事件池相当类似于袋子)。在这里,一致的意见是,只有在规则自动机(或其他具有同等表达能力的抽象在某些情况下,该关系对于上下文无关语法/堆栈自动机可能是可判定的;然而,实际上评估(计算上)这样的关系通常可能是不可行的。遵从关系通常在常规语言上定义,例如,可判定关系在[17]中定义;关于同意算子的工作[1]提供了一种替代方法[2]。请注意,[10,11]中采用的方法也使用了可以转换为有限LTS的状态图子集。如果可以为状态机描述的事件序列定义跟踪模型(这里,事件必须是原子的),则可以进行合规性推理。在定义行为合规性时,我们认为重要的是:(i)合规性仅基于所描述的行为,而不是规范的结构;(ii)合规性的定义是明确的;(iii)决定合规性可以自动化的方式实现。不幸的是,这些都不是UML2.0中定义的ProtocolConstructor的情况(如第1.1节中所讨论的)。1.1)。最后但并非最不重要的是,我们错过了PSM(专注于单个接口)和指定组件的行为状态机之间的描述层,即,适用于指定(组件的)端口上的通信的层。因此,我们发现的问题是:(i)UML中的状态机不能捕获发送和接收事件的交织。(ii)状态机的组合是不可能的(iii)状态机使用的形式不允许建立可判定的遵从关系。(iv)具体化机制捕获端口上的通信时缺少。1.3论文的目标和结构在[17]中,我们的研究小组开发了行为协议,将代理的行为建模为原子事件的痕迹。应用于SOFA组件模型V. Mencl / Electronic Notes in Theoretical Computer Science 101(2004)129-133[15],行为协议捕获由SOFA组件发出和处理的操作调用的顺序支持在操作调用中嵌套其他事件(也可能是操作调用)此外,还定义了一个可判定的顺从关系;有一个检验工具[18]可以用来检验这个关系。SOFA是一个层次化的组件模型;一个组件(无论是原始的还是组合的)通过一组提供的和需要的接口与它的相邻组件进行通信。软件组件的抽象,如SOFA中所考虑的,使用了一组与UML 2.0组件中可用的特性相当的特性。考虑到1.2节中讨论的动机,我们提出了端口状态机(PoSM),其目标如下:(1)提供一种符号,允许捕获(由组件的端口)发送和接收的事件的交织,并支持嵌套调用,以便可以使用基于原子事件的跟踪模型捕获行为。(2)此外,应该为PoSM定义可验证的合规关系。本文的结构如下:第2节介绍了端口状态机(PoSM),在第3节中,我们展示了如何使用PoSM实现组合验证;第4节中的案例研究四、第5节和第6节评估的贡献,讨论相关的工作,并列出未来的研究,该文件的结论在节。7 .第一次会议。1.4关于所用在本文中,PSM代表协议状态机(由UML 2.0引入),而PoSM(方便时发音为无衬线字体用于区分UML元模型标识符(包,元类,关联和属性的2端口状态机我们提出端口状态机,建立在UML 2.0协议状态机。为了用原子事件对操作调用(本质上非原子的)进行建模,PoSM捕获具有两个事件的操作调用,请求(对应于操作调用的开始)和响应(操作调用的完成)。此外,PoSM明确区分发送和接收的事件。这里,在提供的接口上处理的操作调用由接收到的请求事件和发送到的响应事件表示;以类似的方式,在需要的接口上发出的操作调用由发送到的请求事件和接收到的响应事件表示。为了向建模者隐藏这些技术细节,PoSM符号定义了方便的快捷方式。在图1中,港口国134V. Mencl / Electronic Notes in Theoretical Computer Science 101(2004)129-CD1机器明确指定请求和响应事件,而在图3中,相同的行为用符号快捷键描述(这些将在第二节中描述)。2.3)。AB1!DB.addBalance^NB1LogReady?DBNotify.newBalance^!Log. log存款^nb2日志发送!DBNotify.newBalance$?Log. log存款$ab2日志确认?DB.addBalance$阿布芬长鳍CD2!书记员。按金$翅片记录存款?书记员。存款^图1.一、具有显式请求和响应转换的端口状态机2.1PortStateMachine元模型我们将PortStateMachine定义为UML 2.0ProtocolStateMachine的扩展,采用UML 2.0扩展机制。在图2中,我们展示了新引入的元类PortStateMachine和PortTransition,以及UMLStateMachine规范的相关类,为我们的扩展提供上下文。PortStateMachine被定义为ProtocolStateMachine的子类。因此,PoSM包含一个或多个区域;Region包含顶点和过渡。过渡将源顶点连接到目标顶点。顶点可以是伪状态或状态。伪状态是一种语法结构,用于对区域的入口点和出口点进行建模。一个国家可能包含零个或多个地区。一个不包含任何区域的国家是一个简单的国家。FinalNode是一个State的特殊化,表示一个区域的完成;FinalNode不能包含任何区域,也不能有传出的转换。包含一个或多个区域的状态是复合状态,这是一种提供状态分层分组的句法结构。当一个简单的状态是活动的,它包含的所有复合状态都是活动的。在一个活跃的合成物中V. Mencl / Electronic Notes in Theoretical Computer Science 101(2004)129-135StateMachine(fromBehaviorStateMachines)0.. 11. *区域触发**提述顶点源具体目标1即将离任过渡1传入* (重定向自BehaviorStateMachines)*伪状态状态0..1提供所需FinalNode端口ProtocolStateMachine(fromProtocolStateMachines)请求响应<<枚举>>ocpKind发送/接收<<枚举>>cdKindPortStateMachine+communicationDirection:cdKind+operationCallPart:ocpKindPortTransition端口接口方案过渡(fromProtocolStateMachines)操作CallTrigger状态,它的子状态之一是活动的。包含一个以上区域的状态是正交状态。正交状态对并发执行进行建模;在活动正交状态中,子状态在其每个区域中都是活动的,并且可以在任何区域中进行转换。例2.1在图1中,RecordingDeposit是一个正交状态;调用DB.addBalance和Log.logDeposit在其正交区域中独立进行。PortTransition 表 示 单 个 原 子 通 信 事 件 。 Port-Transition 是ProtocolTransition 的 子 类 ( ProtocolTransition 又 是 Transition 的 子 类 ) 。PortTransition必须恰好有一个触发器;该触发器必须是CallTrigger并且必须引用与PoSM关联的端口的接口的操作。PortTransition引入了两个额外的属性,都是枚举类型:OperationCallPart捕获转换是表示操作调用的请求部分还是响应部分联系我们软件包PortStateMachines图二.端口状态机抽象语法:PortStateMachine和PortTransition的定义。对于空间限制,只显示所选元类的所属包名称。Meta-类Region、Vertex、PseudoState、State和FinalNode由BehavioralMachines拥 有 , Trigger 和 CallTrigger 由 CommonBehaviors 拥 有 , Operation 由 Kernel 拥 有 , Interface 由Interfaces拥有,Port由CompositeStructures拥有。136V. Mencl / Electronic Notes in Theoretical Computer Science 101(2004)129-reception指定事件是接收还是发送,它的值必须为所需接口上的请求或所提供接口上的响应发送,并在相反的情况下接收(所需接口上的响应或所提供接口上的请求例2.2在图1中,从LogReady到LogSent的转换表示发送操作Log.logDeposit的请求,而正在进行的到LogConfirmed的转换表示接收该操作的响应。为了 提供 跟踪语 义并促 进合 规关系 (如1.2 中所 讨论 的), PoSM 对PortStateMachine实例及其包含的元素引入了以下额外(i) PortStateMachine中的转换必须是PortTransition或ProtocolTransition;不是PortTransition的转换不能指定任何触发器,即,只能接受完成事件。一个端口转换可能只起源于一个状态(但可能以一个伪状态为目标).(ii) PortStateMachine中的转换可能不指定任何约束-其guard、preCondition和postCondition关联必须为空。(iii) 每个State的deferrableTrigger关联必须为空。(iv) 即使在正交状态的不同区域中的多个转换指定相同的触发器时,事件的一次发生也只发生一次转换(与UML 2.0正交状态语义相反,在UML 2.0正交状态语义中,所有这些转换都是同时发生的)。(v) PoSM中的伪状态类型必须是初始状态或分叉状态。为了PoSM定义的简单性,我们省略了其他的Pseu- doState类型:choice和junction(没有guards就没有意义),deep- History和shallowHistory(复杂的语义;可以用增加的状态空间代替),join(复杂的语义,可以用FinalNodes部分代替)以及exit和terminate(我们关注完整的跟踪)。(vi) 从伪状态的转换可以仅针对递归地由包含伪状态的区域包含的顶点。(I.e.、不能跨越国界)。上面指定的约束与UML 2.0 [13]最初指定的约束一起确保了某些属性;我们在这里强调了稍后将使用的那些属性:(i) 从一个状态开始的转换可以向外跨越几个包含状态的边界,然后向内跨越几个复合状态的边界,最后以一个顶点为目标,(ii) 源自伪状态的转换不是PortTransition,V. Mencl / Electronic Notes in Theoretical Computer Science 101(2004)129-137只有一个ProtocolTransition从区域r内的初始伪状态的转换要么以r直接包含的顶点为目标,要么以r包含的状态内的顶点为目标。只有一个转变可以从初始的伪状态开始。(iii) 给定包含在区域r中的分叉伪状态pf,该分叉伪状态p f还包含复合状态s,多个转换可以源自pf,每个转换以s的不同区域中的顶点为目标。例2.3图2.3中所示的PoSM1、收到操作员的存款请求后,进入正交状态RecordingDeposit。在 两 个 区 域 完 成之 后 , PoSM 最 终 发 送 一 个 响应 给Clerk.deposit操作。2.2端口状态机我们通过PA生成的轨迹定义PoSMPA的语义。我们将行为建模为状态事件和通信事件的痕迹,形成了PA的通信语言和执行语言。定义2.4设St为所有状态的集合,Reg为所有区域的集合,直接或间接包含在PoSMPA中。对于一个区域r∈Reg,我们将状态(r)表示为r直接包含的状态集。同样,对于状态s∈St,Regions(s)是直接包含的区域集合,S. 区域(PA)是PA直接包含的顶级区域的集合。定义2.5状态si是sj的一个子集,如果r∈Regions(sj),则si∈States(r)。状态sj递归地包含状态si,如果si是sj的子状态,或者存在sj的子状态sk,使得sk递归地包含si。区域rj递归地包含状态si,如果si∈States(rj)或存在sj∈States(rj)使得sj递归地包含si。定义2.6设SL为St中状态的标签集合,OL为与PA的转换相关联的操作的标签集合。我们定义状态事件的域SE={entry,exit}×SL和通信事件的域CE={sent,received}×OL×{request,response}。集合CE是PA的通信跟踪的事件的域,并且集合S=SE_CE是PA的执行跟踪的事件的域。请注意,状态事件仅捕获进入或离开State,而不是PseudoState。定义2.7PA的配置c是St的子集,以下两个条件均成立:(i) 对于每个区域r∈Reg,c至多包含一个状态s∈States(r),(ii) 如果si∈c且si是sj的子态,则sj∈c.138V. Mencl / Electronic Notes in Theoretical Computer Science 101(2004)129-一个状态si在c中是活动的,如果si∈c。 一个区域r在c中是活动的,如果存在一个状态si∈States(r)c使得si∈c。一个配置c是稳定的,如果PA的每个顶层区域都是活动的,并且对于每个状态si∈c,si的所有区域都是活动的。定义2.8通过触发器与操作op相关联的PortTransitionT的标签是事件e=∈CE,其中cdT和ocpT是T的通信方向和操作调用部分属性,labelop∈OL是op的标签。与操作无关的转换没有标签。在包含状态si的(PA的)配置c中,PA可以进行转换T源自si,i,则以下条件中的至少一个成立:(i) T没有标签,或者 si没有区域,或者 si的所有区域的活 动状态都是FinalNode。(ii) T是标记有事件e∈CE的PortTransition,没有状态sj∈c,使得(1)si递归地包含sj,(2)也标记为e的变迁U起源于sj(在这种情况下,我们说U具有更高的优先于T)。递归地包含T的源顶点和目标顶点的最里面的区域是T的最小共同祖先(LCA),表示为rlca,T。 LCA配置clca,T是从c1通过递归地移除包含在rlca,T中的所有状态而获得的。例2.9对于图2.2所示的PoSM1,{RecordingDeposit,ab 1,log fin}是一个稳定的配置,其中ab 1<$→ab 2是唯一的合法转移,RecordingDeposit的左区域是LCA。配置{RecordingDeposit,ab fin,log fin}也是此PoSM的稳定配置,其中唯一的合法转换是RecordingDeposit›→cd 2;在此,PoSM的单个最顶部区域是LCA。定义2.10根据clca,T,T以下列方式确定目标稳定构型:(i) T是一种过渡。(ii) 针对某个国家的参与式过渡会使其变得活跃。(iii) 以伪状态p为目标的已占用转换导致从p出去的转换被占用。(iv) 一个状态的所有包含状态变为活动状态(如果它们还不是活动状态)。(v) 对于变为活动的每个复合状态,所有区域都变为活动。如果接合的过渡Ti以区域r中的顶点为目标,则r变为V. Mencl / Electronic Notes in Theoretical Computer Science 101(2004)129-139由Ti显式激活,Ti确定r的激活状态。否则,r隐式地变为活动的,并且源自r的初始伪状态的转换变为参与的。如果没有这样的转变,模型就是病态的。最终,在处理完所有参与的转换之后,根据这些规则,所有必须变为活动的区域都选择了活动状态,从而产生稳定的配置c2。通过观察,clca,T c1c2。由转变T发起的从稳定配置c1到稳定配置c2的PA的单个运行到完成步骤用迹tT,k捕获,作为部分tT,exit、tT,com和tT,entry的级联获得。第一部分tT,exit是一系列状态退出事件,反映了通过一系列有效配置cj,exit将c1转换为clca,T。接下来,如果T是PortTransition,则tT,com包含T的标签,否则为空序列。最后,tT,entry是一系列状态进入事件,反映了通过一系列有效配置cj,entry将clca,T转换为c2。注意,由于对正交状态的进入和退出事件的松散排序约束,可能存在捕获从c1经由T到c2的运行到完成步骤的多个迹线tT,k。PA的初始稳定构型cinit,PA由PA的顶层区域的初始赝态的跃迁决定。如果PA的每个顶级区域的活动状态是FinalNode,则CONFIGuration_n,PA,k是PA的最终CONFIGuration。我们用迹线tPA捕获PA的单个运行,作为tPA,entry、tPA,k和tPA,exit部分的级联获得,其中tPA,entry是从空配置到达PA的初始稳定配置cinit,PA的状态进入事件序列,tPA,k是捕获从cinit,PA到达最终配置cfin,PA,k的运行到完成步骤序列的迹线的有限序列的级联,并且tPA,exit是从cfin,PA,k到达空配置的状态退出事件序列。定义2.11 PA的所有可能运行的所有迹的集合形成PA的执行语言,表示为LE(PA)。PA的通信语言,表示为LC(PA),是LE(PA)对通信事件CE的域的限制。例2.12图2.12所示PoSM的记录存款→cd2的转换1可能会被捕获,跟踪如下>在PoSM的运行中,该跟踪(其不包含任何通信事件)之后可以是转换cd2›→fin的跟踪(标记为140V. Mencl / Electronic Notes in Theoretical Computer Science 101(2004)129-CD1AB1?Clerk.deposit!DB.addBalancenb1LogReady?DBNotify.newBalance!Log.logDeposit日志确认发送对Clerk.deposit的响应;我们使用?表示接收,!发送,↑请求和↓响应):<退出cd 2,!Clerk.deposit↑,entryab finn >>以下示例是来自此PoSM的通信语言的可能跟踪:<什么?职员。存款↑,!Log.logDeposit↑,!DB.addBalance↑,?DBNotify.newBalance↑,!DBNotify.newBalance↓,?DB.addBalance↓,?Log.logDeposit↓,!书记员.押金↓>2.3符号PoSM引入了对UML状态机符号的扩展,目的是避免增加状态机图的复杂性,即使在捕获PoSM所需的额外信息时也是如此。特别是,扩展允许:(i)捕获其标签中的转换的附加属性,(ii)使用隐式中间状态和(iii)捕获嵌套调用。图3中展示了符号快捷方式,简要描述了与图1中的PoSM相同的行为(不采用快捷方式)。图三.使用呼叫转换和呼叫状态快捷方式的端口状态机PoSM符号利用行为协议(BP)的符号[16,17]。在那里,事件令牌?a代表接收事件a并且!a用于发送事件a。操作op的调用由一对原子事件捕获;在事件标签中,su + x↑表示请求和↓响应。例如,在一个示例中,V. Mencl / Electronic Notes in Theoretical Computer Science 101(2004)129-141?一序列e?op↑;!OP↓(这里,是用于定序的OP ↓)将接收对操作OP的调用建模为接收对OP的请求并发送响应本身。 在英国广播公司,那些捷径?OP和!序列的操作和D?op↑;!OP↓和!op↑;?op↓;shortcuts?o p{P rot}and!o p{P rot}st和for?op↑;P rot;!操作↓还有!op↑;P rot;?op↓respective.PoSM的符号使用这些前缀(?/!)和事件标签中的后缀(↑/↓)来表示PortTransition的属性。由于UML中可用字符集的限制,我们分别用^和$表示↑ 我们在图4中演示了符号和快捷方式。图4(a)对接收操作a的调用进行建模,显式地捕获为在(显式)中间状态中邻接的两个PortTransition。图4(b)采用呼叫转换作为对相同序列进行建模的快捷方式。单个调用转换表示两个PortTransition和中间状态;通常,调用转换上的圆圈提醒隐式中间状态。调用转换的单个标签(“?a“)确定触发两个PortTransitions;第一个(请求)的通信方向第二个转换的通信方向等于标签中使用的符号,而第二个(响应)转换的通信方向相反。(b)呼叫过渡?一(a)接收操作a的调用(c)在处理操作ad) 呼叫状态?一个带嵌套调用的过渡!Be) 呼叫状态?一个扩大见图4。端口状态机表示法PoSM表示法还提供了一个语法构造来对嵌套调用进行建模。在图4(c)中,当操作a正在被处理时,操作b如图4(d)所示,可以用呼叫状态捕获相同的事件序列调用状态构造表示转换和状态的结构,其核心是包含请求和响应之间发生的行为的复合状态。与调用转换的方式相同,两个PortTransition(用于请求和响应)仅指定一次操作调用!B?一?a^!B^?B$!?a^!一个$?a^!B?a^142V. Mencl / Electronic Notes in Theoretical Computer Science 101(2004)129-我我我label.为了保留一般的操作调用语义,调用状态只能与请求转换一起进入,只能在其内部行为完成后才能完成,并且必须与响应转换一起完成。因此,呼叫状态可以仅具有一个呼入和一个呼出转换。此外,为了确保复合状态仅可以与完成事件一起退出,复合状态与以中间状态为目标的未标记转换一起退出,响应转换从该中间状态发起。图4(e)展示了由图4(d)中的呼叫状态快捷方式表示的复合状态、中间状态和转换。呼叫状态的传入转换必须针对状态本身,必须使用初始伪状态来指定呼叫状态的区域开始的位置(呼叫状态可能有多个区域)。在语法上,调用状态采用复合状态的表示法,并通过连接到状态顶部和底部的两个分号进行区分;操作调用标签位于右上角。请注意,在整个示例中,为了简洁起见,我们使用符号a和b来表示接口上的操作。显然,需要接口的标识符和操作的标识符来明确地标识操作;在其他示例中(例如,figs. 1和3)字符(dot)用于连接这些标识符。另外请注意,我们通过指定调用状态和调用转换表示法快捷方式如何扩展到PoSM元模型中定义的元素来定义它们。我们认为这种方法在论文的可读性方面是最有效的,特别是痕迹语义定义。或者,我们可以在元模型中定义调用状态和调用转换,或者将语义定义扩展到这些元素,或者定义使用这些构造的模型到仅基于已经考虑的元模型元素的模型的转换;这两种方法都是可行的。2.4通信轨迹在本节中,我们定义了通信迹的良构性,并展示了它与PoSM符号快捷方式的关系;此外,我们还声称PoSM的通信语言是正则语言,我们用证明草图来支持这一说法。定义2.13通信迹t是良构的,如果t可以在一系列步骤中转换为空迹,其中在每个步骤i中,一对表示操作op∈OL的(单个)调用的事件erq,ersp被移除我从t(erq我previousersp单位为t)。 用于接收op,erq- - 上↑和V. Mencl / Electronic Notes in Theoretical Computer Science 101(2004)129-143我我我我ersp=?op↓,用于发送op的调用,erq=?op↑,ersp=!操作↓。我我我如果存在这样一个去除步骤的顺序,在每个步骤中,立即,立即在ERSP之前,T是不重叠的通信轨迹。PoSM是良构的,如果它的所有通信轨迹都是良构的。定理2.14如果PoSM PA的语法定义不使用显式请求和响应PortTransition(所有PortTransition都用调用转换和调用状态语法构造来定义)并且PA中的每个复合状态只能以其完成事件退出,则来自LC(PA)的所有跟踪都是良构的。另 外 ,如果PA不包含任何正交状态,则来自LC(PA)的所有迹线是不重叠的。验证草图:呼叫转换(以及呼叫状态)总是指定一对标有请求和响应事件的转换;除非呼叫转换(呼叫状态)包含在带有标记的传出转换的复合状态中(这可能导致呼叫在没有响应事件的情况下终止),否则呼叫总是完成。Q如果不包含在正交状态中,则用于不同调用的事件可能不会在迹线t中交织,直到ti为空,在ti中总是存在紧跟着ersp的erq。Q声明2.15LC(PA)是一种正则语言.证明草图:PoSMPA可以转换为有限自动机。按照PA的结构,正交区域可以用Cartesian态积代替;复合状态可以用其子状态替换,将传出转换重定向到所有子状态(除了那些已经具有较高优先级转换的子状态),并将传入转换重定向到从初始伪状态转换的目标子状态。一般化的有限自动机(使用空转移)。这样我们就产生了一个非确定性的有限自动机,生成了一个正则语言。Q3使用PoSM进行行为协议[17]提供了一种行为遵从关系,可以用来根据组件的行为规范来验证组件的组成。在本节中,我们首先简要回顾一下行为合规性,在行为协议[17]中定义,并描述了如何使用行为合规性来解决软件组件组成中的一致性问题之后,我们将展示如何将行为合规性应用于PoSM。最后,我们将讨论如何使用它来解决UML 2.0组件组成中的一致性问题。144V. Mencl / Electronic Notes in Theoretical Computer Science 101(2004)129-3.1行为协议在行为协议中,代理A的单次运行被捕获为来自A处理的有限域S的原子事件序列 ( 跟 踪 ) 。 给 定 一 组 标 签 EventNames , S 形 成 为 { ? , ! ,τ}×EventNames× {↑,↓}(此处,τ表示由A内部处理的事件;符号?,!,↑和↓代表接收、发送、请求和响应)。 代理A的行为(记为L(A))被捕获为A的所有迹的集合,在S上形成语言。A的行为可以用行为协议ProtA来描述,在S上句法地生成一组迹的压缩(表示为L(ProtA),方便地是常规语言)。采用类似正则表达式的符号,使用来自S的事件的事件标记和以下运算符(按优先级顺序给出)来描述行为:*(重复),;(排序),+(备选),|(并行性,基于轨迹的任意交错)和(parallel-or,A |B)。此外,组合运算符是组合(HX)、调整(|X|)和同意(QX)。该符号还使用节中讨论的快捷方式2.3和括号。示例3.1图3A和图3B中的PoSM符号中描述的行为。1和3可以用行为协议符号表示为:?职员。存款!DB.addBalance{?DBNotify.newBalance}| !Log. log存款}例2.12中所示的通信跟踪捕获了此行为,也是此行为协议的跟踪组合ProtAHXProtB产生当协议ProtA和ProtB描述的代理A和B组合在一起时产生的行为;X是来自A和B之间传输的事件的事件=EventNames× {↑,↓}的事件标签集合。对于每对迹α∈L(ProtA),β∈L(ProtB),来自α和β的事件任意交错。在每个这样的结果轨迹中,所有具有标签x∈X的事件以以下方式处理:形式的序列?x的!x或!x?x被τx(一个内部事件)代替;一个包含标签为x的事件不能以这种方式处理(不匹配!/?)从合成运算符的结果中丢弃。调整算子还交错道对α∈L(Prot A),β ∈L(ProtA),β ∈ L(Prot A),β ∈ L(Prot A)和β ∈ L(Prot A)。L(ProtB),但完全匹配(不?/!事件的标签来自X是必需的,并且只有与X中的事件匹配的对α,β才包含在结果行为中。同意操作符(在[1,2]中引入)类似于合成操作符,但是当A的交互时V. Mencl / Electronic Notes in Theoretical Computer Science 101(2004)129-145而B则会导致错误。考虑的错误类型是BadActivity(A发出a,但B还没有准备好吸收a),NoActivity(类似于死锁情况)和Divergence(A和B的交互从未停止)。同意算子隐含地提供了一种关系,用于检查A和B的组合,如果AQXB不包含错误的迹线,则认为组合是正确的。定义3.2我们假设集合S被分成不相交的集合Sprov(输入,提供接口上的事件)和Sreq(输出,要求接口上的事件代理A的行为L(A)与集合S上的协议ProtA的行为L(ProtA)兼容,如果(i)A可以接受由ProtA指定的任何输入序列,并且(ii)对于这样的输入,A仅创建由ProtA预期的输出。通过调整算子提供了一个正式的定义:L(A)在集合Si上与L(ProtA)相容:(i) L(ProtA)/SprovL(A)/Sprov和.Σ(ii)(A)/S | |L (Prot A)/S⊆ L (Prot A)/S.LSprov箴其中/是用于限制的运算符。通过在Sprov上调整L(ProtA)/Sprov(指定输入)的L(A)/S,仅考虑来自L(ProtA)指定输入的L(A)/S的迹线;这些迹线必须包含在L(ProtA/S)中。作为参考,行为依从性的原始定义可参见[17]。第4节的案例研究提供了行为顺从关系的证
下载后可阅读完整内容,剩余1页未读,立即下载
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 电力电子系统建模与控制入门
- SQL数据库基础入门:发展历程与关键概念
- DC/DC变换器动态建模与控制方法解析
- 市***专有云IaaS服务:云主机与数据库解决方案
- 紫鸟数据魔方:跨境电商选品神器,助力爆款打造
- 电力电子技术:DC-DC变换器动态模型与控制
- 视觉与实用并重:跨境电商产品开发的六重价值策略
- VB.NET三层架构下的数据库应用程序开发
- 跨境电商产品开发:关键词策略与用户痛点挖掘
- VC-MFC数据库编程技巧与实现
- 亚马逊新品开发策略:选品与市场研究
- 数据库基础知识:从数据到Visual FoxPro应用
- 计算机专业实习经验与项目总结
- Sparkle家族轻量级加密与哈希:提升IoT设备数据安全性
- SQL数据库期末考试精选题与答案解析
- H3C规模数据融合:技术探讨与应用案例解析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)