通信软件设计_05 SDL语言ppt课件_第1页
通信软件设计_05 SDL语言ppt课件_第2页
通信软件设计_05 SDL语言ppt课件_第3页
通信软件设计_05 SDL语言ppt课件_第4页
通信软件设计_05 SDL语言ppt课件_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SDL 语言1;.2SDL mechineinput portFSMtimerdataoutput signalinput signalreveal/viewsave queuesavetimeouttimer opdata op3SDL语言中的语法构件l定义包(Package)l代理(Agent)l系统图 Systeml功能块图 Blockl进程 Processl通信l信道 Channell信号 Signall状态机l动作/迁移过程l定时器4 系统 功能块 功能块 进程 进程 功能块 功能块 进程 进程 SDL系统组成5System & EnvironmentlSDL规格定义了系统(

2、System)对来自环境(Environment)的事件的反应l环境通过信号(Signals)向系统发送事件l信号是SDL中描述系统和环境间通信的唯一形式SDL SystemENVIRONMENTsignals6SDL的描述和具体系统的关系7SDL Overview - Processl在SDL中的进程(Process)通常是一个eFMSl系统由一系列互相通信的进程(process instances)实例组成System InstanceProcessInstanceProcessInstancesignalssignalssignals8SDL Overview - Blocksl当一个系

3、统由大量的进程组成时,没有适当的静态结构会导致无法快速获得系统的整体目标l功能块(Blocks)用于在SDL中适当的进行结构化和层次化的定义l在进程间使用信号路由(Signal routes),在 功能块间采用信道(channels)来描述通信路径BlockSystem (or another block)ProcessInstanceProcessInstancesignal routesBlockBlockchannelsBlock9在SDL中的通信方式lsignal: l信号时SDL中最基本的通信表达方式l由发送代理所发送(Output)l由接收代理所接收(Input)lchannel:

4、 l信道是代理间通信的路径lstimulus: l激励是导致代理自发转移的一种事件10SDL 概览总结l环境,指在SDL规格之外的一切东西l如人(用户),其他互联系统等l不是SDL中的一个元素lSDL system 是针对真实世界所建立的模型l用于定义系统中的各个组成部分l采用层次化的方式lSystem 包含lblocks, 功能块之间用信道连接lBlock 包含lprocesses, 进程间使用信道连接lblocks, 子功能块lProcess 含有l使用变量和过程所定义的属性l使用状态(states)和迁移过程(transitions)所定义的行为lTypes l可用于定义system系统

5、类, block 功能块类和processes 进程类111 定义包(Package)含义l用于定义代理类型、信号、变量、数据、过程等,解决可重用性l在SDL的各个层次的代理图和过程图中l用来进行SDL的结构化l用来使用外部定义和提供给其他系统和包使用,可含有l系统类,功能块类,进程类的定义l信号定义12package AccessPointLib AccessPointBlockingAccessPointuse SignalLib ; LoggingAccessPoint例子:定义包13signal opened,closed ; /* Door to Controller */signa

6、l open, close ; /* Controller to Door */package SignalLib signal eject-card, lock, unlockinput-card, isOpen, isCloseddisplay,keys;signal Code(integer,integer);signal OK,NOK,ERR ;signallist validity = OK, NOK, ERR ;signallist outp = EjectCard, display;signallist inp = InputCard, keys ;/* AccessPoint/

7、* ENV/* Display/* ENV/* AccessPoint/* CentralUnitto ENV */to AccessPoint*/to ENV */to Keyboard */to CentralUnit */to AccessPoint */signalDisable,Enable/* CentralUnit to/* CentralUnit toBlockingAccessPoint */BlockingAccessPoint */例子:定义包(续)14包的图形语法l := contains * * set is associated with 15包的图形语法(续)l

8、:=package l := contains *l :=use 16包的图形语法(续)l := contains | *17包的图形语法(续)l :=| 182 代理(Agent)一、代理图1、代理是SDL 2000中的概念2、代理可以表示为系统、功能块、进程3、图形语法,代理图包括三种类型l := | | 19 代理图的图形语法l := * | setl := 20系统 Systeml一个SDL规格所定义的全部内容l完整地描述一个真实系统或真实系统中相对独立的一个部分l可划分为若干功能块,l功能块之间用信道来连接l功能块和环境之间用信道来连接l不包含任何行为l只包含抽象的结构,即black

9、 boxesl通常含有信号和数据类型的定义l用于定义系统中的内部数据l类似头文件定义21例子:系统图SYSTEM AccessControl1(2)AccessValidation(Pin)(Pout)(Resp)(Req)ap(100):pvAccessPanelDoordO peration(Tin)(Tout)(Ack)(Modify)op:toOperationTerminalPoint Point (Dout)U nitC ontrol(Din)S Y S TE M A c c es s C ontrol2(2)AccessPoint OperationPoint SIGNALDig

