Architectural Description Languages Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos...

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

Transcript of Architectural Description Languages Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos...

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

Architectural Description Languages

Carlos Reynoso* – Nicolás KicillofUniversidad de Buenos Aires

* [email protected]

Page 2: 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

• ADLs

• Short List

• Demo - Jacal

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

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

Condiciones…

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

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

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

ADLs

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

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

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

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

Acme/Armani

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

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

Aesop (4/4)

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

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

C2

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

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

CHAM

• Ejemplo de compilador Lisp

CHAM

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

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

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

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

Darwin

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

Jacal (1/2)

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

Jacal (2/2)

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

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

MetaH / AADL (2/2)

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

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

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 Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com.

Shortlist

• Acme / Armani

• Aesop / Wright

• xADL

• Jacal