You are on page 1of 22

Jos Luis Rival Muoz Ing. (e) en Informtica.

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

La motivacin fundamental de Acme es el intercambio entre arquitecturas e integracin de ADLs.

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

Acme soporta la definicin de 4 tipos de arquitectura

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.

Comportamiento de los elementos de un ADL con ACME

Interfaces: en Acme cada componente puede tener mltiples interfaces.


los puntos de interfaz se llaman puertos (ports). Los puertos pueden definir interfaces tanto simples como complejas, desde una signatura de procedimiento hasta una coleccin de rutinas a ser invocadas en cierto orden, o un evento de multicast.

Conectores: en Acme los conectores representan interacciones entre


componentes. Los conectores tambin tienen interfaces que estn definidas por un conjunto de roles. Los conectores binarios son los ms sencillos: el invocador y el invocado de un conector RPC, la lectura y la escritura de un conector de tubera, el remitente y el receptor de un conector de paso de mensajes.

Comportamiento de los elementos de un ADL con ACME

Semntica: Acme slo soporta cierta clase de informacin semntica en


listas de propiedades. Estas propiedades no se interpretan, y slo existen a efectos de documentacin.

Estilos: Acme posee manejo intensivo de familias o estilos. Esta


capacidad est construida naturalmente como una jerarqua de propiedades correspondientes a tipos. Acme considera, tres clase de tipos: tipos de propiedades, tipos estructurales y estilos. Una familia Acme se define especificando tres elementos de juicio: un conjunto de tipos de propiedades y tipos estructurales, un conjunto de restricciones y una estructura por defecto, que prescribe el conjunto mnimo de instancias que debe aparecer en cualquier sistema de la familia.

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}; };

Ambiente de edicin de AcmeStudio con diagrama de tubera y filtros

EJEMPLO ACME CLIENTE/SERVIDOR


System simple_cs = { Component client = {Port send-request} Component server = {Port receive-request} Connector rpc = {Roles {caller, callee}} Attachments : {client.send-request to rpc.caller; server.receive-request to rpc.callee} }

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/

You might also like