El lenguaje de especificación y descripción ( SDL ) es un lenguaje de especificación destinado a la especificación y descripción inequívocas del comportamiento de sistemas reactivos y distribuidos .
Descripción general
La UIT-T ha definido SDL en las Recomendaciones Z.100 a Z.106. SDL se centró originalmente en los sistemas de telecomunicaciones; a partir de 2016Sus áreas de aplicación actuales incluyen el control de procesos y las aplicaciones en tiempo real en general. Debido a su naturaleza, puede utilizarse para representar sistemas de simulación [ 1 ] sin ambigüedad y con notación gráfica.
El lenguaje de especificación y descripción proporciona tanto una representación gráfica (SDL/GR) como una representación textual de frases (SDL/PR), ambas representaciones equivalentes de la misma semántica subyacente. Los modelos se suelen mostrar en formato gráfico SDL/GR, y SDL/PR se utiliza principalmente para el intercambio de modelos entre herramientas. Un sistema se especifica como un conjunto de máquinas abstractas interconectadas que son extensiones de máquinas de estados finitos (FSM). [ 2 ]
El lenguaje es formalmente completo , [ 3 ] por lo que puede utilizarse para la generación de código tanto para simulación como para objetivos finales.
El lenguaje de especificación y descripción abarca cinco aspectos principales: estructura, comunicación, comportamiento, datos y herencia. El comportamiento de los componentes se explica mediante la división del sistema en una serie de jerarquías. La comunicación entre los componentes se realiza a través de compuertas conectadas por canales. Estos canales son de tipo retardado, por lo que la comunicación suele ser asíncrona; sin embargo, cuando el retardo se establece en cero (es decir, sin retardo), la comunicación se vuelve síncrona.
La primera versión del lenguaje se publicó en 1976 utilizando una sintaxis gráfica (SDL-76). Esta se revisó en 1980 con una semántica rudimentaria (SDL-80). La semántica se perfeccionó en 1984 (SDL-84), se introdujo la forma textual para el procesamiento automático y se incorporaron datos. En 1988, se publicó SDL-88 con una base formal para el lenguaje: una gramática abstracta, una gramática concreta y una definición formal completa. La versión publicada en 1992 (SDL-92) introdujo conceptos orientados a objetos, como la herencia, los tipos genéricos abstractos, etc., con las características orientadas a objetos descritas mediante transformaciones en características no orientadas a objetos. SDL-2010 es la versión más reciente, una versión actualizada de SDL-2000 que se basó completamente en la orientación a objetos, en lugar de la descripción mediante transformaciones. Esta versión incluye un perfil UML : Recomendación ITU-T Z.109 (04/12), SDL-2010 combinado con UML. SDL-2010 también introdujo la compatibilidad con los tipos de datos C, tal como se introdujo inicialmente en SDL-RT.
Organización
Nivel de jerarquía
La jerarquía de niveles de SDL se estructura de la siguiente manera.
- Paquete de biblioteca
- Agente del sistema
- Agente de bloqueo
- Agente de proceso
- Tipo de procedimiento
- Procedimiento remoto
Arquitectura
Un sistema SDL se compone de bloques funcionales, y cada bloque puede descomponerse en subbloques. El bloque de nivel más bajo se compone de uno o varios procesos descritos como máquinas de estados finitos.
Comunicación
Los bloques están conectados mediante canales que transportan los mensajes (o señales) intercambiados entre ellos. Un agente de bloque consta de agentes de proceso.

Comportamiento
Cada agente de proceso es una máquina de estados que contribuye a la acción del sistema. Un estímulo de mensaje proveniente del entorno o de otro agente se denomina señal. Las señales recibidas por un agente de proceso se colocan primero en una cola (el puerto de entrada). Cuando la máquina de estados está en espera en un estado, si la primera señal en el puerto de entrada está habilitada para ese estado, inicia una transición que conduce a otro estado. Las transiciones pueden enviar señales a otros agentes o al entorno. Un agente de proceso puede contener tipos de procedimiento para que las mismas acciones puedan invocarse desde diferentes lugares. También puede llamar a un tipo de procedimiento remoto para invocar un procedimiento en otro agente (o incluso en otro sistema) y esperar una respuesta.

En este ejemplo, MyVariable es de tipo entero y es la única variable en el proceso. La primera transición es la transición de inicio que inicializa la variable local . Se envía un mensaje de solicitud de conexión conReq , se inicia un temporizador de 5 segundos conReqTimer y la máquina de estados pasa al estado de conexión . En el estado de conexión , si el temporizador finaliza (lo que equivale a la recepción de un mensaje), la solicitud de conexión se envía nuevamente hasta 10 veces. Si se recibe una confirmación de conexión, la máquina de estados pasa al estado conectado . Este es un escenario típico de protocolo de telecomunicaciones.
Los símbolos disponibles son:

Datos
Los tipos de datos abstractos (TDA) de SDL admiten tipos de datos básicos como INTEGER, REAL y CHARSTRING, así como tipos estructurados como estructuras (STRUCT), enumeraciones (LITERALES) y constantes (SYNONYMS). La sintaxis es similar a la de Pascal; por ejemplo, una asignación se escribe con ':='.
Variantes
- SDL-RT se basa en el lenguaje de especificación y descripción de la UIT, reemplazando el lenguaje de datos con C. [ 4 ] La última versión del estándar SDL (SDL'2010) ahora incluye soporte para tipos de datos y sintaxis de C, lo que convierte al principio básico de SDL-RT en parte del estándar oficial.
- TNSDL es una variante desarrollada por Nokia para su uso interno.
Tecnologías relacionadas
- Diagrama de secuencia de mensajes MSC . Otra notación relacionada con la UIT-T para describir el comportamiento dinámico de un sistema.
- ASN.1 (Abstract Syntax Notation One). Un estándar ISO para describir los tipos de datos que se pueden utilizar en SDL.
- TTCN-3 Notación de Pruebas y Control de Pruebas, versión 3. Un lenguaje de pruebas estandarizado por la UIT-T y escrito por ETSI.
- Lenguaje Unificado de Modelado (UML): Una notación de modelado genérica. Se ha estandarizado un perfil basado en SDL.
Véase también
Referencias
- ↑ Fonseca i Casas, Pau y Pi, Xavier y Casanovas, Josep y Jové, Jordi (2013). "Definición de modelos de simulación de realidad virtual mediante diagramas de lenguaje de especificación y descripción". SDL 2013: Ingeniería de confiabilidad basada en modelos . 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: varios nombres: lista de autores ( enlace ) - ↑ Este artículo se basa en material tomado de SDL en el Diccionario en línea gratuito de informática antes del 1 de noviembre de 2008 e incorporado bajo los términos de "relicencia" de la GFDL , versión 1.3 o posterior.
- ↑ R. Grammes; R. Gotzhein (2007). Enfoques fundamentales de la ingeniería de software . 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 .
- ↑ "Lenguaje de especificación y descripción – Tiempo real" . Consultado el 29 de marzo de 2014. El
uso principal de SDL-RT es el desarrollo de software embebido y en tiempo real. SDL-RT se basa en tareas que se ejecutan concurrentemente, intercambian información mediante mensajes y se sincronizan entre sí utilizando semáforos.
Enlaces externos
- Lenguajes de la UIT y aspectos generales del software para sistemas de telecomunicaciones
- Sociedad del Foro SDL
- Lista de herramientas SDL
- lenguajes de especificación formal
- Recomendaciones de la UIT-T
- Diagramas
- Lenguaje de modelado de software
- Protocolos de telecomunicaciones