1 / 41

Architectural Description Languages

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.

milek
Download Presentation

Architectural Description Languages

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Architectural Description Languages Carlos Reynoso* – Nicolás KicillofUniversidad de Buenos Aires* billyreyno@hotmail.com

  2. Agenda • Ubicación de ADLs en Arquitectura • Estilos • Definiciones de ADLs • ADLs • Short List • Demo - Jacal

  3. 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”.

  4. 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)

  5. 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

  6. 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

  7. Condiciones… • Componentes • Conectores • Configuraciones o sistemas • Propiedades no funcionales • Restricciones • Estilos • Evolución • Herramientas de verificación

  8. 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)

  9. ADLs

  10. 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

  11. 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

  12. Acme/Armani

  13. 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

  14. 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

  15. 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

  16. 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

  17. Aesop (4/4)

  18. 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

  19. 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

  20. C2

  21. 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

  22. CHAM • Ejemplo de compilador Lisp CHAM

  23. 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

  24. 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

  25. Darwin

  26. Jacal (1/2)

  27. Jacal (2/2)

  28. 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

  29. 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

  30. MetaH / AADL (2/2)

  31. 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 • …

  32. 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

  33. 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

  34. 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

  35. 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

  36. 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

  37. 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

  38. 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

  39. Shortlist • Acme / Armani • Aesop / Wright • xADL • Jacal

  40. ¿Preguntas? billyr@microsoft.comnicok@dc.uba.ar

More Related