What is SDL?
The acronym SDL as used in the name of SDL Forum Society (and this www site) is used to apply to System Design Languages (in particular the ITU Specification and Description Language and other related languages such as ASN.1, MSC and TTCN from ITU and UML from OMG). As an acronym, SDL has several other meanings (see here), including in the past the ITU Specification and Description Language (that is, International Telecommunication Union Recommendation Z.100 series). On this www site the endeavour is to always use SDL with broader meaning above, and use ITU Specification and Description Language, Z.100, SDL-88, SDL-92, SDL-2000, SDL-2010 and so on for versions of the ITU Z.100 series language. Though the Society originated from interest in the use of the Z.100 series language and MSC, it was soon realised that in reality the systems engineering involves a number of different System Design Languages (SDL), so the scope was broadened.
ITU Specification and Description Language
The focus of interest is the Z.100 series language: a video Introduction to SDL can be found here, a full tutorial about SDL-88 can be found here and a tutorial about SDL-92 supplied by Telelogic (now IBM Rational) to the International Engineering Consortium (IEC) Proforum series can be found online here. Some introductory slides on SDL-2000 can be found here, and a set of powerpoint slides presented at the 2nd SAM work shop can be found as a pdf file here. The Integrated Method (TIMe) includes a tutorial here.
The key features of the Z.100 series language are:
- the ability to be used as a wide spectrum language from requirements to implementation;
- suitability for real-time, stimulus-response systems;
- presentation in a graphical form;
- a model based on communicating agents (extended finite state machines);
- object oriented description of components.
Although the ITU Specification and Description Language is widely used in the telecommunications field, it is also now being applied to a diverse number of other areas ranging over aircraft, train control, medical and packaging systems. It is a general purpose description language for communicating systems. The basis for description of behaviour is communicating Extended State Machines that are represented by agents that are usually process agents (processes), but can be block agents (blocks). Communication is represented by signals and can take place between agents or between agents and the environment of the system model. Some aspects of communication between agents are closely related to the description of system structure. An Extended State Machine consists of a number of states and a number of transitions connecting the states. The outermost block (enclosed by the environment) is the system agent. When an agent instance is started, any contained agent instances are started. Each machine starts in a transition leading to an initial state. Within a process only one state machine (of the process agent or any of its contained process agents) is interpreting a transition at any one time: there is an interleaved interpretation of the state machines contained in the outer process. A block does not have this constraint, so concurrent interpretation is possible.
The language has been evolving since the first Z.100 series Recommendation in 1980 with updates in 1984, 1988, 1992, 1996, 1999, 2011, 2016, 2019 and 2021. Object Oriented features were included in the language in 1992. This was extended in SDL-2000 to give better support for object modelling and for code generation. SDL-2000 was first published in 1999 and lasted updated (corrections and minor modifications) in 2007. A further revision produced SDL-2010 (approved by ITU-T in 2011). The 2016, 2019 and 2021 versions update SDL-2010.
NOTE: SDL-88, SDL-92 and SDL-2010 refer to versions of the standard; SDL'99 and SDL'01 refer to the 1999 SDL Forum and 2001 SDL Forum, SDL2003, SDL2005 and SDL2007 refer to the 11th, 12th and 13th SDL Forum respectively.
Stability of the language is an important attribute to users, and SDL-92 was effectively a superset of SDL-88. Therefore, any system definition that conforms to SDL-88 was also (with a few exceptions) valid SDL-92. However, SDL-92 has many advantages in the way that systems can be structured using object features of the language, and the most popular tools still support most of the SDL-92 features.
In 1996 a few updates were made to the language in an addendum to the SDL-92 defined by the 1992 Z.100 standard. The addendum relaxed a number of rules for the language to make it easier to use in a even more flexible way. In general this is still called SDL-92.
For SDL-2000, the opportunity was taken to remove some features that were not strongly supported by tools. Object modelling was strengthened and better support given for programming directly in the language. In particular the data model was revised to give such features as global data and data object types. The structuring features (blocks and processes) were harmonized into the agent concept. Support for ASN.1 was strengthened, so that the use of ASN.1 modules within the Z.100 language no longer requires any change main body of the language. To enable these changes, a few elements of old models may need a few changes for SDL-2000 tools, but the updates have been designed and documented for automatic tool conversion.
Some features of SDL-2000, were never generally supported by tools (in particular exceptions and data object types) but produced complexity in the language, and it was agreed in SDL-2010 to delete exceptions and some minor features, and at the same time adding others (such as 'input via gate' and "state timers') requested by users. The object oriented data object types have been superseded in SDL-2010 by giving variables a ref aggregation kind that is treated differently on assignment. A further enhancement has been the inclusion of a mechanism for including a different syntax for expressions, which is given in Z.104 Annex C Language Binding - currently only for the C language syntax as an alternative to the native SDL-2010 data language. The route map to SDL-2010 is documented in a number of public documents on SDL-2010 that can be found here.
System Design Languages
For systems engineering, the ITU Specification and Description Language is usually used in combination with other languages: MSC, ASN.1, TTCN and UML. The use of the object model notation of SDL-2010 in combination with MSC, traditional Z.100 state models and ASN.1 is a powerful combination that covers most aspects of system engineering. This set of notations meets criteria for UML, and there is a UML profile (Rec. ITU-T Z.109) for the ITU specification and description language. The TTCN language is used to test or validate systems, and the ITU Specification and Description Language is often used to engineer systems or standards to be tested or validated using TTCN.
These languages have been studied in the same group within the ITU, and therefore also come within the scope of the SDL Forum Society.
Results from the standards work
Recommendations (in same cases with enhanced hyper-linking) are available through the Society to members. The definitive versions are published by ITU-T.
The Society has been granted permission from ITU-T to distribute a version of the Specification and Description Language and Message Sequence Chart Recommendations via its site.
If you are a member but need the name/password combination to access the documents send a message to admin of sdl-forum.org.
Society members can also participate in ongoing SDL standards work because the Society is approved By the ITU for the Communication Process of ITU Recommendation A.4. Members therefore have access to all the latest documents, changes and corrections to ITU system design languages.