Specification and Description Language
Encyclopedia
Specification and Description Language (SDL) is a specification language
targeted at the unambiguous specification and description of the behaviour of reactive and distributed systems.
(Recommendations Z.100 to Z.106). Originally focused on telecommunication systems, its current areas of application include process control and real-time applications in general.
The Specification and Description Language provides both a graphical Graphic Representation (SDL/GR) as well as a textual Phrase Representation (SDL/PR), which are both equivalent representations of the same underlying semantics. Models are usually shown in the graphical SDL/GR form, and SDL/PR is mainly used for exchanging models between tools. A system is specified as a set of interconnected abstract machines which are extensions of finite state machine
s (FSM).
The language is formally complete
, so it can be used for code generation for either simulation or final targets.
The Specification and Description Language covers five main aspects: structure, communication, behavior, data, and inheritance. The behavior of components is explained by partitioning the system into a series of hierarchies. Communication between the components takes place with through gates connected by channels. The channels are of delayed channel type, so communication is usually asynchronous, but when the delay is set to zero (that is, no delay) the communication becomes synchronous.
The first version of the language was released in 1976 using graphical syntax (SDL-76). This was revised in 1980 with some rudimentary semantics (SDL-80). The semantics were refined in 1984 (SDL-84), the textual form was introduced for machine processing and data was introduced. In 1988, SDL-88 was released with a formal basis for the language: an abstract grammar as well as a concrete grammar and a full formal definition. The version released in 1992 (SDL-92) introduced object oriented concepts such as inheritance, abstract generic types etc. with the object-oriented features described by transformations into non-object oriented ones. SDL-2000 (initially released 1999) is the latest version completely based on object-orientation, rather than description by transformations. This version has had maintenance updates since 1999 and is accompanied by a UML
-Profile: ITU-T Recommendation Z.109 (06/07), SDL-2000 combined with UML.
Usually a system agent consists of a number of block agents. Block agent communicate with each other using channels. A block agent consists of process agents (the required structure in SDL-92; SDL-2000 is more flexible). Each process agent is a state machine that contributes to the action carried out by the system. A message stimulus from the environment or another agent to an agent is called a signal. Signals received by a process agent are first placed in a queue (the input port). When the state machine is waiting in a state, if the first signal in the input port is enabled for that state it starts a transition leading to another state. Transitions can output signals to other agents or to the environment. A process agent is allowed to contain procedure types so that the same actions can be invoked from different places. It is also allowed to call a remote procedure type to invoke a procedure in another agent (or even another system) and wait for a response.
SDL-RT (see link below) is based on the ITU Specification and Description Language replacing the data language with C.
Specification language
A specification language is a formal language used in computer science.Unlike most programming languages, which are directly executable formal languages used to implement a system, specification languages are used during systems analysis, requirements analysis and systems design.Specification...
targeted at the unambiguous specification and description of the behaviour of reactive and distributed systems.
Overview
It is defined by the ITU-TITU-T
The ITU Telecommunication Standardization Sector is one of the three sectors of the International Telecommunication Union ; it coordinates standards for telecommunications....
(Recommendations Z.100 to Z.106). Originally focused on telecommunication systems, its current areas of application include process control and real-time applications in general.
The Specification and Description Language provides both a graphical Graphic Representation (SDL/GR) as well as a textual Phrase Representation (SDL/PR), which are both equivalent representations of the same underlying semantics. Models are usually shown in the graphical SDL/GR form, and SDL/PR is mainly used for exchanging models between tools. A system is specified as a set of interconnected abstract machines which are extensions of finite state machine
Finite state machine
A finite-state machine or finite-state automaton , or simply a state machine, is a mathematical model used to design computer programs and digital logic circuits. It is conceived as an abstract machine that can be in one of a finite number of states...
s (FSM).
The language is formally complete
Turing completeness
In computability theory, a system of data-manipulation rules is said to be Turing complete or computationally universal if and only if it can be used to simulate any single-taped Turing machine and thus in principle any computer. A classic example is the lambda calculus...
, so it can be used for code generation for either simulation or final targets.
The Specification and Description Language covers five main aspects: structure, communication, behavior, data, and inheritance. The behavior of components is explained by partitioning the system into a series of hierarchies. Communication between the components takes place with through gates connected by channels. The channels are of delayed channel type, so communication is usually asynchronous, but when the delay is set to zero (that is, no delay) the communication becomes synchronous.
The first version of the language was released in 1976 using graphical syntax (SDL-76). This was revised in 1980 with some rudimentary semantics (SDL-80). The semantics were refined in 1984 (SDL-84), the textual form was introduced for machine processing and data was introduced. In 1988, SDL-88 was released with a formal basis for the language: an abstract grammar as well as a concrete grammar and a full formal definition. The version released in 1992 (SDL-92) introduced object oriented concepts such as inheritance, abstract generic types etc. with the object-oriented features described by transformations into non-object oriented ones. SDL-2000 (initially released 1999) is the latest version completely based on object-orientation, rather than description by transformations. This version has had maintenance updates since 1999 and is accompanied by a UML
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...
-Profile: ITU-T Recommendation Z.109 (06/07), SDL-2000 combined with UML.
Hierarchy level
The Hierarchy level of SDL is structured as follows.- Library package
- System agent
- Block agent
- Process agent
- Procedure type
- Remote procedure
Usually a system agent consists of a number of block agents. Block agent communicate with each other using channels. A block agent consists of process agents (the required structure in SDL-92; SDL-2000 is more flexible). Each process agent is a state machine that contributes to the action carried out by the system. A message stimulus from the environment or another agent to an agent is called a signal. Signals received by a process agent are first placed in a queue (the input port). When the state machine is waiting in a state, if the first signal in the input port is enabled for that state it starts a transition leading to another state. Transitions can output signals to other agents or to the environment. A process agent is allowed to contain procedure types so that the same actions can be invoked from different places. It is also allowed to call a remote procedure type to invoke a procedure in another agent (or even another system) and wait for a response.
SDL tools
The most well-known SDL modelling tool is Telelogic Tau. Other commercial tools available in the market are ObjectGeode, Cinderella, Safire-SDL, PragmaDev which support both SDL and SDL-RT. SDL-RT is used to develop real-time and embedded software. There are some open source projects relative to SDL modeling like JADE which is a JAVA based specification environment.See also
- Specification (technical standard)Specification (technical standard)A specification is an explicit set of requirements to be satisfied by a material, product, or service. Should a material, product or service fail to meet one or more of the applicable specifications, it may be referred to as being out of specification;the abbreviation OOS may also be used...
- Specification languageSpecification languageA specification language is a formal language used in computer science.Unlike most programming languages, which are directly executable formal languages used to implement a system, specification languages are used during systems analysis, requirements analysis and systems design.Specification...
SDL-RT (see link below) is based on the ITU Specification and Description Language replacing the data language with C.
External links
- ITU Languages and general software aspects for telecommunication systems
- SDL forum
- SDL-RT for real time systems
- PragmaDev Real Time Developer Studio (COMMERCIAL)
- SDL Suite by IBM (acquired from Telelogic) an SDL Design Tool (COMMERCIAL)
- Cinderella SDL Design Tool (COMMERCIAL)
- SanDriLa SDL Design Tool (COMMERCIAL)
- SAFIRE Integrated Development & Run-Time Environment (COMMERCIAL)
- SDL tool from Humboldt University of Berlin