《消息顺序图MSC讲义课件》由会员分享,可在线阅读,更多相关《消息顺序图MSC讲义课件(71页珍藏版)》请在金锄头文库上搜索。
1、消息顺序图消息顺序图消息顺序图消息顺序图MSCMSCMessage Sequence ChartMessage Sequence Chart演讲人:周刚演讲人:周刚 电话:电话:38639815 38639815 E_mailE_mail:消息顺序图MSC学习的目标及任务1、熟悉MSC的基本概念2、熟悉常用的MSC做图方法及相应文字文法的表示3、能够阅读分析较复杂的MSC图4、能够自己分析相关案例,画较简单的MSC流程图消息顺序图MSC3.1 概述3.2 MSC基础3.3 MSC文档3.4 MSC结构概念消息顺序图MSC3.1.0 MSC是什么3.1.1 MSC特点3.1.2 MSC实体类型3
2、.1.3 定义图形文法的符号说明3.1 3.1 概述概述主菜单主菜单主菜单主菜单消息顺序图MSC3.1.0 MSC是什么是用来描述多个实体之间和实体与环境之间消息交互顺序的一种形式语言。形式语言:形式语言:通用建模语言 Unified Modeling Language UML消息顺序图 Message Sequence Chart MSC规格与描述语言 Specification and Description Language SDL二、MSC的文法:文本文法 Textual Grammar图形文法 Graphical Grammar一、MSC的定义:返回返回返回返回消息顺序图MSC3.1
3、.1 MSC的特点vMSC是一种形式语言 (自然语言与形式化共同描述)vMSC是一种实用语言 (可用于软件开发的整个生命周期)vMSC是一种消息跟踪语言 (它是专门用来描述通信及事件的发生顺序)vMSC支持不完整的规范说明 (需求分析初,可以描述不完整的系统行为)vMSC是一种图形化语言 (它用二维图形来概括通信实例的行为)vMSC支持结构化设计 (基本MSC图组合成高级MSC图)vMSC可与其他方法和语言联合使用 (比如与SDL、TTCN的联合)vMSC可以描述不允许出现或不可能出现的行为 (通过自然语言)返回返回返回返回消息顺序图MSC3.1.2 MSC的实体类型q MSC文档 q MSC
4、图q 实例q 状态q 定时器q 消息q 通道q 变量视见域(SCOPE) MSC文档、MSC图1、实体名称的相异性2、实体名称的局部性返回返回返回返回消息顺序图MSC3.1.3 图形方法的符号说明 括号内的符号为非终结符,需进一步定义 括号内的内容有关联性* 括号内可选,可以为零或任意次+ 括号内必选,可以出现一次或任意次:= 定义符。左边为非终结符,右部为非终结符/终结符串 | 或符,两边为并列关系。符号消息顺序图MSC3.1.3 图形方法的符号说明(续) contains is followed by is associated with is attached to above set词
5、组消息顺序图MSC3.1.3 图形方法的符号说明(续) contains 词组意义 包含MyMSC:= containsMSC引用符MSC图名称消息顺序图MSC3.1.3 图形方法的符号说明(续) is followed by 词组意义 与具有上下关联关系:= is followed by := is followed by is followed by :=is followed by is followed by消息顺序图MSC3.1.3 图形方法的符号说明(续) is associated with 词组意义 附属于,而且一般为文字内容msg:= is associated with 消
6、息标识符消息符消息顺序图MSC3.1.3 图形方法的符号说明(续) is attached to 词组意义 与相连,而且必须为一个或一组图形符号msg:= is attached to 消息结束域消息开始域消息顺序图MSC3.1.3 图形方法的符号说明(续) is attached to 词组意义 与相连,而且必须为一个或一组图形符号:= is attached to *setSysICONreqICONindMSC ABC消息顺序图MSC3.1.3 图形方法的符号说明(续) above 词组意义 位于垂直上方相连:= above := above 消息顺序图MSC3.1.3 图形方法的符号说
7、明(续)词组 set例::=*set表示:文本层是一个包含零个或多个文本域的无序集合:=set表示:是由花括号内的元素组成的一个无序集合返回返回返回返回SysICONreqICONindMSC ABC消息顺序图MSC3.2 3.2 MSC MSC 基础基础3.2.1 消息顺序图3.2.2 实例3.2.3 消息3.2.4 条件3.2.5 定时器3.2.6 动作3.2.7 进程创建3.2.8 进程终止3.2.9 调用与回复3.2.10 环境与通道主菜单主菜单主菜单主菜单消息顺序图MSC3.2.1 消息顺序图(MSC图)功能:描述系统中若干组件之间的通信和组件与外部环境之间的通信,系统组件在MSC图
8、中以实例的形式出现,一张MSC图只描述系统的部分行为。其图形文法定义::=|:= contains := contains containing-clause说明:1、简单的MSC图由标题部分和主体域组成。2、高级MSC图由标题部分和MSC表达式域组成,子句是可选项消息顺序图MSC3.2.1 消息顺序图(MSC图)(续):= contains := is attached to *set:=说明:方框符作为MSC图的边界,内部视为MSC的系统环境,外部视为外界环境,通过多个消息通道(通道定义域)与外界交互消息。消息顺序图MSC3.2.1 消息顺序图(MSC图)(续):= contains :=
9、set:=msc 说明:MSC图的标题部分由关键字msc和MSC图名组成,参数声明及时间偏移是可选项:=offset 说明:时间偏移用来表示绝对的时间偏移消息顺序图MSC3.2.1 消息顺序图(MSC图)(续):=set说明:MSC主体域包括实例层 :=*set文本层 :=*set通道定义层 :=*set事件层 :=| above 连接器层 := *|*|* | *|*|*set消息顺序图MSC3.2.1 消息顺序图(MSC图)(续)msc 例题一:MSC图的一般形式 方框符frame symbol关键字keyMSC图名MSC主体部分代表系统的内外部环境分界线消息顺序图MSC3.2.1 消息顺
10、序图(MSC图)(续)例题二:建立连接的简单MSC图calling_partycalled_partyprocess digiteprocess digiteWhen IdleSeizureTalkingoff-hookdial-tone-ondigitdial-tone-offdigitseizure-intackring-back-tone-onoff-hookanwerconnetioninternal-ringing-onmsc connection消息顺序图MSC3.2.1 消息顺序图(MSC图)(续)例题二:建立连接的简单MSC图(续)1 1、两个实例之间交互一条消息被定义为两个事
11、件、两个实例之间交互一条消息被定义为两个事件、两个实例之间交互一条消息被定义为两个事件、两个实例之间交互一条消息被定义为两个事件发送消息事件(对发出该消息的实例而言)消耗消息事件(对接收并处理该消息的实例而言)2 2、主叫方(、主叫方(、主叫方(、主叫方(calling_partycalling_party)事件发生顺序事件发生顺序事件发生顺序事件发生顺序in(off_hook)out(dial_tone_on)in(digit)out(dial_tone_off)in(digit)out(seizure_int)in(ack)out(ring_back_tone_on)in(answer)o
12、ut(connection)3 3、被叫方(、被叫方(、被叫方(、被叫方(called_partycalled_party)事件发生顺序事件发生顺序事件发生顺序事件发生顺序in(seizure_int)out(ack)out(internal_ringing_on)in(off_hook)out(answer)4 4、主叫与被叫之间的事件发生顺序、主叫与被叫之间的事件发生顺序、主叫与被叫之间的事件发生顺序、主叫与被叫之间的事件发生顺序out(seizure_int)in(seizure_int)out(ack)in(ack)out(answer)in(answer)返回返回返回返回消息顺序图M
13、SC3.2.2 实例定义:代表某种实体,具有该实体的所有属性。构成:实例头部、实例轴、实例结束符、终止符。:=:=:=:=:=说明:1、实例轴符有两种表现形式:单线、双线形式2、结束符仅代表该实例在本MSC图中要描述部分的结束。而终止符则代表实例真正的结束。终止符仅适用于进程类型的实例。消息顺序图MSC3.2.2 实例(续)例一:实例标题的表现形式。instinst : process digit说明:标题部分仅给出实例名实例名实例类型类型名process digitinst实例名放于实例头部符中全部放于标题部分或消息顺序图MSC3.2.2 实例(续)例二:实例的分解(decomposed)。
14、process digit decomposedinst decomposedinstdecomposed as inst说明:表示将inst分解成另一个MSC图,对应图名为inst说明:分解后采用新的图名优点:通过这种MSC分解机制,可以构成层次化的MSC图结构消息顺序图MSC3.2.2 实例(续)例二:实例的分解(decomposed)(续)。ResponderInitiatorWhen DisconnectedWait_For_RespICONreqICONICONindsetting Tmsc SysSys decomposedICONreqICONind返回返回返回返回消息顺序图MS
15、C3.2.3 消息定义:消息(message)用来在两个实例之间或实例与环境之间交换信息。简介:1、消息的两个事件: 消息入(message in) 消息出(message out)2、消息的异常情况: 消息丢失 输入异常消息3、消息的域: 消息事件域 消息域 不完整消息域消息事件域消息事件域:在实例轴上标出消息入事件和消息出事件的发生点。消息域消息域:给出消息发送的方向和消息名及参数。不完整消息域不完整消息域:用来表示消息丢失和来源不明的消息。ICONreq消息事件域消息事件域消息域inout消息顺序图MSC3.2.3 消息(续)例:消息入与消息出事件ResponderInitiatorWh
16、en DisconnectedWait_For_RespICONreqICONICONindsetting Tmsc Sys消息1消息2消息3消息入消息出消息入消息出消息顺序图MSC3.2.3 消息(续)有关消息的图形表示:=说明: 消息符:=说明: 消息丢失画图注意事项:消息实例名位于丢失消息符上方,目的地实例名或通道名位于实心黑圈旁边。可以反向使用。:=说明:检到消息画图注意事项:检到消息符的箭头与消息结束域(实例或通道)相连,消息的实例名位于检到消息符上方。可以反向使用。消息顺序图MSC3.2.3 消息(续)例一、消息丢失的例子ResponderInitiatorWhen Disconn
17、ectedDisconnectedICONreqWait_For_Respmsc failureIDISindResponderICONT说明:消息ICON从实例Initiator发出后丢失。未能到达实例Responder,结果导致超时,连接请求失败。消息顺序图MSC3.2.3 消息(续)例二、检到消息的例子gameWhen oddoddevenmsc change_status说明:当系统处于“奇(odd)”状态时,如果收到消息“none”,则状态改为“偶(even)”。当系统处于“偶(even)”状态时,如果收到消息“none”,则状态改为“奇(odd)”。nonenone典型应用:系统状
18、态的改变靠随机事件产生,常用于游戏程序中。返回返回返回返回消息顺序图MSC3.2.4 条件用途:用来描述系统的全局状态或局部状态图形文法的定义::= contains is attached to *set:=CON1CON2CON3图例CON4中间的实例与条件CON4无关消息顺序图MSC3.2.4 条件(续)条件符的“连接符”的作用:条件符除了用来描述系统状态外,还可以起到连接符的作用。当MSC图要描述的系统行为比较多时,往往在一页纸上画不下,这时可以将该MSC图分解成多个MSC图,分别画在多张纸上,图与图之间用同名条件来连接。条件起连接作用的应用:1、全局状态连接全局状态2、局部状态连接全
19、局状态3、全局状态连接局部状态用条件符可以起到用条件符可以起到decomposed的功能的功能消息顺序图MSC3.2.4 条件(续)CON1inst ainst binst cmsc MSC1inst ainst binst cmsc MSC2When CON1说明:消息顺序图MSC1的结束条件为CON1,而消息顺序图MSC2的初始条件也为CON1,所以,MSC2可以看成是MSC1的继续。例一、条件起连接作用的例子(全局状态连接全局状态)结束状态起始状态消息顺序图MSC3.2.4 条件(续)inst ainst binst cmsc MSC4When CON2CON2inst ainst bi
20、nst cmsc MSC3说明:MSC4可以看成是MSC3的继续。例二、条件起连接作用的例子(局部状态连接全局状态)inst d消息顺序图MSC3.2.4 条件(续)说明:MSC6可以看成是MSC5的继续。例三、条件起连接作用的例子(全局状态连接局部状态)CON3inst ainst binst cmsc MSC5inst binst cmsc MSC6When CON3消息顺序图MSC3.2.4 条件(续)说明:分解后的图的页码按“v-h”方式编排。v 对应纵向分页,采用阿拉伯数字h 对应横向分页,采用大写英文字母例四、画在多张纸上的页码表示返回返回返回返回1-1-A A1-1-B B2-2
21、-A A2-2-B B消息顺序图MSC3.2.5 定时器定义:用来监视某一事件(一般为等待接收消息)的到达。定时器的符号表示一、启动定时器:就是在系统中创建一个定时器的实例:=:=:=说明:定时器由实例来启动的,所以定时器启动符和再启动符的一端必须与启动该定时器的实例轴相连,而另一端则与定时器终止符(复位定时器)或定时器超时符相连。消息顺序图MSC3.2.5 定时器(续)二、复位定时器(定时器终止符):=:=说明:当定时器启动符不便与定时器终止符相连时。例如:启动定时器与复位定时器不在同一页时。说明:用于一般情况。即竖直线连到定时器启动符,水平线连到实例轴。消息顺序图MSC3.2.5 定时器(
22、续)二、复位定时器(定时器终止符)说明:实例Initiator发出消息ICON前设置定时器T,用来监视消息ICONF的到达。当收到消息ICONF后复位定时器。例ResponderInitiatorWhen DisconnectedConnectedICONreqWait_For_Respmsc connectionICONconfICONTICONindICONFICONresp消息顺序图MSC3.2.5 定时器(续)三、定时器超时:=:=说明:定时器超时是一种输入事件,定时器必须有一个箭头与实例轴相连:=跨页的情况同页的情况消息顺序图MSC3.2.5 定时器(续)三、定时器超时例Respon
23、derInitiatorWhen DisconnectedDisconnectedICONreqWait_For_Respmsc failureIDISindResponderICONT说明:实例Initiator发出消息ICON前,设置定时器T,用来监视实例Responder响应消息的到达。但消息ICON从实例Initiator发出后超时,导致请求失败,未能到达实例Responder。返回返回返回返回消息顺序图MSC3.2.6 动作说明:MSC除了用来描述通信实体之间的消息交互顺序外,还可描述通信实体在通信过程中需完成的一些动作(操作)。文法定义如下::= is attached to co
24、ntains :=说明:1、当实例轴线采用双线形式时,动作符的宽度与双线宽度一致。2、动作符描述的动作仅限于实例内部。返回返回返回返回消息顺序图MSC3.2.7 进程创建说明:在MSC中,进程创建分两种:静态创建:系统初始化时创建的进程。动态创建:在系统运行过程中创建的进程。文法定义如下::= is associated with is attached to is connected to 说明:1、进程创建的动作是立即执行的,由执行创建动作的实例创建另一个进程实例。2、创建线符无箭头一端与实例轴相连,被视为创建事件。创建线符有箭头的一端与被创建进程实例的头部符相连。3、创建进程时,创建者可
25、以向被创建者传递参数。返回返回返回返回:=消息顺序图MSC3.2.8 进程终止说明:进程终止是指终止进程实例。执行了进程终止的进程实例在系统中就不存在了。说明:实例manager收到环境发来的消息HKoff,创建实例subscriber,同时向实例subscriber传递参数lineno,进程实例subscriber收到消息terminate后执行终止操作。返回返回返回返回managerHKoffHKonterminatesubscriberlinenomsc example4消息顺序图MSC3.2.9 调用与回复说明:在MSC的两个实例之间,除了可以通过交互一条消息来交换信息和控制两个实例的
26、执行顺序外,还可以通过调用一个方法(method)和回送结果来达到同样的目的。调用和回复使用同一个方法名。分为:同步方式:同步方式:调用者发出调用信号后要等对方回复信号到达后才能继续往下执行,在等待期间,该实例处于挂起状态。异步方式:异步方式:调用者发出调用信号后不等回复信号,继续往下执行。图形文法的定义::=:=:=消息顺序图MSC3.2.9 调用与回复(续)说明:回复符与方法调用符成对出现,并紧跟在方法符下。说明:回复符与方法调用符成对出现,并紧跟在方法符下。:=:=:=:=说明:方法符被视为实例轴的一种特殊形式。可以发生在实例轴上的事说明:方法符被视为实例轴的一种特殊形式。可以发生在实例
27、轴上的事件均可以发生在方法符上。件均可以发生在方法符上。说明:在挂起期间,实例处于不活跃状态,不能处理事件,只可以接受说明:在挂起期间,实例处于不活跃状态,不能处理事件,只可以接受方法调用请求和产生回复信号。方法调用请求和产生回复信号。消息顺序图MSC3.2.9 调用与回复(续)例一、方法调用与回复call Method1Method1TCSUTmsc method_call说明:TC以同步方式调用SUB中的方法。TC发出调用信号Method1,等待SUT回复,在等待期间,TC处于挂起状态,用挂起符来表示。在此段时间,SUT用方法符来表示,方法符可以被视为实例轴的一种特殊形式。消息顺序图MSC
28、3.2.9 调用与回复(续)例二、方法的嵌套调用call MethodBcall MethodAABmsc method_nest说明:实例A先以同步方式调用实例B中的方法MethodB,实例A被挂起。实例B在执行方法MethodB过程中,又需要调用实例A中的方法MethodA,也是采用同步方式,实例B被挂起。这时,虽然实例A被挂起了,但仍然可以接收方法调用请求,执行方法过程。方法执行完后仍回到挂起状态。实例B收到方法MethodA的回复消息后,继续执行方法MethodB,直到结束,送出回复消息。MethodAMethodB返回返回返回返回方法是可以嵌套的方法是可以嵌套的消息顺序图MSC3.2
29、.10 环境与通道说明:MSC图的主体是实例,MSC图的边框是MSC系统的环境,实例可以从环境输入消息,也可以向环境输出消息,实例与环境交互的消息通过通道来完成。通道名可以是显式的,也可以隐式的。MyMSCijks1s1s4s3s2ghmsc gates说明:该图定义了五个通道,两个显示,三个隐式的。显式通道名返回返回返回返回隐含通道名in_s2out_s1out_s4消息顺序图MSC3.3 3.3 MSC MSC 文档文档MSC文档:包括MSC系统中用到的实例名、简单MSC图名、高级MSC图名、消息名及其参数、定时器及变量等。其图形方法定义如下::= contains 文档标题部分 is f
30、ollowed by 定义部分 is followed by 实用部分说明:1、MSC文档的内容也包括在方框符内,共包括三大部分:文档标题部分、定义部分和实用部分。2、文档中的定义部分和应用部分需用虚线分开。参见书本:Page 62-63主菜单主菜单主菜单主菜单消息顺序图MSC3.4 3.4 MSC MSC 结构概念结构概念主菜单主菜单主菜单主菜单3.4.1 并发3.4.2 MSC引用3.4.3 线内表达式3.4.4 高级MSC(HMSC)消息顺序图MSC3.4.1 并发问题:某通信实体在某状态下需要收到两条或更多消息后才能够往下进行,而这些消息到达的时间顺序是任意的,即实例消耗这些消息的顺序
31、是任意的。实例轴上无法表达这种无序的情况。解决:并发是用来描述在实例轴上发生时间无序的事件。其图形文法表示如下::=:=应用范围:单线形式实例轴:图一、二均可双线形式实例轴:图二消息顺序图MSC3.4.1 并发(续)说明:主叫进程(caller)在号码分析得出出局呼叫类型后,向资源管理进程发出申请出中继和MFC收发器(采用中国1号信令)。当两种资源均有空闲时(同时消耗消息trunk_ok和mfc_ok,但与消息到达顺序无关),创建出中继进程(ogt)。返回返回返回返回trunk_okmfc_okogttrunk_noogt_confirmmsc wait_trunkcaller例:并发的例子消
32、息顺序图MSC3.4.2 MSC引用定义:MSC引用是指在MSC图中引用别的MSC图,被引用的MSC图用一个引用符来表示。使用:1、引用符上有实际通道,通过它们与新的MSC图中的实例和环境交互消息。2、与引用无关的实例的实例轴可以穿过引用符。3、如果被引用的MSC图定义了参数,则在引用时需给出一对一的实际参数。4、MSC引用不能递归引用。引用符的图形文法::=优点:通过引用MSC,可以形成层次化结构,简化设计。消息顺序图MSC3.4.2 MSC引用(续)说明:被引用的MSC图中,从环境输入消息在被引用时必须从实际通道输入相同的消息,输出到环境的消息在被引用时也必须从实际通道输出相同的消息。引用
33、别的MSC图的例子被引用的MSC图返回返回返回返回消息顺序图MSC3.4.3 线内表达式功能:用线内表达式符(inline expression symbol)将MSC图中的一部分包起来,加上不同的操作符,构成不同的结构。可以在MSC图中构造分支结构、并行结构、循环结构等。图形文法的定义:图形文法的定义::=线内表达式符:=异常线内表达式符消息顺序图MSC3.4.3 线内表达式(续)分支结构的MSC图说明:图中线内表达式符包含的内容是二选一的关系:1、定时器超时(未收到消息“ICONresp”)。2、正常(收到消息“ICONresp”)。分支结构操作符 定时器超时定时器超时 正常接收正常接收消
34、息顺序图MSC3.4.3 线内表达式(续)超时情况正常情况分支结构MSC图分解以后前图相当于这两张图的合成消息顺序图MSC3.4.3 线内表达式(续)功能:异常线内表达式符包含的内容为异常情况,而符号以下的内容为正常情况。MSC exception与MSC alternative画法的区别 画法不一,但功能完全等效 消息顺序图MSC3.4.3 线内表达式(续)操作符介绍:操作符介绍:异常线内表达式符只用于异常操作符,如exc;线内表达式符适用于其它操作符,如alt、loop、opt、par等。opt :选项操作符。 指在线内表达式符内的内容是可选的,含义与“alt”操作相同,只是另一分支的内容
35、为空。消息顺序图MSC3.4.3 线内表达式(续)loop :循环操作符。 指在线内表达式符内的内容将循环若干次,循环次数可以指定。例如例如:loop 表示最少循环n次,最多循环m次。loop 与 loop 等价。loop与loop等价,表示最少循环1次,可以循环无限次(inf)。说明:该图引用了MSC message_lost 或 MSC time_out 。它表明,只要连接建立请求不成功,就一直发送连接建立请求“ICONreq”,直到成功。消息顺序图MSC3.4.3 线内表达式(续)par :并行操作符。 指在线内表达式符内有两部分内容,它们在时间上是同时发生的。它们之间用分隔符分开。说明
36、:实例Station_Res向环境发出消息ICONind的同时,环境向实例Station_Res发出消息IDISreq。这样,实例就收不到消息ICONF,而是收到消息MDAT(DR),连接建立请求不成功,复位定时器,向环境发送拆除连接指示IDISind。返回返回返回返回ICONF失败失败消息顺序图MSC3.4.4 高级MSC(HMSC)作用:是把一组MSC图组合成更复杂的MSC。HMSC是有向图。图中涉及到的节点表示:图中涉及到的节点表示:开始符 :=结束符 :=MSC引用符 :=条件符 :=连接点 :=并行框 := 消息顺序图MSC3.4.4 高级MSC(HMSC)(续)说明:该图是一个顺序
37、结构的例子,HMSC con_setup说明了连接建立成功的情况;图中引用了两个简单MSC图Connection_request和Connection_confirm,分别对应连接建立请求过程和连接建立证实过程。系统起始状态为未连接状态Disconnected,经过一个中间状态Wait_For_Resp,连接建立成功,系统进入已连接状态Connected。例一 顺序结构消息顺序图MSC3.4.4 高级MSC(HMSC)(续)说明:在系统起始状态Disconnected下,连接建立请求可能成功(Connection),也可能失败(Failure)。如果成功则系统进入连接状态Connected;如果不成功,则系统将循环请求建立连接,直到连接成功。例二 循环结构消息顺序图MSC3.4.4 高级MSC(HMSC)(续)说明:在HMSC par_HMSC中,被引用的两个简单MSC CR 和 DR是并行执行的。例三 并行结构返回返回返回返回MSCMSCMSCMSC文本文法的总结文本文法的总结文本文法的总结文本文法的总结参见参见 Page 187Page 187谢 谢Thanks!