10、it(Integer), Card(Integer), Pass, AccessDenied, EnterPIN, EnterCard,DoorPassed, Open, Close, Validate(Integer, Integer), ConfigReq, Accepted,Rejected, Configure(Integer);SIGNALLIST Pout = Pass, AccessDenied, EnterPIN, EnterCard;SIGNALLIST Pin = Digit, Card;SIGNALLIST Dout = Open, Close;SIGNALLIST Di

11、n = DoorPassed; SIGNALLIST Req = Validate, ConfigReq;SIGNALLIST Resp = Accepted, Rejected, Configure;SIGNALLIST Tout =. /*continue until all signallists are defined*/;NEWTYPE./* Define global, system specific datatypes, if necessary*/22系统图的图形语法l := contains is associated with l := system 23系统图使用注意l系

12、统图分页时,系统名不变l页码格式l系统图包括:包引用域、头部、文本域、交互域l系统方框图的边界是与环境的交界l定义部分可放在包中再引用24例子:系统和包 system AccessControl 1(1)C(validity)Code(validity),Enable,DisableCodeCBap(100):AccessPointCbap(20):BlockingAccessPointCCentralUnituse SignalLib;use AccessPointLib/ AccessPoint, BlockingAccessPoint, LoggingAccessPoint;CLlap(

13、20):LoggingAccessPointC(validity)CodeCEedDCEedDCEedD25功能块 Blockl可定义子功能块和进程l图形语法l := contains is connected to * set is associated with 26 例子:功能块图BLOCK TYPE AccessPoint1(2)(Pin)(Pout)pvd(Dout)(Din)(Req)(Resp)ps(1,2):PanelServerds:DoorServerUserServerVal(Req)(Resp)(Pin)(Pout)(Dout)(Din)paneldoorAccept,

14、 Reject, ReadyUserCodeAdmitAdmitteduseraccessDoorServerPanelServerSIGNAL Admit, Admitted, Accept, Reject, Ready, UserCode (Integer, Integer);puda27l进程图引用符l进程创建,创建符l进程名(N1,N2)lN1为初始化创建的进程实例数lN2为运行时允许创建的进程最多实例数l例:Manager(1,1) Caller(0,1000)功能块图中使用进程28Static & Dynamic SDLlSDL语法中包括静态构件和动态构建l静态构件描述和规

15、定系统的结构l功能分解l功能间的连接关系l功能间通信的信号l动态构件描述和规定系统的运行-行为lSDL的迁移过程,迁移中的动作l通信l进程的生命周期,创建、运行和终止29Static SDLl在进行系统模型化分析是,用于对系统进行高层的抽象描述l一个SDL的系统(system)可以包含一个或多个功能块(block)l一个SDL的功能块(block)可以包含进程和功能块l进程即eFSM,用来定义动态行为SystemBlockProcess30System的功能分解原则l当面对一个复杂系统时,最好的办法是:l大事化小,将系统分解为可以处理的复杂程度的逻辑单位:BLOCKsl功能分解时按照系统的自身

16、规律来进行:l BLOCKs要反应真正的软件/硬件模块l将功能块间的接口最小化:l减少功能块间交换的信号的数量和种类31Structuring of the System Description32Decomposition Rules:No Limit in number of Block levels33Decomposition Rules: Blocks and Process cannot share a level34 进程 Processl用于对真实世界进行建模的基本组件l采用FSM作为其数学基础l进程包含l属性 (data)l行为 (state machine)l进程间通信l可

17、以发生在进程间,进程和环境之间l通常使用信号signals来进行通信l通过信道来进行通信l通信是以异步方式进行的l其他通信方式l远端过程调用(remote process)和远端变量(remote variable)l进程的行为和信号之间有关联关系l行为是由一系列信号引起的状态转移35l用Input-Action-Transition来定义行为 la signal is receivedlsome tasks are carried out, signal(s) sent outltransition to another statel每个进程都有一个或多个实例l进程标识类型:PIdl4个保留

18、字lself(constant) 本进程的PIDlparent (constant) 父进程的PIDlsender (varies) 最近被消耗信号的进程的PIDloffspring(varies) 最近被本进程创建的进程的PID进程 Process(续)36 进程的图形语法l := contains is associated with l := process 37 过程进程的一部分,可被进程调用过程符号,在进程和过程中说明一个被调用的过程1、图形语法l := contains * set is associated with 38 l := procedure l := ( , * )l

