You are on page 1of 2

ADL Lenguaje descriptivo de modelado arquitectnico de software que se focaliza en la estructura de alto nivel de la aplicacin antes que en los

detalles de implementacin de sus mdulos concretos. Su abreviatura es ADL. Surgimiento Los ADL se remontan a los lenguajes de interconexin de mdulos (MIL) de la dcada de 1970, pero se han comenzado a desarrollar con su denominacin actual a partir de la dcada de 1990, poco despus de fundada la propia arquitectura de software como especialidad profesional. Estos lenguajes surgen por la necesidad de satisfacer los requerimientos descriptivos de alto nivel de abstraccin que las herramientas basadas en objeto en general y UML en particular no cumplen satisfactoriamente. Principales Caractersticas de los ADL Composicin: que permiten la representacin del sistema como la composicin de una serie de partes. Configuracin y Abstraccin: Mediante las cuales se describen los roles o papeles abstractos que juegan los componentes dentro de la arquitectura. Flexibilidad: Ya que permiten la definicin de nuevas formas de interaccin entre componentes. Reutilizacin: Pues permiten la reutilizacin tanto de los componentes como de la propia arquitectura, Heterogeneidad ya que pueden combinar descripciones heterogneas. Anlisis: Permiten diversas formas de anlisis de la arquitectura y de los sistemas desarrollados a partir de ella. Elementos Arquitectnicos que Modelan los ADL Componentes: Representan los elementos computacionales primarios de un sistema. Intuitivamente, corresponden a las cajas de las descripciones de caja-y-lnea de las arquitecturas de software. Ejemplos tpicos seran clientes, servidores, filtros, objetos, pizarras y bases de datos. En la mayora de los ADL los componentes pueden exponer varias interfaces, las cuales definen puntos de interaccin entre un componente y su entorno. Conectores: Representan interacciones entre componentes. Corresponden a las lneas de las descripciones de caja-y-lnea. Ejemplos tpicos podran ser tuberas (pipes), paso de mensajes, llamadas a procedimientos, protocolos cliente-servidor o conexiones entre una aplicacin y un servidor de base de datos. Los conectores tambin tienen una especie de interfaz que define los roles entre los componentes participantes en la interaccin. Configuraciones o sistemas: Se constituyen como grafos de componentes y conectores. En los ADL 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. Restricciones: Representan condiciones de diseo que deben acatarse incluso en el caso que el sistema evolucione en el tiempo. Restricciones tpicas seran restricciones en los valores posibles de propiedades o en las configuraciones topolgicas admisibles. Por ejemplo, el nmero de clientes que se puede conectar simultneamente a un servicio. Propiedades: Representan informacin semntica sobre un sistema ms all de su estructura. Distintos ADL ponen nfasis en diferentes clases de propiedades, pero todos tienen alguna forma de definir propiedades no funcionales, o pueden admitir herramientas complementarias para analizarlas y determinar, por ejemplo, la velocidad de transferencia de datos y la latencia probables, o cuestiones de seguridad, escalabilidad, dependencia de bibliotecas o servicios especficos, configuraciones mnimas de hardware y tolerancia a fallas. Propiedades no funcionales: La especificacin de estas propiedades es necesaria para simular la conducta de runtime, analizar la conducta de los componentes, imponer restricciones, mapear implementaciones sobre procesadores determinados, etctera. Estilos: Representan familias de sistemas, un vocabulario de tipos de elementos de diseo y de reglas para componerlos. Ejemplos clsicos seran las arquitecturas de flujo de datos basados en grafos de tuberas (pipes) y

filtros, las arquitecturas de pizarras basadas en un espacio de datos compartido, o los sistemas en capas. Algunos estilos prescriben un framework, un estndar de integracin de componentes, patrones arquitectnicos o como se lo quiera llamar. A continuacin se mencionan algunos estilos arquitectnicos: Estilos de Flujo de Datos, Estilos Centrados en Datos, Estilos de Llamada y Retorno, Estilos de Cdigo Mvil, Estilos heterogneos y Estilos Peer-to-Peer. Cuando se habla de estilos no se pueden olvidar los patrones de arquitectura los cuales estn claramente dentro de la disciplina arquitectnica, solapndose con los estilos. Dichos patrones arquitectnicos expresan esquemas de organizacin estructural fundamentales para los sistemas de software, los cuales con un empaquetado un poco distinto, no son ms que estilos y a su vez proporcionan un conjunto de subsistemas predefinidos, especifican sus responsabilidades e incluyen guas y lineamientos para organizar las relaciones entre ellos. Dinamismo: Un ADL debe ser capaz de describir arquitecturas dinmicas y cambiantes ya que as permite interpretar los flujos de transformacin y adaptabilidad de las mismas. Comunicacin: El ADL debe comunicar todas las partes de una arquitectura as como definir todas las estructuras de la misma ya sean estticas o dinmicas las cuales deben ser capaces de identificar los diversos tipos de conectores y componentes. Adems la informacin que proporcionan las descripciones arquitectnicas se debe poder personalizar segn el lector actual de la arquitectura. Verificacin de Propiedades (Anlisis y Validacin): El ADL debe dar soporte a las tareas de creacin de la arquitectura, as como refinamiento y validacin de las mismas. Para esto definir reglas sobre lo que se entiende por una arquitectura completa y consistente. Abstraccin: El ADL debe ser capaz de proporcionar estructuras del sistema que expresen informacin arquitectnica y que adems enmascare toda la informacin sobre la implementacin que no sea arquitectnica. Derivacin: El ADL debe proporcionar una base para fomentar la implementacin como por ejemplo: la generacin rpida de prototipos. Debe permitir la agregacin de informacin fuera de la descripcin arquitectnica obtenida con la misma manera que permita que una especificacin final del sistema se derive de dicha descripcin arquitectnica. Alternativas de Implementacin: El ADL debe ser capaz de soportar la especificacin de familias de implementaciones que satisfagan toda una arquitectura comn. Importancia y aplicacin prctica Los lenguajes de descripcin de arquitecturas, ocupan una parte importante del trabajo arquitectnico desde la fundacin de la AS. Ya que contando con un ADL, un arquitecto puede razonar sobre las propiedades del sistema con precisin, pero a un nivel de abstraccin convenientemente genrico. Algunas de esas propiedades podran ser, por ejemplo, protocolos de interaccin, anchos de banda y latencia, localizacin del almacenamiento, conformidad con estndares arquitectnicos y previsiones de evolucin ulterior del sistema. Suministran construcciones para especificar abstracciones arquitectnicas y mecanismos para descomponer un sistema en componentes y conectores, especificando de qu manera estos elementos se combinan para formar configuraciones y definiendo familias de arquitecturas o estilos. Precisamente lo que necesita una arquitectura para tener xito, y con ella el proyecto de software en s, ya que un proyecto ser bueno en la medida que lo sea su arquitectura. Conociendo la importancia de los ADL, se podra pensar que existe gran nmero de ellos, y que son utilizados para el modelado de toda arquitectura de software, sin embargo, contrario a lo que se piensa, no existen tantas herramientas de modelado de arquitectura, existen en el mundo alrededor de unos veinte ADL de primera magnitud y quizs una cifra mayor propuestos en ponencias pero que no han resistido el paso del tiempo o que no han encontrado su camino en el mercado. Ejemplos de ADL: Acme, Aesop, Darwin(ADL), UniCon, Wright, Rapide, C2, Jacal, LEDA