Recent from talks
Nothing was collected or created yet.
Specification and Description Language
View on WikipediaSpecification and Description Language (SDL) is a specification language targeted at the unambiguous specification and description of the behaviour of reactive and distributed systems.
Overview
[edit]The ITU-T has defined SDL in Recommendations Z.100 to Z.106. SDL originally focused on telecommunication systems; As of 2016[update] its current areas of application include process control and real-time applications in general. Due to its nature it can be used to represent simulation systems [1] without ambiguity and with a graphical notation.
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 machines (FSM).[2]
The language is formally complete,[3] 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 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-2010 is the latest version, an updated version of SDL-2000 that was completely based on object-orientation, rather than description by transformations. This version is accompanied by a UML-Profile: ITU-T Recommendation Z.109 (04/12), SDL-2010 combined with UML. SDL-2010 also introduced the support of C data types as initially introduced by SDL-RT.
Organization
[edit]Hierarchy level
[edit]The hierarchy level of SDL is structured as follows.
- Library package
- System agent
- Block agent
- Process agent
- Procedure type
- Remote procedure
Architecture
[edit]An SDL system is made of functional blocks and each block can be further decomposed in sub-blocks. The lowest level block is composed of one process or several processes described as finite-state machines.
Communication
[edit]Blocks are connected through channels that carry the messages (or signals) exchanged between the blocks. A block agent consists of process agents.
Behavior
[edit]Each process agent is a state machine that contributes to the action carried out by the system. A message stimulus coming from the environment or from 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.
In this example MyVariable is of type INTEGER and is the only variable in the process. The first transition is the start transition that initializes the local variable. A connection request message conReq is sent, a 5 seconds timer conReqTimer is started, and the state machine goes to the connecting state. In the connecting state if the timer goes off -that is equivalent to a message receive- the connection request is sent again up to 10 times. If a connection confirmation is received the state machine goes to connected state. This is a typical telecommunication protocol scenario.
Available symbols are:
Data
[edit]SDL Abstract Data Types (ADT) support basic data types such as INTEGER, REAL, CHARSTRING as well as structured ones such as structures (STRUCT), enumerated (LITERALS), constants (SYNONYMS). Syntax looks like the one from Pascal, for example an assignment is written ':='.
Variants
[edit]- SDL-RT is based on the ITU Specification and Description Language replacing the data language with C.[4] Latest version of SDL standard (SDL'2010) now includes the support of C data types and syntax making SDL-RT basic principle part of the official standard.
- TNSDL is a variant developed by Nokia for their internal use.
Related technologies
[edit]- MSC Message Sequence Chart. Another ITU-T related notation to describe the dynamic behavior of a system.
- ASN.1 (Abstract Syntax Notation One). An ISO standard to describe data types that can be used within SDL.
- TTCN-3 Testing and Test Control Notation version 3. A testing language standardized by ITU-T and written by ETSI.
- Unified Modeling Language A generic modeling notation. A profile has been standardized based on SDL.
See also
[edit]References
[edit]- ^ Fonseca i Casas, Pau and Pi, Xavier and Casanovas, Josep and Jové, Jordi (2013). "Definition of Virtual Reality Simulation Models Using Specification and Description Language Diagrams". SDL 2013: Model-Driven Dependability Engineering. Lecture Notes in Computer Science. Vol. 7916. Springer Berlin Heidelberg. pp. 258–274. doi:10.1007/978-3-642-38911-5_15. hdl:2117/22156. ISBN 978-3-642-38910-8.
{{cite book}}: CS1 maint: multiple names: authors list (link) - ^ This article is based on material taken from SDL at the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.
- ^ R. Grammes; R. Gotzhein (2007). Fundamental Approaches to Software Engineering. Lecture Notes in Computer Science. Vol. 4422. Springer. pp. 200–214. doi:10.1007/978-3-540-71289-3_17. ISBN 978-3-540-71288-6. S2CID 22556123.
- ^
"Specification and Description Language – Real Time". Retrieved 2014-03-29.
SDL-RT prime use is to develop real time and embedded software. SDL-RT is based on tasks running concurrently that exchange information through messages and synchronize with each other using semaphores.
External links
[edit]Specification and Description Language
View on GrokipediaIntroduction
Definition and Purpose
Specification and Description Language (SDL) is an object-oriented, formal language standardized by the International Telecommunication Union—Telecommunication Standardization Sector (ITU-T) in Recommendation Z.100, designed for specifying and describing complex, event-driven, real-time, and interactive systems, particularly in telecommunications.[6][3] It enables the unambiguous modeling of system behavior, architecture, and data through precise constructs that support reactive environments with asynchronous communication via discrete signals.[6] Initially developed in the 1970s by a CCITT study group comprising telecommunications experts from companies like Ericsson and Motorola, SDL addressed the need for reliable protocol design in increasingly complex networks.[3] The primary purposes of SDL include the specification of communication protocols and system architectures, validation of designs through simulation and formal verification, and the automatic generation of executable code from models.[6][3] By focusing on reactive systems—where components respond to external events rather than executing in a strictly sequential manner—SDL facilitates the description of distributed and concurrent processes, making it suitable for applications requiring high reliability and performance.[6] Key benefits of SDL stem from its formal semantics, which allow for rigorous verification to detect inconsistencies early in the design process, and its graphical notation, which enhances readability and communication among stakeholders without sacrificing precision.[3] Additionally, its inherent support for concurrency and distribution enables efficient modeling of parallel activities and inter-system interactions, reducing errors in large-scale implementations.[6][3]Historical Development
The Specification and Description Language (SDL) originated from research efforts initiated by the International Telegraph and Telephone Consultative Committee (CCITT, now known as ITU-T) in 1972, specifically aimed at providing a formal method for specifying telecommunications protocols and systems. This work addressed the need for unambiguous description of complex, event-driven systems in the telecommunications domain, building on earlier ITU studies from 1968 on stored program control switching systems. The first formal version of SDL was published in 1976 as part of the CCITT Recommendations in the Z.100 series, appearing in the so-called Orange Book edition and establishing a basic graphical notation for system behavior.[3][7][8] SDL underwent major revisions aligned with CCITT/ITU-T plenary assemblies, reflecting evolving needs in system specification. The 1980 Yellow Book edition introduced formal semantics for processes, enhancing the language's ability to model dynamic behavior. The 1984 Red Book further advanced SDL by incorporating abstract data types, allowing for more structured data handling and algebraic specifications. The 1988 Blue Book (SDL-88) focused on process-oriented enhancements, including improved support for concurrency, system composition, and remote procedures, which facilitated the development of effective simulation and validation tools. The 1992 revision (SDL-92) introduced object-oriented features such as inheritance and encapsulation. The 1996 revision expanded the language and simplified interfacing with other tools.[9][10][11][2] The late 1990s marked a pivotal shift in SDL's paradigm, with the 1999 edition (SDL-2000) further enhancing the object-oriented features with agents, polymorphism, and a more comprehensive object model, moving toward more modular and reusable designs; this version received minor updates in 2007 for compatibility. SDL-2010, approved in 2010 and last revised in 2021, refined these elements by removing exception handling, adding input mechanisms such as "input via gate," improving formal semantics, and enhancing integration with other ITU-T languages and support for distributed systems, without introducing major new constructs.[12][2][13] Key influential events in SDL's development include its widespread adoption in European Telecommunications Standards Institute (ETSI) specifications for protocol design and validation, starting in the 1980s and continuing through standards like the Intelligent Network Application Protocol. In the 1990s, SDL was integrated with Message Sequence Charts (MSC, standardized in ITU-T Z.120 in 1992 and revised in 1996), enabling complementary use for scenario-based and state-based modeling in telecommunications applications.[14][15] As of 2025, SDL-2010 remains the active ITU-T standard, with only minor errata issued since its 2021 revision and no major new version announced, sustaining its role in maintaining legacy telecommunications infrastructure while supporting modeling in modern distributed and reactive systems, such as embedded and high-performance computing environments.[12][2][16]Language Fundamentals
Graphical Notation
The graphical notation of the Specification and Description Language (SDL), also known as SDL/GR, provides a formal, visual representation for specifying the structure and behavior of complex, real-time systems, particularly in telecommunications. Standardized by the ITU-T, this notation uses distinct symbols to model system hierarchies, communication pathways, and dynamic processes, enabling unambiguous descriptions that complement the textual form.[1] Core graphical elements include block diagrams for capturing system structure, process graphs for depicting behavior, and symbols for signals and channels to illustrate communication. Block diagrams outline the static organization, showing how the system decomposes into subsystems, while process graphs represent extended finite state machines that define operational dynamics. State transition diagrams, embedded within process graphs, detail how processes respond to inputs and evolve through states. Additionally, data elements in diagrams reference Abstract Syntax Notation One (ASN.1) types to specify message contents precisely.[3] Specific symbols standardize the notation: rectangles denote blocks, representing modular components that encapsulate processes and channels; rounded rectangles indicate states within a process, marking points where the process awaits stimuli; dashed arrows symbolize signals, depicting asynchronous messages routed between processes; and solid lines represent channels, defining pathways for signal transmission across blocks. These symbols support hierarchical decomposition, where blocks can nest to form larger architectures, and integrate with ASN.1 notations for structured data visualization in signal definitions.[17] The graphical notation offers advantages such as intuitiveness for engineers familiar with diagrammatic modeling, facilitating quick comprehension of system overviews without delving into code. It enables hierarchical decomposition for managing complexity in large-scale designs and integrates seamlessly with computer-aided tools for editing, validation, and simulation, reducing errors in specification.[3] For example, a simple block-process hierarchy might depict a system block named "ControlUnit" as a rectangle containing two subprocess blocks—"InputHandler" and "OutputManager"—connected by a solid-line channel labeled "DataFlow." Within "InputHandler," a process graph shows a rounded rectangle for the initial "Idle" state, from which a dashed arrow labeled "ReceiveSignal" transitions to a "Processing" state upon signal input, illustrating basic structural and behavioral integration.Textual Notation
The textual notation of SDL provides a linear, programmatic representation of specifications as an alternative to its graphical form, enabling precise, machine-readable descriptions of system structures and behaviors. Defined in ITU-T Recommendation Z.100, this notation follows a formal concrete syntax expressed in extended Backus-Naur Form (EBNF), which outlines the grammar for elements such as agent types and diagrams.[1] Key keywords structure the language, including SYSTEM for top-level system types, BLOCK for modular subsystems, PROCESS for concurrent entities, STATE for behavioral states, INPUT and OUTPUT for signal handling, and SIGNAL for communication primitives.[1] For instance, a basic process declaration might appear as:PROCESS example_process;
DCL variable INTEGER;
STATE initial_state;
INPUT signal1;
TASK variable := 1;
ENDPROCESS;
PROCESS example_process;
DCL variable INTEGER;
STATE initial_state;
INPUT signal1;
TASK variable := 1;
ENDPROCESS;
SYNONYM mytype INTEGER;) and DCL for variables (e.g., DCL counter INTEGER;).[1] Transitions within states employ TASK for actions, such as assignments or informal text (e.g., TASK counter := counter + 1;), and DECISION for conditional branches (e.g., DECISION; IF condition THEN alternative1 ELSE alternative2 ENDIF;).[1] Procedures are specified with the PROCEDURE keyword, supporting parameters and remote calls (e.g., PROCEDURE compute (IN param INTEGER) RETURNS result INTEGER;), and integrate with the abstract syntax notation defined in Annex F of Z.100 for type expressions and specializations.[1] The notation also accommodates ASN.1 integration for advanced data types, using operators like mkstring for bitstrings.[1]
Conversion between graphical and textual notations is bidirectional, with rules in Appendix III of Z.100 facilitating transformations—such as replacing graphical references with textual definitions—primarily supported through SDL tools for programmatic generation and editing.[1] While the textual form excels in precision for formal verification and automated analysis due to its parseable structure, it can be less intuitive for visualizing complex hierarchies compared to diagrams.[1] Limitations include the absence of direct support for parallel transitions in processes and restrictions on instantiating abstract types, enforcing sequential semantics.[1] As of the latest ITU-T Recommendation Z.100 (06/2021), the textual notation aligns with SDL-2010 semantics, excluding deprecated features like exceptions.[1]