19、 := 39 l := in/out | in | out l := , * l := l := -l := contains | |l :=|40 l说明:l过程图不是代理图,但可以使用包l过程头包括:关键字、过程名、可带形式参数和返回值l形式参数可包括:参数类型、变量名、数据类型l过程文本域中定义局部变量2、举例l过程调用符413 通信l通常在通信中,有两种对通信的抽象描述:l异步通信Asynchronousl同步通信Synchronousl在同步通信中:l要求参与通信的进程同时参与通信,如果进程A准备发送信息而进程B没有准备好接收,进程A必须等待直到进程B准备好接收。423 通信l在异步

20、通信中:l参与通信的进程不需要同时参与l如果进程A准备发送信息而进程B没有准备好接收,进程A无需等待直接发送l如果进程B准备接收信息,而进程A没有发送,进程B必须等待l在异步通信中,必然要用到缓冲区来保存信息l在协议通信中,绝大多数是采用异步通信的43在异步通信中的FIFOsl在绝大多数通信系统中,采用FIFO (First In First Out) 的原则来处理信息的发送和接收l在发送一个信息时,把信息附加在FIFO的队尾l在接收时,从FIFO的队头取走ProcessProcessFIFO CHANNELFIFO CHANNELSendReceiveReceiveSend44在异步通信中的

21、FIFOsl在通信系统中,可采取一些办法来进行有优先级别的通信l如优先级队列l带外信道l在实际的通信过程中,FIFO队列可以用来吸收通信时延的变化l处理时延抖动,将抖动平滑的基本方法453 通信一、SDL中的通信方式l异步信号l同步远端过程调用l共享变量,远端变量(remote variable)1、异步方式l功能块之间、进程之间的信号收发无需等待确认2、同步方式l一个进程实例调用另一个进程实例中定义的过程,等待返回46 通信(续)二、信道(channel)1、含义l代理之间、代理与系统环境之间传递信号的通路l单向和双向信道l延迟和非延迟信道2、图形语法l4种信道符,标有信道名称、信关、信号列

22、表l信道符与代理域、状态机域或图边界信关连接47l := is associated with set is connected to | | | | set 48 l :=|l :=l :=l :=l := 49信号三、信号(signal)l代理之间、代理与环境之间传递的信息l是进程间通信的基本单位l信号可以定义参数l抽象数据结构定义的参数l信号列表,signal listl可使用定义过的信号定义信号列表l相似含义的一组信号的集合l在信道上使用时,要用()来括起来和信号进行区别50信号的文本语法l :=signal , *l := ( , * ) 51信号的文本语法l :=signallis

23、t = l := , *l := | ( )52信号的图形语法2、图形语法l := contains l := 3、举例l门控系统l功能块:控制面板、卡校验器、门控制器l内部信道、外部信道53例子:信号SYSTEM AccessControl2(2)AccessPoint O perationPoint SIG NALDigit(Integer), Card(Integer), Pass, AccessDenied, EnterPIN, EnterCard,DoorPassed, O pen, Close, Validate(Integer, Integer), ConfigReq, Acce

24、pted,Rejected, Configure(Integer);SIG NALLIST Pout = Pass, AccessDenied, EnterPIN, EnterCard;SIG NALLIST Pin = Digit, Card;SIG NALLIST Dout = O pen, Close;SIG NALLIST Din = DoorPassed; SIG NALLIST Req = Validate, ConfigReq;SIG NALLIST Resp = Accepted, Rejected, Configure;SIG NALLIST Tout =. /*contin

25、ue until all signallists are defined*/;NEW TYPE./* Define global, system specific datatypes, if necessary*/54use SignalLib;system AccessControlAccessPointAccessControlUnitOperationPointPanel(Pout)(Pin)Door(Dout)(Din)Validation(Resp)(Req)Operation(Ack)(Moidfy)Terminal(Tout)(Tin)55FSM例子(VS-FSM)56进程图中的

26、几个核心组件l状态(STATEs): 在进程(PROCESS)中监视输入队列,获得输入信号(SIGNALs)的点l等待输入的状态l状态迁移后的下一个状态 l输入(INPUT): 当 到达的信号和输入中的“信号”一致时,将执行输入下面的状态迁移过程lINPUTs 可以指定信号和信号中的值lINPUTs 可以是一个特定的定时器的超时l输出(OUTPUT): 规定了发送给另外一个进程的信号 (SIGNAL)state_asig_astate_asig_c57FSM例子(VS-FSM)58VS-FSM的进程图(Process Diagram)59用EFSM描述时l转移函数扩充转移函数扩充lt=e/p:

