什么是SDL
SDL (Specification and Description Language) ,定义了一种规范和描述语言, 是一种用于描述实时系统的建模语言。
SDL图说明了规范和描述语言建模的过程。它可广泛应用于汽车、航空、通信、医疗和电信领域。
SDL图有三个部分:
- 系统定义
- 块
-
流程
系统定义定义了系统的主要节点(块),如客户端和服务器,而块图显示了更多细节。
流程显示了每个块中的处理步骤。可以参考状态机和UML。
SDL的结构
-
系统
整体设计被称为系统,
系统之外的一切被称为环境。
系统没有特定的图形表示,但如果需要,可以使用块表示。 -
代理
代理是系统结构中的一个元素。代理有两种:块和进程。系统是最外层的块。
block
块是一种结构化元素,并不意味着目标上的任何物理实现。 一个块可以进一步分解成多个块,以此来处理大型系统。 块符号是一个实心矩形,中间是它的名称
Process
一个进程基本上就是将要执行的代码。它是一个基于有限状态机的任务,有一个隐式消息队列来接收消息。同一进程的多个实例可以独立运行。系统启动时出现的实例数和最大实例数在进程名称后的括号中声明。 过程符号的完整语法是: <进程名>[(<启动时的实例数> ,<最大实例数>)] 如果省略,则启动时实例数的默认值为1,最大实例数为无穷大。
Architecture
整体架构可以看作是一棵树,树叶就是过程。
Behavior
首先,一个进程有一个隐式消息队列来接收通道中列出的消息。
过程描述基于扩展的有限状态机。过程状态决定了过程在接受特定刺激时的行为。过渡是两种状态之间的代码。
该进程可以挂在它的消息队列或信号量上,或者运行例如执行代码。来自环境或从另一个代理到代理的信息刺激称为信号。过程代理接收的信号首先被放入队列(输入端口)。
当状态机处于等待状态时,如果输入端口中的第一个信号针对该状态被使能,则状态机开始转换到另一个状态。
Start
开始符号代表流程执行的起点
State
进程状态的名称写在状态符号中