Architectural Description Languages Carlos Reynoso Nicols Kicillof Universidad

  • Slides: 41
Download presentation
Architectural Description Languages Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.

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

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

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 – –

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

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

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

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)

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

ADLs

Acme / Armani • Lenguaje de intercambio de arquitectura • 1995, Carnegie Mellon –

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

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

Acme/Armani

ADML • Open Group, 2000 • ADML: XML con DTD • x. ADL (“Zaydal”,

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

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

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

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)

Aesop (4/4)

C 2 SADL, C 2 SADEL • C 2 SADL (Simulation Architecture Description Language)

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 –

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

C 2

CHAM • Chemical Abstract Machine • Técnica de especificación basada en álgebra de procesos

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

CHAM • Ejemplo de compilador Lisp CHAM

Darwin (1/2) • ADL orientado a arquitecturas dinámicas • Descripción de tipo de componente

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

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

Darwin

Jacal (1/2)

Jacal (1/2)

Jacal (2/2)

Jacal (2/2)

LILEANNA • Navegación de helicópteros, Loral Federal Systems / ARPA • No es ADL

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:

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)

Meta. H / AADL (2/2)

Rapide (1/2) • Lenguaje de descripción de propósito general – Modelado de interfaces de

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

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]

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,

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

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)

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

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 •

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

Shortlist • • Acme / Armani Aesop / Wright x. ADL Jacal

¿Preguntas? billyr@microsoft. com nicok@dc. uba. ar

¿Preguntas? billyr@microsoft. com nicok@dc. uba. ar