27、ae输入事件,p谓词,a动作l若若t=e, 则收到e,不执行动作就转移l若若t=e/a, 则收到e,无条件执行动作并转移l若若t=e/p:a,则收到e,根据守护条件决定是否执行动作,同时状态转移l动作动作 任务任务TASKl判断和转移判断和转移分支分支DECISION60进程图中增加的组件l任务(TASK): 表示对变量操作和其他操作l在动作的符号内部来表示,如赋值语句、定时器设置等l分支(DECISION): 根据其内部表示的判断条件来决定进程的下一个分支l汇接: 相当于GOTOdo_somethingmake_decisionyesnoAA61进程图例子 process calling 2

28、/5wait_for_numT1busyToneVIA uGwait_for_onHooknum(toNum)reset (T1)getUserPid (toNum, otherPid)otherPid = NULLTruemsg (Sorry,wrong number)wait_for_onHookFalsewait_for_connReplonHookreset (T1)A162在SDL中描述系统行为的组件l通过状态机(通过状态机(EFSM)描述系统行为)描述系统行为l状态机的启动l状态、后继状态l触发事件l自发转移l保存l迁移过程l输出、创建、任务、过程调用、分支、定时器、汇接63一、启

29、动一、启动1、图形语法l := is followed by l := 2、举例l启动符后可接初始状态或迁移过程。64状态状态1、图形语法、图形语法l := contains is associated with | | | *l := 65 状态域可定义为状态符,包含状态列表l := , * | l := ( , * ) l := *66在状态列表中表示状态的几种形式l单个状态名l多个状态名,如lS1,S2,S3l所有状态l*l除一些状态外的所有状态l*(S1,S2,S3)l下一个状态是自身状态时l-S1S1,S2,S3*-*(S1,S2,S3)67 状态符可接输入符、优先输入符、连续信号符

30、、保存符 状态机转移的结果是进入后继状态l := contains l := | -68触发事件l三种触发事件l输入事件、优先输入事件、连续信号事件l在SDL machine中隐含着输入队列l例子:键盘输入69触发事件输入事件触发事件输入事件1、输入、输入l状态机接收并消耗信号 图形语法l := contains is connected to is followed by l :=70 l := , * | l := ( , *) l := 允许条件(使能条件)允许条件(使能条件)lTrue:消耗信号,False:保存信号l := contains l := 输入信号可带参数输入信号可带参数

31、l使用变量接收参数值71输入接允许条件(使能条件)l当状态在S1时,收到输入信号msg后,l系统计算“XMAX”的结果l结果为真,消耗msg信号,继续进行后续状态转移过程;l结果为假,不消耗msg信号,msg信号依然在输入队列中,系统持续计算表达式“XMAX”,直到结果为真或系统由于其他输入信号而执行了其他状态迁移过程S1msgXMAX72触发事件优先输入事件触发事件优先输入事件2、优先输入优先输入l信号队列FIFO原则处理,但优先输入除外l不接允许条件符 l图形语法l := contains is followed by l := , *l := ( , *) l := 73触发事件输入事件

32、触发事件输入事件3、连续信号、连续信号l状态转移由布尔表达式取值引起l图形语法l := contains ; priority is followed by l := l :=l注意连续信号和允许条件的区别74自发转移自发转移l非外部激励也能使状态机发生转移1、图形语法l := contains none is followed by l进程实例PId值:Sender=Self2、举例none75保存保存1、图形语法l := contains l := | l := 2、举例76保存例子process P11(1)ac,dS1bdS2dS3eS4S5P1S1ecdabe77保存(上一个例子的处

33、理过程1)当前状态接收信号处理方式信号队列(用从左到右表示信号的先后次序)下一个状态信号队列保存队列e,c,d,a,b,e空S1e丢弃c,d,a,b,e空S1S1c保存d,a,b,ecS1S1d保存a,b,ec,dS1S1a消耗b,ec,dS2S2c丢弃b,edS2S2d保存b,edS2S2b消耗edS3S3d消耗e空S4S4e丢弃空空S4注:从上到下表示处理的顺序78保存(上一个例子的处理过程2)当前状态接收信号处理方式信号队列(用从左到右表示信号的先后次序,用红色表示保存的信号)下一个状态e,c,d,a,b,eS1e丢弃c,d,a,b,eS1S1c保存c,d,a,b,eS1S1d保存c,d

