Architectural Description Languages Carlos Reynoso Nicols Kicillof Universidad
- Slides: 41
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 Short List Demo - Jacal
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 – – – • 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 – – • • Secuencial en lotes Red de flujo de datos (tuberías & filtros) Bucle de control cerrado 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)
ADLs
Acme / Armani • Lenguaje de intercambio de arquitectura • 1995, Carnegie Mellon – Lenguaje Acme – Acme Tool Developer’s Library (Acme. Lib) • 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 comentario No genera código Maneja estilos (familia) Varias herramientas en ambiente Windows: – Acme. Studio – 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
Acme/Armani
ADML • Open Group, 2000 • ADML: XML con DTD • x. ADL (“Zaydal”, UCI): Schemas para estilos (Aplicación de x. Arch) • x. Arch (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 (Sun. OS) • http: //www. cs. cme. edu/Web/Groups/ABLE/Aesop • El link para obtener Aesop parece no estar activo (enero/2004) Aesop
Aesop (4/4)
C 2 SADL, C 2 SADEL • C 2 SADL (Simulation Architecture Description Language) • ADL que permite describir arquitecturas en estilo C 2 • C 2 SADEL – Variante. Incluye DRADEL (Development of Robust Architectures using a Description and Evolution Language) • x. Arch, x. ADL: Inicialmente ligados a C 2
C 2 SADL, C 2 SADEL • 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 C 2 SADEL) – SAAGE (requiere Rose o Dradel) – Arch. Studio – Argo (discontinuado) SADL – IDN, ADN
C 2
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
Darwin
Jacal (1/2)
Jacal (2/2)
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
Meta. H / AADL (1/2) • Guía, navegacíon y control aeronáutico • Meta. H: Base textual para AADL (Avionics…) – No confundir con Axiomatic… [diseño computadoras paralelas] • Windows: Meta. H Graphical Editor basado en Do. ME
Meta. H / AADL (2/2)
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 C 2 SADL o Wright
Uni. Con (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 Uni. Con
Uni. Con (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 x. ADL Jacal
¿Preguntas? billyr@microsoft. com nicok@dc. uba. ar
- Cabrera reynoso, sandra berenice
- Maria eugenia angeles reynoso
- Billy reynoso
- Mary ann nicols
- Celina reynoso
- Escudo de universidad de san carlos
- Universidad san carlos
- Universidad san carlos
- Himno universitario gaudeamus igitur letra
- Glucósidos propiedades
- Verilog
- Architectural evolution
- Enterocoelous plan
- Passive design
- Architectural design workflow
- An architectural blueprint for autonomic computing
- Database collection
- Fireplace architectural symbol
- Architectural struts
- Insulation architectural symbol
- Architectural styles
- Architectural model of distributed system
- Architectural lettering
- Call and return architecture
- Which is 4 1 view model for software architecture?
- Architectural basics
- Architectural technology sheridan
- Architectural style
- Architectural pattern in software engineering
- Architecture design objectives
- Architectural thesis presentation
- Qms nouf
- Key distribution center
- Architectural design in software engineering
- Dbms standardization are based on
- Architectural pattern of an animal
- Cigital's architectural risk analysis process
- Architectural finishing systems
- Lyre back chair definition
- Architectural engineering penn state
- Floor plan dimension standards
- Architectural pattern in software engineering