538
Development
Process Journal of Software 软件学报 Vol.20, No.3, March 2009
Fig.8 TRISO Model Fig.9 The dynamic semantics model of TRISO Model Model 动态语义[53] 图8 TRISO Model 集成示意图[49] 图9 TRISO integrationFig.10 Framework for the representation and analysis of TRISO/ML
图10 TRISO/ML表示和分析框架
关于TRISO/ML的详细定义可参见文献[47],下面将分别讨论TRISO/ML如何支持软件过程的文档化、执行、分析、演化以及分布式执行.
文档化.TRISO/ML采用面向行为(behavior oriented)的方式来描述软件过程,该语言提供了如图11所示的图形化符号用以描述行为间的并发、顺序和选择,基于通道的信息传递和同步.另外,可以通过注释(annotation)的方式表示其他信息.
执行.对于图形化的TRISO/ML过程,可以通过一系列的规则将其转换为多元π演算表达式.下面的规则说明了如何将一个包含活动和简单角色的TRISO/ML过程转换为多元π
演算表达式:
ParallelChoiceActivity
Fig.11 Notations of TRISO/ML
图11 TRISO/ML图形化表示符号
李明树 等:软件过程建模方法研究
539
规则1. 过程中人员的转换规则.假定一个角色或者执行人员用唯一的标识符ac来表示,则其对应的多元π演算表达式为
defAac ).=assignac(start,endstart.end.Aac|Aac.
上述规则表明:ac的初始状态为空闲,在被分配任务时将得到与任务相关的两个通道start和end,而所要执行的任务何时开始将取决于ac,当其向start通道发送启动信号后,相应的活动将开始被执行,而在该任务完成后,ac将从end通道接收到任务完成的信号,从而ac将再次恢复到空闲的状态.
而对于表示活动的节点,其π演算进程是由分别表示输入、输出和执行的3个子进程并发组成.若I表示输入子进程,O表示输出子进程,E表示执行子进程,则规则2~规则6描述了如何表示TRISO/ML中的一个活动 节点.
规则2. 活动的转换规则.对于一个活动节点a,若其从通道chi1,…,chil分别接收到{b11,…,b1m},…,{bl1,…, bln},从通道exap_a接收(p1,…,pu),然后通过通道cho1,…,chor分别将{c11,...,c1s},...,{cr1,...,crt}发送出去,并且将 {r1,...,rv}通过通道exa_ap返回给其父节点ap,则活动a的π-演算表达式为
defAa=(νi1,...,il,io)(Ias i1,...,il |Ea i1,...,il,io |Oa io ),
Ia=(i1,...,il).chi1(b11,...,b1m1b11,...,b1m |...|chil(bl1,...,bln).lbl1,...,bln .exap_a(p1,...,pv), def
Oa=(io).io(c11,...,c1s,...,cr1,...,crt,r1,...,rv).cho1 cr1,...,crs .....chor cr1,...,crt .exa_ap r1,...,rv ,
其中,执行子进程Ea与活动的类型相关,一个非终端活动可以细分为按如下时序组合的多个子活动:顺序活动、并行活动和选择活动,另外,终端活动也可以对其自身的Ea进行定义.规则3~规则6分别讨论了这几种活动的defEa的转换细节.
规则3. 顺序活动的表示.若a为一个非终端活动且其被拆分为w个顺序执行的子活动a1,…,aw,每个子活动都可能与父活动进行信息交换,比如第w个子活动从父活动a接收到(pw1,…,pwj)并将(rw1,…,rwk)返回给a.同时,该活动被分配给人员ac,则活动a的执行子进程可以描述为 Ea=(i1,...,il,io).i1(b11,...,b1m)...il(bl1,...,bln).exap_a(p1,...,pu).triggera.assignac starta,enda ,
starta.exa_a1 p11,...,p1h .triggera1.exa1_a(r11,...,r1i).triggereda1...exa_aw pw1,...,pwj .triggeraw,
exaw_a(rw1,...,rwk).triggeredaw.aaoc11,...,c1s,...,cr1,...,crt,r1,...,rv .
在上面的规则中,由于活动a是非终端活动,执行进程Ea从进程Ia接受输入,然后按顺序关系触发a的子活动,执行完毕后将活动执行所得到的数据通过进程Oa输出.
规则4. 并发活动的表示.当非终端节点a被拆分为t个并发的子活动时,则其Ea子进程表示为
Ea=(i,q,i1,...,il,io).(νka1,...,kaw)i1(b11,...,b1m)...il(bl1,...,bln).exap_a(p1,...,pu).
triggera.assignac starta,enda .starta.(E1|E2),
E1=(exa_a1 p11,...,p1h .triggera1.exa1_a(r11,...,r1i).triggereda1.ka1.ka1 r11,...,r1i )|...|
(exa_aw pw1,...,pwj .triggeraw.exaw_a(rw1,...,rwk).triggeredaw.kaw.kaw rw1,...,rwk ),
E2=ka1.ka1(r11,...,r1i)...kaw.kaw(rw1,...,rwk).aao c11,...,c1s,...,cr1,...,crt,r1,...,rv ,
进程E1触发执行所有的子活动,而E2进程从各个子活动收集活动的执行结果并输出到进程Oa.
规则5. 选择活动的表示.若非终端活动a通过选择关系被拆分为t个子活动,则其Ea子进程被描述为
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新教学研究软件过程建模方法研究(22)全文阅读和word下载服务。
相关推荐: