Architecture Design Languages

Download Report

Transcript Architecture Design Languages

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
Zachman
(Niveles)
Scope
Empresa
Sistema lógico
Tecnología
Representación
Funcionamiento
TOGAF
(Arquitecturas)
Negocios
Datos
Aplicación
Tecnología
4+1
(Vistas)
Lógica
Proceso
Física
Desarrollo
Casos de uso
[BRJ99]
(Vistas)
Diseño
Proceso
Implementación
Despliegue
Casos de uso
POSA
(Vistas)
Lógica
Proceso
Física
Desarrollo
Microsoft
(Vistas)
Lógica
Conceptual
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”.
Estilos
•
Flujo de datos
–
–
–
•
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
–
–
–
–
•
•
Secuencial en lotes
Red de flujo de datos (tuberías & filtros)
Bucle de control cerrado
Documentos compuestos
Hipertexto
Fortran COMMON
Procesos LW
Jerárquicos
- En capas (intérpretes)
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
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
Condiciones…
•
•
•
•
•
•
•
•
Componentes
Conectores
Configuraciones o sistemas
Propiedades no funcionales
Restricciones
Estilos
Evolución
Herramientas de verificación
ADL
Acme
Aesop
Fecha
1995
1994
Investigador - Organismo
Monroe & Garlan (CMU), Wile (USC)
Garlan (CMU)
ArTek
1994
Armani
C2 SADL
CHAM
Darwin
Jacal
1998
1996
1990
1991
1997
LILEANNA
MetaH
Rapide
SADL
1993
1993
1990
1995
Terry, Hayes-Roth, Erman
(Teknowledge, DSSA)
Monroe (CMU)
Taylor/Medvidovic (UCI)
Berry / Boudol
Magee, Dulay, Eisenbach, Kramer
Kicillof , Yankelevich (Universidad de
Buenos Aires)
Tracz (Loral Federal)
Binns, Englehart (Honeywell)
Luckham (Stanford)
Moriconi, Riemenschneider (SRI)
UML
1995
Rumbaugh, Jacobson, Booch (Rational)
UniCon
1995
Shaw (CMU)
Wright
1994
Garlan (CMU)
xADL
2000
Medvidovic, Taylor (UCI, UCLA)
Observaciones
Lenguaje de intercambio de ADLs
ADL de propósito general, énfasis
en estilos
Lenguaje específico de dominio No es ADL
ADL asociado a Acme
ADL específico de estilo
Lenguaje de especificación
ADL con énfasis en dinámica
Adl - Notación de alto nivel para
descripción y prototipado
Lenguaje de conexión de módulos
ADL específico de dominio
ADL & simulación
ADL con énfasis en mapeo de
refinamiento
Lenguaje genérico de modelado –
No es ADL
ADL de propósito general, énfasis
en conectores y estilos
ADL de propósito general, énfasis
en comunicación
ADL basado en XML
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)
ADLs
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
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
Acme/Armani
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
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
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
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
Aesop (4/4)
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
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
C2
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
CHAM
• Ejemplo de
compilador Lisp
CHAM
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
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
Darwin
Jacal (1/2)
Jacal (2/2)
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
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
MetaH / AADL (2/2)
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
• …
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
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
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
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
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
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
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
Shortlist
•
•
•
•
Acme / Armani
Aesop / Wright
xADL
Jacal
¿Preguntas?
[email protected]
[email protected]