Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Architectural Description Languages
Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires *
2
Agenda Ubicación de ADLs en Arquitectura Estilos Definiciones de ADLs
Short List Demo - Jacal
3
Arquitectura Arquitectura de software - IEEE : “...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 Llamada y Retorno Procesos interactivos
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
9
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)
10
ADLs
11
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
12
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
13
Acme/Armani
14
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
15
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
16
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
17
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) El link para obtener Aesop parece no estar activo (enero/2004) Aesop
18
Aesop (4/4)
19
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
20
C2 SADL, C2SADEL SADL Windows: 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
21
C2
22
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
23
CHAM Ejemplo de compilador Lisp CHAM
24
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
25
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
26
Darwin
27
Jacal (1/2)
28
Jacal (2/2)
29
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
30
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
31
MetaH / AADL (2/2)
32
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 …
33
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
34
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
35
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
36
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
37
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
38
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
39
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
40
Shortlist Acme / Armani Aesop / Wright xADL Jacal
41
billyr@microsoft.com nicok@dc.uba.ar
¿Preguntas?
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.