34、,a,b,eS1S1a消耗c,d,b,eS2S2c丢弃d,b,eS2S2d保存d,b,eS2S2b消耗d,eS3S3d消耗eS4S4e丢弃空S4注:从上到下表示处理的顺序79在输入中表示信号*ssS1,S2,S3S1,S2,S3l单个信号l多条信号lS1,S2,S3l除了在本状态下已经列出的信号外的所有信号l*80输入、连续信号、保存81迁移过程迁移过程l状态机受到激励之后,执行的一系列动作1、输出、输出l通过信道一个代理实例发信号给另一个代理实例 图形语法l := contains l := 82 迁移过程-输出l := , *l := ()l := expression , *l := t

35、o | *l := | | thisl := via | 83 迁移过程-输出说明l输出体中信号标识符可带参数,可以为数值、表达式、变量等l信号最终要被一个进程或过程消耗(to)lpid expression:self、sender、parent、offspringlagent identifier:进程实例名lthis:本进程类型l通过的路径(via)l承载信号的信道名l经过的信关lto和via不能同时使用;都不使用时,通过唯一的信道发送出去举例:门控系统的控制面板进程84OpenD oorTim eoutC los e V IA dA dm ittedV IA aR E S E T (D

36、oorTim eout)D oorP as s edU s erP as s ingR eadyTO C urrentP SIdlefrom dsA dm ittedR eadyU s er pas s ingR eadyfrom U s er S erv erE nterC ardV IA pps_1: PanelServerds: DoorServerUserServerpa ne ldoordoor用户通过85 迁移过程-创建进程2、创建、创建l静态创建,在系统初始化时创建l动态创建 图形语法l :=contains l :=l := | this 举例86动态进程处理l在SDL中可以动

37、态创建和撤销(created and destroyed)l可以使用创建符号来创建一个进程;在创建符号内包含着被创建的进程类型l用offspring保留变量来返回被创建的进程IDl在SDL中用终止符号 (Stop)来表示进程结束ProcessAoffspring 0yesno87The User ServerInitialisation Procedure W aitConfigConfigReqVIA ValConfigure(P)from Access ControlPError(2)(1)ELSEpsDCL P Integer; /*the number of panels*/PRO C

38、EDURE UInitialiseps_2:PanelServer88 迁移过程-任务3、任务、任务l执行与变量有关的动作 图形语法l := contains l := l := | 89 迁移过程-任务 说明l任务符包含语句列表l赋值语句、条件语句、分支语句、复合语句、设置语句、复位语句a)赋值l := x := 1; y := x + 190迁移过程-任务 b)IFlIf ( ) else c)DecisionlDecision () () : +else : d)组合语句e)非形式化文本描述 if ( x 0 ) x := 1; else x := x + 1; decision ( a

39、 ) ( =0 ) : b:=1; ( 1:9 ) : b:=2; else : b:=3; 91 迁移过程-过程调用4、过程调用、过程调用l在进程或过程中都可以调用过程l进程图和过程图的区别 图形语法l := contains l := 92过程图ProcedurelPROCEDURE: 和子程序类似 l用于在SDL进行代码重用l减少SDL进程图的大小,将注意力集中在主要迁移过程l可以通过value (IN)或reference (IN/OUT)的方式传递参数sigAstateCProcB(SENDER)PROCEDURE ProcBfpar player PId;Gameid to pla

40、yer93 迁移过程-调用和返回l := l := is associated with l := 说明l过程调用符中的实参与过程图中定义的形参匹配l过程图中定义的形参为in、out、in/out型l过程可有返回值,标在返回符旁l调用过程可认为是一个任务94过程与进程l起始符不同l过程必须有返回符l进程可以没有结束,即没有终止符l过程可以使用状态l过程没有信号输入队列,信号来自调用者(调用过程的进程)的信号输入队列95 迁移过程-分支5、分支、分支l分支操作是一个动作,通过计算条件表达式选择不同迁移过程 图形语法l := contains is followed by l :=96 迁移过程-

41、分支l := | | any l := + setl := is associated with is followed by l := | ( )l := is associated with elseis followed by l := | l := 97分支 process calling 2/5wait_for_numT1busyToneVIA uGwait_for_onHooknum(toNum)reset (T1)getUserPid (toNum, otherPid)otherPid = NULLTruemsg (Sorry,wrong number)wait_for_onHookFalsewait_for_connReplonHookreset (T1)A198 迁移过程-定时器6、定时器l在状态机图中,监视激励信号是否在定时器规定时间间隔内到达。若无激励到达,则触发超时事件,作为激励输入。l定时器操作包括:设置和复位l执行一个定时器操作即执行一个任务l超时作为一个触发事件,引起状态的迁移过程99 迁移过程-定时器 文本语法l := timer , * ;l := :=l := ( , * ) 图形语法l设置定时器、复位定时器l超时事件1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论