240 likes | 375 Views
Generación de Aplicaciones a partir de Descripciones Arquitectónicas en Extensiones de xADL. Nadia Gámez Directoras: Lidia Fuentes y Mónica Pinto Universidad de Málaga {nadia,lff,pinto}@lcc.uma.es. Málaga, Julio 2007. Agenda. Antecedentes Objetivos xADL 2.0
E N D
Generación de Aplicaciones a partir de Descripciones Arquitectónicas en Extensiones de xADL Nadia Gámez Directoras: Lidia Fuentes y Mónica Pinto Universidad de Málaga {nadia,lff,pinto}@lcc.uma.es Málaga, Julio 2007
Agenda • Antecedentes • Objetivos • xADL 2.0 • El LDA de MultiTEL y MultiTELxADL • DAOP-ADL y DAOPxADL • Generador de Código para MultiTELxADL • Generadores de Código para DAOPxADL • Utilidad de los LDAs Orientados a Aspectos • Conclusiones y Trabajos Futuros PFC
Antecedentes • La Arquitectura del Software estudia la estructura de una aplicación, formada por un conjunto de componentes, sus propiedades y relaciones • El DSOA propugna la separación de aspectos en todas las fases del ciclo de vida del software • Los LDAs tradicionales no proporcionan el soporte necesario para separar cualquier comportamiento que atraviese varios elementos del sistema (crosscutting concerns) • Hay otros LDAS que si incorporan la separación avanzada de conceptos • Sería deseable disponer de un LDA que aplique la separación avanzada de conceptos con la misma estructura que los LDAs tradicionales PFC
Objetivos Arquitectura del Software • Se ha extendido xADL para adaptarlo a los conceptos y nociones de dos LDAs previamente definidos: • El LDA de MultiTEL, creando MultiTELxADL • DAOP-ADL, creando DAOPxADL Implementación • Generadores de código para los LDAs extendidos • MultitTELxADL Java • DAOPxADL Java • DAOPxADL AspectJ • DAOPxADL JBoss AOP PFC
xADL 2.0 • xADL es un LDA basado en XML diseñado para ser usado por sí mismo, así como para ser extendido soportando nuevas aplicaciones y dominios • Dispone un amplio conjunto de herramientas fácilmente adaptables (e incluso directamente) a las extensiones hechas de xADL Elementos Básicos de xADL • Componentes • Conectores • Interfaces • Links PFC
xADL 2.0 • Receptor de Infrarrojos • Sintonizador canal televisión • Sintonizador Picture-in-Picture • Conector Software Sistema de Televisión en xADL PFC
LDA de MultiTEL Define la arquitectura de un sistema como una colección de componentes pasivos que se comunican a través de conectores que encapsulan un protocolo de coordinación Elementos Básicos de MultiTEL • Componentes • Conectores • Protocolo de Coordinación • Servicio PFC
MultiTELxADL PFC
MultiTELxADL PFC
DAOP-ADL • Componentes y Aspectos • Nombre de Rol • Interfaces • Atributos de Estado • Propiedades • Implementaciones • Propiedades • Restricciones de Composición • Información de Despliegue • Contexto Inicial Aspecto de Coordinación Protocolo de Coordinación • Comp.: Proporcionada, Requerida y de Eventos • Aspectos: Evaluada Composición de Componentes Evaluación de Aspectos PFC
DAOPxADL PFC
DAOPxADL Elementos Básicos de DAOPxADL • Estructuras • Tipos • Propiedades • Reglas de las Propiedades • Información de Despliegue • Contexto inicial PFC
DAOPxADL PFC
DAOPxADL Sistema de Televisión en DAOPxADL • Persistencia para guardar estado del PiP • Autenticación para acceder a canales restringidos PFC
Generador de Código MultiTELxADL Java ¿Cómo generar una aplicación Java a partir de MultiTELxADL? PFC
Generador de Código DAOPxADL Java ¿Cómo generar una aplicación Java a partir de DAOPxADL? PFC
Generador de Código DAOPxADL AspectJ ¿Cómo generar una aplicación AspectJ a partir de DAOPxADL? PFC
Generador de Código DAOPxADL JBoss AOP ¿Cómo generar una aplicación JBoss AOP a partir de DAOPxADL? PFC
Generadores de Código DAOPxADL Generación de una aplicación real descrita en DAOPxADL PFC
Generadores de Código DAOPxADL Comparación entre los Generadores • El generador más sencillo para DAOPxADL es el que genera código Java para la plataforma DAOP • El modelo de puntos de corte de DAOPxADL coincide con el de la plataforma • JBoss AOP es más intuitivo que AspectJ para generar código desde una descripción de la arquitectura de una aplicación en DAOPxADL • DAOPxADL y JBoss AOP son propuestas simétricas • Los puntos de cortes se especifican en una entidad aparte y no en el propio aspecto • En AspectJ los aspectos son implementados como una entidad completamente diferente a los componentes y en ellos se especifica la relación con el resto de componentes de la aplicación PFC
Utilidad de los LDAs orientados a aspectos • C. Sant’Anna, N. Gamez , A. Garcia, M.Pinto, L. Fuentes. Architecture Evaluation Process/ Architectural Metrics. Milestone M6.13 (AOSD-Europe Network of Excelence), Noviembre 2006. • M. Pinto, N. Gámez, L. Fuentes. Towards the architectural definition of the health watcher system with AO-ADL. EarlyAspect Workshop at ICSE, Mayo 2007. • L.Fuentes, N.Gámez. Adding Aspects to xADL 2.0 for Software Product Line Architectures. VaMoS Workshop, Enero 2007. PFC
Conclusiones y Trabajos Futuros • En este proyecto se han abarcado varios temas para ayudar al proceso de desarrollo del software: • Fase de diseño arquitectónico • Fase de implementación • Para contribuir en la fase del diseño de arquitecturas de sistemas se han creado dos LDAs nuevos como extensión de xADL • MultiTELxADL • DAOPxADL • Para solventar el salto existente en entre el diseño arquitectónico de un sistema y su implementación hemos desarrollados varios generadores de código • Para MultitTELxADL: Java • Para DAOpxADL: Java, AspectJ, AOPJBoss • Como trabajo futuro se pueden adaptar las herramientas basadas en la semántica que proporciona xADL para que sirvan para las extensiones hechas del lenguaje PFC
Referencias • [Dashofy et al., 2005] E. Dashofy, A. Van Der Hoek, R. Taylor. A Comprehensive Approach for the Development of Modular Software Architecture Description Languages. ACM Transactions on Software Engineering and Methodology, Vol. 14, No. 2, April 2005, 199–245. • L. Fuentes. Una Arquitectura Software para el desarrollo de Servicios Avanzados de Telecomunicación, Tesis Doctoral. Dpto. de Lenguajes y Ciencias de la Computación, Universidad de Málaga (1998). • L. Fuentes, N. Gámez, M. Pinto. DAOPxADL: Una extensión del lenguaje de descripción de arquitecturas xADL con aspectos.Proceedings of DSOA 2006, Barcelona, España. • M. Pinto. CAM/DAOP: Modelo y Plataforma Basados en Componentes y Aspectos, Tesis Doctoral. Departamento de Lenguajes y Ciencias de la Computación, Universidad de Málaga (2004). PFC
Gracias PFC