410 likes | 587 Views
Architectural Description Languages. Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com. Agenda. Ubicación de ADLs en Arquitectura Estilos Definiciones de ADLs ADLs Short List Demo - Jacal. Arquitectura.
E N D
Architectural Description Languages Carlos Reynoso* – Nicolás KicillofUniversidad de Buenos Aires* billyreyno@hotmail.com
Agenda • Ubicación de ADLs en Arquitectura • Estilos • Definiciones de ADLs • ADLs • Short List • Demo - Jacal
Arquitectura Arquitectura de software - IEEE 1471-2000:“...la organización fundamental de un sistema encarnada en sus componentes, sus relaciones con cada uno de los otros y con el entorno, y los principios que orientan su diseño y evolución”.
Estilos • Flujo de datos • Secuencial en lotes • Red de flujo de datos (tuberías & filtros) • Bucle de control cerrado • Llamada y Retorno • Programa principal / subrutinas • Ocultamiento de información (ADT, objeto, cliente/servidor elemental) • Procesos interactivos • Procesos comunicantes • Sistemas de eventos (invocación implícita, eventos puros) • Repositorio Orientado a Datos • Bases de datos transaccionales (cliente/servidor genuino) • Pizarra • Compilador moderno • Datos Compartidos • Documentos compuestos • Hipertexto • Fortran COMMON • Procesos LW • Jerárquicos • - En capas (intérpretes)
ADLs • Herramientas de modelado que soportan desarrollos basados en arquitecturas • Estructura de alto nivel, no detalle de implementación • Poco consenso respecto a definición de ADL, aspectos a considerar y adecuación de ADLs a estilos • Poca distinción entre ADL, especificación formal, interconexión de módulos (MIL), herramientas de modelado y hasta lenguajes de programación
Condiciones de ADLs • Shaw y otros, 1995: • Capacidad para modelar componentes con aserciones de propiedades, interfaces e implementaciones • Capacidad de modelar conectores con protocolos, aserción de propiedades e implementaciones • Abstracción y encapsulamiento • Tipos y verificación de tipos • Capacidad para integrar herramientas de análisis
Condiciones… • Componentes • Conectores • Configuraciones o sistemas • Propiedades no funcionales • Restricciones • Estilos • Evolución • Herramientas de verificación
Otras herramientas • Lenguajes de especificacíón (LARCH, Z) • Lenguajes de prototipado (Modechart, PSDL) • Lenguajes de modelado (UML) • Lenguajes de programación (CODE, Ada) • Herramientas para definición de ciclo de vida (UNAS/SALE)
Acme / Armani • Lenguaje de intercambio de arquitectura • 1995, Carnegie Mellon • Lenguaje Acme • Acme Tool Developer’s Library (AcmeLib) • 4 tipos de arquitectura • Estructura, propiedades (comportamiento), restricciones, tipos y estilos • Estructura: componentes, conectores, sistemas, puertos, roles, representaciones y rep-mapas
Acme/Armani • Semántica sólo como comentario • No genera código • Maneja estilos (familia) • Varias herramientas en ambiente Windows: • AcmeStudio • Armani con front-end Visio • ISI: front-end Powerpoint • ADML: lenguaje de markup de arquitectura, derivado de Acme (estándar) • Armani: ADL. Declarativo Acme Armani
ADML • Open Group, 2000 • ADML: XML con DTD • xADL (“Zaydal”,UCI): Schemas para estilos (Aplicación de xArch) • xArch (UCI/Carnegie Mellon): lenguaje basado en XML para descripción de arquitecturas – Placeholder para implementaciones variables
Aesop (1/4) • Parte del proyecto ABLE de CMU (con Wright) • Herramienta para construir ambientes de desarrollo que soporta Estilos • Conjunto de estilos para definir nuevos diseños • Design manager • Interface gráfica • Basado en Tcl/Tk – Corre por separado y puede reemplazarse por otros • Tool integration framework: • Incorporación de otras herramientas (compiladores, herramientas de análisis, etc) • Repositorio para reutilización de patrones • Semántica como comentario
Aesop (2/4) • Ontología basada en 7 entidades • Componentes • Conectores • Configuraciones • Topologías de componentes y conectores • Puertos • Interfaces de componentes • Roles • Interfaces de conectores • Representaciones • “Contenidos” de componente o conector • Bindings • Correspondencias entre configuración externa o externa de puertas o roles
Aesop (3/4) • Requiere manejar diversos lenguajes • FAM Command Language (FCL) – Extensión de Tcl/Tk que soporta modelización arquitectónica, etc • Los elementos de definen por herencia de tipos básicos (componente, conector, etc) • Actualmente corre sobre workstations Sun (SunOS) • http://www.cs.cme.edu/Web/Groups/ABLE/Aesop • El link para obtener Aesop parece no estar activo (enero/2004) Aesop
C2 SADL, C2SADEL • C2 SADL (Simulation Architecture Description Language) • ADL que permite describir arquitecturas en estilo C2 • C2SADEL – Variante. Incluye DRADEL (Development of Robust Architectures using a Description and Evolution Language) • xArch, xADL: Inicialmente ligados a C2
C2 SADL, C2SADEL • SADL • Módulos declarativos e imperativos • 1) IDN Interface Description Notation • 2) ADN Architecture Description Notation • 3) ACN Architecture Construction Notation • Windows: • DRADEL (Int. Para C2SADEL) • SAAGE (requiere Rose o Dradel) • ArchStudio – Argo (discontinuado) SADL – IDN, ADN
CHAM • Chemical Abstract Machine • Técnica de especificación basada en álgebra de procesos • Moléculas (componentes básicos) • Soluciones de moléculas (multiconjuntos que definen estados) • Reglas de transformación (cambios de estado) – No determinismo si hay + de una regla para una molécula o solución
CHAM • Ejemplo de compilador Lisp CHAM
Darwin (1/2) • ADL orientado a arquitecturas dinámicas • Descripción de tipo de componente mediante interfaz • Interfaz: colección de servicios (a) provistos [declarados por componente], o (b) requeridos [presentes en el entorno] • Desarrollo consiste en instanciar declaraciones de componentes y establecer relaciones entre servicios • Soporta reconfiguración dinámica e instanciación tardía
Darwin (2/2) • Las propiedades de un componente son sólo comentarios • No hay soporte real de estilos: sólo se pueden expresar constructivamente (construyendo algoritmos que representen los miembros) • Semántica basada en cálculo Pi • Interfaz gráfica: Software Architect’s Assistant, discontinuado Darwin
LILEANNA • Navegación de helicópteros, Loral Federal Systems / ARPA • No es ADL en sentido estricto • La estructura se modela distribuyendo información entre la definición de componentes individuales y conectores • Es un lenguaje de interconexión de módulos (MIL, MCL) • Utiliza Ada para implementación y Anna para especificación
MetaH / AADL (1/2) • Guía, navegacíon y control aeronáutico • MetaH: Base textual para AADL (Avionics…) – No confundir con Axiomatic… [diseño computadoras paralelas] • Windows: MetaH Graphical Editor basado en DoME
Rapide (1/2) • Lenguaje de descripción de propósito general – Modelado de interfaces de componentes y conductas observables (Stanford) • ADL + lenguaje de simulación • 5 lenguajes: de tipos (interfaces de componentes); de arquitectura (flujo de eventos); de especificación (restricciones abstractas de conducta); ejecutable (describe módulos ejecutables); de patrones (describe patrones de eventos) • Modela conducta (= Wright) • Genera código C++ o Ada • …
Rapide (2/2) • Define tipos de componentes llamados interfaces: colecciones de eventos de comunicación que pueden ser (a) observados (acciones externas) o (b) iniciados (acciones públicas) • El comportamiento se define vinculando observación de acciones externas con iniciación de acciones públicas • Cada especificación posee conducta asociada que se define mediante conjuntos de eventos parcialmente ordenados (posets) • También descripción de comportamientos con lenguaje basado en SML, con eventos y patrones de eventos • Medvidovic: simulación verifica una arquitectura, pero no un escenario (un poset distinto) • Toolset disponible para Sun, Linux, etc – No evoluciona desde 1997 Rapide
UML • No es un ADL • Deficiencias como lenguaje de especificación … [estereotipos] • Deficiencias en torno de roundtrip engineering … [metamodelos] • Ej: Asociación – Agregación - Composición • Se ha usado como metalenguaje para implementar semántica de C2 SADL o Wright
UniCon (1/2) • Universal Connector Support, Shaw et al, 1995 – Proyecto Vitruvius, CMU • Herramienta de diseño para construir configuraciones ejecutables • Tipos de componentes, implementaciones y conexiones expertas • Orientado a construir sistemas a partir de descripciones arquitectónicas • Sitio muerto desde hace un tiempo UniCon
UniCon (2/2) • No posee recursos de descripción de estilos • Los puntos de interfaz de componente (players) tienen (1) tipo que detalla la interacción esperada, (2) propiedades que detallan la interacción • En momento de configuración, se asocian players de componentes con roles de conectores • Sólo tiene un conjunto limitado de tipos (= Darwin) • Omitimos código de definición de pipe-filter por ser casi tan extenso como el de un modelo en lenguaje de implementación
Wright (1/2) • Herramienta de formalización de conexiones arquitectónicas, CMU (parte de proyecto ABLE) • ABLE: herramienta de diseño (Aesop), especificación formal (Wright) • Integración de metodología formal con descripciones arquitectónicas • Aplica procesos formales (álgebra de proceso y refinamiento de proceso) a verificación automatizada de propiedades de arquitectura
Wright (2/2) • Declara conjunto de tipos de componentes y conectores y conjunto de restricciones • Modelo semántico basado en CSP (Communicating Sequential Process de Hoare) • Verificación mediante verificador comercial FDR • Restricciones: predicado que debe ser satisfecho por cualquier configuración que se declare miembro del estilo • Notación de restricciones: cálculo de predicados de primer orden • Sub-estilos: heredan de estilos • No posee interfaz gráfica nativa • No genera código ejecutable Wright
Modelos formales • Darwin: cálculo Pi • Wright: CSP, lógica de primer orden • LILEANNA: programación parametrizada e hiper-programación • Rapide: Posets • SAM: Redes de Petri de transición de predicados, lógica temporal de primer orden • Jacal: Redes de Petri • Casi todos los ADLs tienen BNF • Modelo estructural no ligado a OO
Shortlist • Acme / Armani • Aesop / Wright • xADL • Jacal
¿Preguntas? billyr@microsoft.comnicok@dc.uba.ar