La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Architectural Description Languages

Presentaciones similares


Presentación del tema: "Architectural Description Languages"— Transcripción de la presentación:

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

8

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?


Descargar ppt "Architectural Description Languages"

Presentaciones similares


Anuncios Google