Escolar Documentos
Profissional Documentos
Cultura Documentos
DEFINICION DE ADL
Un ADL es un lenguaje que provee caractersticas para modelar un sistema de software a nivel arquitectnico.
TIPOS DE ADL
ACME
El proyecto comenz a principios de Acme 1995 con el objetivo de proporcionar un lenguaje comn que podra ser utilizado para apoyar el intercambio de descripciones arquitectnicas entre una variedad de herramientas de diseo arquitectnico. Sus creadores fueron Robert Monroe y David Garlan.
ACME
Se define como una herramienta capaz de soportar el mapeo de especificaciones arquitectnicas entre diferentes ADLs, en otras palabras, como un lenguaje de intercambio de arquitectura.
OBJETIVO PRINCIPAL
CARACTERISTICAS
Editor grfico para el diseo arquitectnico Editar diseos en las familias actuales (estilos), o crear nuevas familias y tipos Crear nuevos estilos de diagramas sobre la base de las convenciones que definen la visualizacin Intergrated Armani Restricciones de chequeo para verificar las normas de diseo arquitectnico Implementado como plugin de Eclipse para la portabilidad y extensibilidad Disponible para Windows, Linux y MacOS X
ESTRUCTURA: Organizacin de un sistema en sus partes constituyentes. PROPIEDADES DE INTERES: Informacin que permite razonar sobre el comportamiento local o global tanto funcional como no funcional. RESTRICCIONES: Lineamientos sobre la posibilidad del cambio en el tiempo. LOS TIPOS Y ESTILOS.
ESTRUCTURA
Se define utilizando siete tipos de entidades: Componentes. Conectores. Sistema. Puertos. Roles. Representaciones. Mapas de representacin.
COMPONENTES
Representan los elementos computacionales primarios de un sistema. En la mayora de los ADLs los componentes pueden exponer varias interfaces, las cuales definen puntos de interaccin entre un componente y su entorno.
CONECTORES
Representan interacciones entre componentes. Los conectores tambin tienen una especie de interfaz que define los roles entre los componentes participantes en la interaccin.
SISTEMA
Se constituyen como grafos de componentes y conectores. En los ADLs ms avanzados la topologa del sistema se define independientemente de los componentes y conectores que lo conforman. Los sistemas tambin pueden ser jerrquicos: componentes y conectores pueden subsumir la representacin de lo que en realidad son complejos subsistemas.
EJEMPLO ACME
El siguiente ejemplo define una familia o estilo de la clase ms simple, tubera y filtros. Este estilo est relacionado con las arquitecturas de flujo de datos. El estilo es caracterstico no slo de arquitecturas de tipo UNIX, sino que es ampliamente usado en compiladores, flujos de datos, tratamiento de XML con SAX, procesamiento de seales y programacin funcional, as como en los mecanismos de procesamiento de consultas de algunos servidores de bases de datos.
EJEMPLO ACME
// Una familia Acme incluye un conjunto de tipos //de componente, conector, puerto (port) y rol que //definen el vocabulario propio del estilo. Family PipeFilterFam = { // Declara tipos de componente. // Una definicin de tipo de componente en Acme permite establecer // la estructura requerida por el tipo. Esta estructura // se define mediante la misma sintaxis que la instancia // de un componente. Component Type FilterT = { // Todos los filtros definen por lo menos dos puertos Ports { stdin; stdout; }; Property throughput : int; };
EJEMPLO ACME
// Extiende el tipo bsico de filtro con una subclase (herencia) // Las instancia de WindowsFilterT tendrn todas las propiedades y // puertos de las instancias de FilterT, ms un puerto stderr // y una propiedad implementationFile. Component Type WindowsFilterT extends FilterT with { Port stderr; Property implementationFile : String; }; // Declara el tipo de conector de tubera. Igual que los // tipos de componente, un tipo de conector tambin describe // la estructura requerida. Connector Type PipeT = { Roles { source; sink; }; Property bufferSize : int; };
EJEMPLO ACME
// Declara algunos tipos de propiedad que pueden usarse en // sistemas del estilo PipeFilterFam Property Type StringMsgFormatT = Record [ size:int; msg:String; ]; Property Type TasksT = enum {sort, transform, split, merge}; };
ENTORNOS ACME
AcmeStudio, entorno grfico. Basado en Linux y Windows Armani, utiliza Microsoft Visio como front-endy un back-end Java. AcmeLib(C++, Java) Implementado como plugin de ECLIPSE para portabilidad y extensibilidad. Disponible para Windows, Linux y Mac OS-X
BIBLIOGRAFIA
La bibliografa relevante para profundizar en Acme es el reporte de R. T. Monroe [Mon98] y el artculo de Garlan, Monroe y Wile [GMW00]. http://www.cs.cmu.edu/~acme/