Acme
Acme
Acme
(e) en
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.
ESTRUCTURA
Se define utilizando siete tipos de entidades: Componentes. Conectores. Sistema. Puertos. Roles. Representaciones. Mapas de representacin.
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.
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;
// 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/