Introducción a los ADL
Los Lenguajes de Descripción de Arquitectura (ADL) son lenguajes formales utilizados para representar la arquitectura de un sistema de software. Definen los componentes, conectores y la configuración general del sistema, permitiendo un alto nivel de abstracción y facilitando el análisis y la validación.
ADLs Clave y sus Características
- UniCon: Generación de código para interconectar componentes existentes utilizando protocolos de interacción comunes.
- Weaves: Arquitecturas de flujo de datos, caracterizadas por un alto volumen de datos y requisitos de procesamiento en tiempo real.
- Wright: Modelado y análisis (específicamente, análisis de interbloqueo) del comportamiento dinámico de sistemas concurrentes.
- xADL: ADL extensible basado en XML, fundamentado en xArch.
- Darwin: Lenguaje para describir las estructuras de software, como topologías de red en sistemas distribuidos y dinámicos. Posee notación textual y gráfica.
- FSP (Finite State Process): Lenguaje de especificación que proporciona una forma concisa de describir Sistemas de Transición Etiquetados (LTS). Cada expresión FSP se puede asignar a una LTS finita y viceversa. La especificación FSP se basa en la definición de procesos, cuyo comportamiento se modela mediante LTS. La herramienta CSALP genera automáticamente el LTS asociado a la especificación FSP.
- Koala: ADL diseñado específicamente para el modelado de software integrado en la electrónica de consumo. Hereda de Darwin los conceptos principales, pero está más orientado a las notaciones y conceptos utilizados en productos electrónicos de consumo. Permite especificar arquitecturas jerárquicas, distinguir entre tipos de componentes e instancias, construir configuraciones y modelar interfaces opcionales.
- Rapide: ADL basado en eventos. El comportamiento de los componentes y la interconexión se representan mediante secuencias de eventos explícitos. Los eventos son el método de comunicación y se organizan en Posets (conjuntos parcialmente ordenados). Los sistemas especificados pueden ser simulados y visualizados gráficamente mediante el conjunto de herramientas Rapide. Ejemplo de Poset: eventos en una gasolinera (Levantar, Dejar, Usar tarjeta de crédito, Lavar ventana, Gas Pump).
- xArch/xADL 2.0: Representación basada en XML para la construcción de ADLs. Se compone de un núcleo de elementos arquitectónicos básicos, definido en un esquema XML llamado esquema de «instancias». Proporciona definiciones para: instancias de componentes, conectores, interfaz y enlaces; subarquitecturas (para componentes jerárquicamente compuestos); y grupos (para combinar elementos básicos).
Requisitos de un ADL
- Permitir la creación, refinamiento y validación de la arquitectura.
- Establecer reglas para definir la completitud y consistencia.
- Permitir la representación de estilos arquitectónicos.
- Proveer diferentes vistas del sistema, según la información que se quiera observar.
- Soportar familias de implementación que compartan elementos comunes.
- Proveer capacidades de análisis a nivel de arquitectura o la capacidad de generar prototipos de implementación.
- Modelar explícitamente componentes, conectores y sus configuraciones.
- Contar con soporte de herramientas para: representación, proceso de diseño, análisis estático y dinámico, evolución, refinamiento, trazabilidad y simulación/ejecutabilidad.
Fortalezas y Debilidades de los ADLs
Fortalezas
- Representan una forma formal de describir una arquitectura.
- Generalmente son textuales, facilitando su procesamiento por máquinas y la automatización.
- Soportan la descripción de un sistema a alto nivel.
- Pueden ayudar a validar la completitud, consistencia, desempeño, entre otros, gracias a su naturaleza formal.
- Permiten la generación automática de sistemas.
Debilidades
- Al ser textuales, pueden no ser atractivos para arquitectos u otros usuarios fuera del dominio específico.
- Algunos se especializan en dominios muy específicos.
- Algunos carecen de soporte de herramientas adecuado (por ejemplo, notación gráfica o editor).
- El soporte de herramientas es a menudo limitado o centrado en la academia.
- La mayoría aún no soporta múltiples vistas.