IBM
Contents Index Previous Next



SDL


SDL (Specification and Description Language) is mainly used for specifying behavior of real-time systems. This section provides a small overview of the language. For further reading, we recommend [27], [28] and [29] as useful textbooks about SDL. The SDL language is standardized by ITU-T, as recommendation Z.100 [24].

An SDL system consists of the following components:

Structure

Figure 630 shows the hierarchical levels in SDL: system, block, process, procedure and service.

Figure 630 : The hierarchical decomposition of an SDL specification

A system must contain at least one block and a block must contain at least one process. Services can exist within a process, being executed one at a time, controlled by the received signals. Thus the incoming signal sets of services in one process must be disjoint. Using procedures is a way to structure the information within processes and services. Processes, services and procedures are described by a flow chart-alike notation, see Behavior.

The static structure of a system is defined in terms of blocks. Blocks communicate by means of channels.

The dynamic structure of an SDL system consists of a set of processes that run in parallel. A process is a finite state machine extended with data. Processes are independent of each other and communicate with discrete signals by means of signal routes.

Communication

Since SDL does not allow any use of global data, all information that has to be exchanged must be sent along with signals between processes, or between processes and environment. Signals are sent asynchronously, i.e. the sending process continues executing without waiting for an acknowledgment from the receiving process.

Signals travel through channels between blocks, and from one process to another via signal routes. See Figure 630.

Synchronous communication is possible via a shorthand, remote procedure call. This shorthand is transformed to signal sending with an extra signal for the acknowledgment. Remote procedures are often used when a process wants to offer services to other processes.

Behavior

The dynamic behavior in an SDL system is described in the processes. Processes in SDL can be created at system start or created and terminated dynamically at run time. More than one instance of a process can exist. Each instance has a unique process identifier (PId). This makes it possible to send signals to individual instances of a process. The concept of processes and process instances that work autonomously and concurrently makes SDL appropriate for distributed applications.

Figure 631 : Behavior described by an SDL process

A process must have one start symbol. Since a process is a state machine, a transition between two states is made only after a signal has been received. If there are no incoming signals the process is inactive in a state. In SDL a transition takes no time. To be able to model time, and to set time restrictions, there is a timer concept. Each process has its own set of timers that can be set to expire on different durations.

Data

The set of predefined sorts in SDL makes it possible to work with data in SDL in a traditional way:

More complex data sorts can be created by using arrays, strings and structs.

Abstract Data Types in SDL can be used for more than representing data, e.g:

Data manipulation is hidden in operators. For a more thorough description on how to use complex data structures with operators in practice, please see [32].

Structural Typing Concepts

The object-oriented concepts of SDL give you powerful tools for structuring and reuse. The concept is based on type definitions. All structural building blocks can be typed: system type, block type, process type and service type. An exception is the procedure that is a type in its original form.

Figure 632 : Package with type definitions

Type definitions may be placed outside the system in packages. Packages can be seen as libraries of frequently used functions. The structural typing concepts are shown in Figure 632. All types can inherit from other types of the same kind.

Figure 633 : A system diagram with block instantiation and communication

One of the major benefits of using an object oriented language is the possibility to create new objects by adding new properties to existing objects, or to redefine properties of existing objects. This is what is commonly referred to as specialization.

In SDL-92, specialization of types can be accomplished in two ways:

Figure 633 and Figure 634 describe adding and redefining properties in a system and in a block type while Figure 635 describes the same features in a process type diagram.

To be able to instantiate a type regardless the context (by means of channels), a special concept is needed: gates.

Since a channel always has to be connected to a signal route and the connection mechanism lies inside the process, a gate is necessary since it is a way to specify the connection in a transparent manner.

Figure 634 : An inherited block type diagram with process
specialization, instantiation and communication

In the inherited block type Control, the process ctrl is an instance of the process type Control.

Figure 635 : A specialized process type with added signals, a new
transition and a redefined transition

Graphical and Textual Notation

The SDL language supports two notations that are equivalent. Beside the graphical representation (SDL/GR), a textual phrase representation (SDL/PR) is standardized.


http://www.ibm.com/rational
Contents Index Previous Next