Carlos Reynoso - Lenguajes de descripción de arquitectura de software

+2

No comments posted yet

Comments

Slide 1

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

Slide 2

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

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

Slide 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)

Slide 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

Slide 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

Slide 7

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

Slide 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)

Slide 10

ADLs

Slide 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

Slide 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

Slide 13

Acme/Armani

Slide 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

Slide 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

Slide 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

Slide 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) http://www.cs.cme.edu/Web/Groups/ABLE/Aesop El link para obtener Aesop parece no estar activo (enero/2004) Aesop

Slide 18

Aesop (4/4)

Slide 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

Slide 20

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

Slide 21

C2

Slide 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

Slide 23

CHAM Ejemplo de compilador Lisp CHAM

Slide 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

Slide 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

Slide 26

Darwin

Slide 27

Jacal (1/2)

Slide 28

Jacal (2/2)

Slide 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

Slide 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

Slide 31

MetaH / AADL (2/2)

Slide 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 …

Slide 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

Slide 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

Slide 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

Slide 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

Slide 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

Slide 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

Slide 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

Slide 40

Shortlist Acme / Armani Aesop / Wright xADL Jacal

Slide 41

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

Summary: Lenguajes de descripcion de arquitectura de software (ADL)

Tags: dla architecture software

URL: