Architectural Description Languages

41
Architectural Description Languages Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * [email protected]

description

Architectural Description Languages. Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * [email protected]. Agenda. Ubicación de ADLs en Arquitectura Estilos Definiciones de ADLs ADLs Short List Demo - Jacal. Arquitectura. - PowerPoint PPT Presentation

Transcript of Architectural Description Languages

Page 1: Architectural Description Languages

Architectural Description Languages

Carlos Reynoso* – Nicolás KicillofUniversidad de Buenos Aires

* [email protected]

Page 2: Architectural Description Languages

Agenda

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

Page 3: Architectural Description Languages

Arquitectura

Zachman (Niveles)

TOGAF (Arquitecturas)

4+1 (Vistas)

[BRJ99] (Vistas)

POSA (Vistas)

Microsoft (Vistas)

Scope Negocios Lógica Diseño Lógica Lógica Empresa Datos Proceso Proceso Proceso Conceptual Sistema lógico Aplicación Física Implementación Física Tecnología Desarrollo Despliegue Representación Funcionamiento

Tecnología Casos de uso Casos de uso

Desarrollo Física

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

Page 4: Architectural Description Languages

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)

Page 5: Architectural Description Languages

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

Page 6: Architectural Description Languages

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

Page 7: Architectural Description Languages

Condiciones…

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

Page 8: Architectural Description Languages

ADL Fecha Investigador - Organismo ObservacionesAcme 1995 Monroe & Garlan (CMU), Wile (USC) Lenguaje de intercambio de ADLsAesop 1994 Garlan (CMU) ADL de propósito general, énfasis

en estilosArTek 1994 Terry, Hayes-Roth, Erman

(Teknowledge, DSSA)Lenguaje específico de dominio -No es ADL

Armani 1998 Monroe (CMU) ADL asociado a AcmeC2 SADL 1996 Taylor/Medvidovic (UCI) ADL específico de estiloCHAM 1990 Berry / Boudol Lenguaje de especificaciónDarwin 1991 Magee, Dulay, Eisenbach, Kramer ADL con énfasis en dinámicaJacal 1997 Kicillof , Yankelevich (Universidad de

Buenos Aires)Adl - Notación de alto nivel paradescripción y prototipado

LILEANNA 1993 Tracz (Loral Federal) Lenguaje de conexión de módulosMetaH 1993 Binns, Englehart (Honeywell) ADL específico de dominioRapide 1990 Luckham (Stanford) ADL & simulaciónSADL 1995 Moriconi, Riemenschneider (SRI) ADL con énfasis en mapeo de

refinamientoUML 1995 Rumbaugh, Jacobson, Booch (Rational) Lenguaje genérico de modelado –

No es ADLUniCon 1995 Shaw (CMU) ADL de propósito general, énfasis

en conectores y estilosWright 1994 Garlan (CMU) ADL de propósito general, énfasis

en comunicaciónxADL 2000 Medvidovic, Taylor (UCI, UCLA) ADL basado en XML

Page 9: Architectural Description Languages

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)

Page 10: Architectural Description Languages

ADLs

Page 11: Architectural Description Languages

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

Page 12: Architectural Description Languages

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. DeclarativoAcme Armani

Page 13: Architectural Description Languages

Acme/Armani

Page 14: Architectural Description Languages

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

Page 15: Architectural Description Languages

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

Page 16: Architectural Description Languages

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

Page 17: Architectural Description Languages

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

Page 18: Architectural Description Languages

Aesop (4/4)

Page 19: Architectural Description Languages

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

Page 20: Architectural Description Languages

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

Page 21: Architectural Description Languages

C2

Page 22: Architectural Description Languages

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

Page 23: Architectural Description Languages

CHAM

• Ejemplo de compilador Lisp

CHAM

Page 24: Architectural Description Languages

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

Page 25: Architectural Description Languages

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, discontinuadoDarwin

Page 26: Architectural Description Languages

Darwin

Page 27: Architectural Description Languages

Jacal (1/2)

Page 28: Architectural Description Languages

Jacal (2/2)

Page 29: Architectural Description Languages

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

Page 30: Architectural Description Languages

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

Page 31: Architectural Description Languages

MetaH / AADL (2/2)

Page 32: Architectural Description Languages

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

Page 33: Architectural Description Languages

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

Page 34: Architectural Description Languages

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

Page 35: Architectural Description Languages

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 tiempoUniCon

Page 36: Architectural Description Languages

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

Page 37: Architectural Description Languages

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

Page 38: Architectural Description Languages

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

Page 39: Architectural Description Languages

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

Page 40: Architectural Description Languages

Shortlist

• Acme / Armani• Aesop / Wright• xADL• Jacal