SDL简介
SDL(Specificmion and Description Language)是ITU-T推荐使用的一种“实时系统的规格描述语言”。应用的主要领域是实时系统行为方面的规格,以及这类系统的设计。电信领域在这方面的应用包括:交换系统中的呼叫及连接处理(如呼叫处理、电话信令、计费);一般电信系统中的维护和故障处理(如告警、自动故障清除、例行测试);系统控制(如过载控制、更改及扩充过程);操作和维护功能、网络管理;数据通信控制;电信业务。
当然,任何实物,只要其行为的功能规格可以用离散模型规定,也就是说,此实物可用离散消息与其环境进行通信,就可以用SDL来规定其行为的功能规格。
SDL是一种丰富的语言,它不但可以用于高层非形式(或形式化的不完全)的规格描述,而且还可用于半形式化和具体的规格描述。在使用该语言时,用户应根据所要描述的通信层次和环境选用SDL的不同部分。依赖于功能规格的应用环境,在功能规格的来源与目标之间可能还会有许多方面需要进一步的共同理解。
使用SDL,可以半圆形、半文本地定义特定类型的嵌入式系统的功能描述。这种方法的高度正式性使SDL工具有可能生成和测试完整的嵌入式应用。国外大量软件评论家认为,SDL的这种正式方法应该推荐扩展应用到嵌入式系统之外。事实上,比如SDL的消息顺序图已经被普遍地应用到面向对象技术的CASE工具中,如Rational Rose在交互式图形部分广泛采用了这种技术。2
结构系统一个SDL系统就是用SDL规格所描述的一个具体物理存在,也就是目前从SDL语言的角度所关注的一切,对于目前不用SDL语言描述的,都作为SDL的环境看待。也就是说,一个具体的物理系统如果只用SDL描述了其中的一部分,那么这部分就是一个SDL系统,而该物理系统的其他部分对该SDL系统来讲,就都是它的环境。
SDL系统通过信道与环境连接。从理论上讲,SDL系统只需要一条双向信道与环境连接,但实际上,为了描述方便,经常为环境的每个逻辑接口提供一条信道。
每个系统可以划分为多个功能块,功能块之间通过信道相连,系统与环境之间的信道是连接到系统内的功能块的。各功能块相对于其他功能块而言是独立的,功能块之间以及功能块与环境之间的通信是靠发送信号来实现的。
环境SDL的环境是目前不用SDL规格描述的外界,由于外界这个范围是极其广大的,因此有必要对SDL系统的环境做进一步的界定。通常情况下,外界除了与SDL系统有交互作用的部分以外,还有许多与SDL系统没有任何作用的部分。对于这部分不与SDL系统发生任何关系的外界,在SDL的语义上都不能成为SDL系统的环境。
在与SDL系统有相互作用的部分,由于存在直接作用和间接作用,因此又可对SDL环境做进一步的界定。与SDL系统没有直接作用的部分也可排除在SDL系统的环境范畴之外。简单来讲,SDL系统的环境就是与SDL系统有相互通信的,而又没有用SDL规格描述出来的那部分实体。
功能块SDL的功能块是在SDL系统内的部分功能集合。通常情况下,功能块是一些关联较为密切的功能的集合。功能块的划分可以有多种依据:把部件定义得大小规模便于处理,能与实际的软、硬件划分相适应,与自然的功能划分相一致,把交互作用减小到最小等。由于出发点和功能划分的依据不同,一个SDL系统可以有多种功能块结构。
一个功能块又可根据需要划分为子功能块,以便在不同程度上对系统进行描述。子功能块与进程处在同一级,它们都通过一定的路由与信道相连。
功能块所包含的功能最终是由在功能块内的进程实现的。一个功能块又可由多个不同的进程来分别实现不同的功能。
信道信道是系统的功能块之间、功能块和环境之间进行通信的手段。一条信道可以单方向地(单向信道)或双方向地(双向信道)将一个功能块连接到另一个功能或者连接到环境。通常,信道是一种功能性实体,可用来表示特定的信息通路。事实上,通过划分信道可以形式地规定每个信道的行为。
一个信道规格为每个指定的方向给出一个信号表,列出能由该信道在该方向上传递的全部信号标识符。此信号表作为一种手段,用于保证由信道一端某一进程发送的每个信号都能被位于信道另一端的功能块中的进程所接收。
信号信号是SDL系统内以及SDL系统与环境进行信息交互的载体。信号定义一般包括信号名和类别表,类别表表示该信号传递的值的类型的表。在具体的应用中,类别表由实参组的参数表替代。2