All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
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
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”.
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)
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
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
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.