Download generadores de código - caosd
Document related concepts
no text concepts found
Transcript
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 Julio, 2007 2 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 Julio, 2007 3 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 Julio, 2007 4 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 Component1 Elementos Básicos de xADL Componentes Conectores Links Connector1 Interfaces Interfaces Links PFC Component2 Julio, 2007 5 xADL 2.0 Sistema de Televisión en xADL Receptor de Infrarrojos TV Tuner Component PiP Tuner Component Sintonizador canal televisión Sintonizador Picture-inPicture Conector Software PFC TV Connector Infrared Receiver Component Julio, 2007 6 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 Lenguaje de Definición de Componentes Componentes Conectores Lenguaje de Definición de Arquitecturas Lenguaje de Definición de Servicios Protocolo de Coordinación Servicio PFC Lenguaje de Configuración de Servicios Julio, 2007 7 MultiTELxADL Elementos xADL LDC+LDS MultiTEL MultiTELxADL Componentes ComponentType tipo-componente Se extiende ComponentType: MTComponentType Conectores ConnectorType tipo-conector Se extiende ConnectorType: MTConnectorType Links Links No tiene No los usa Interfaces InterfaceType seccion-interfaz de los componentes. Servicio No tiene tipo-servicio PFC Se extiende InterfaceType: MTInterfaceType mTProgramLDS Julio, 2007 8 MultiTELxADL PFC Julio, 2007 9 DAOP-ADL Componentes y Aspectos Nombre de Rol Interfaces Atributos de Estado Propiedades Implementaciones Aspecto de Coordinación Comp.: Proporcionada, Requerida y de Eventos Aspectos: Evaluada Protocolo de Coordinación Propiedades Restricciones de Composición Composición de Componentes Evaluación de Aspectos Información de Despliegue Contexto Inicial PFC Julio, 2007 10 DAOPxADL Elementos xADL DAOP-ADL DAOPxADL Componentes ComponentType Component ComponentDAOPType Aspectos No tiene Aspect ComponentDAOPType Conectores ConnectorType No tiene Reglas de Evaluación Evaluación de Aspectos No tiene AspectEvaluationRuleType AspectualConnectorType Links Links No tiene Reglas de Composición Composición de Comp. No tiene Resuelven dos Incompatibilidades ComponentRuleType PropertyRules Interfaces InterfaceType Provided, Required Event, Evaluated Se extiende InterfaceType Asp. Coord. No tiene CoordinationAspectType CoordinationAspectType PFC Julio, 2007 11 DAOPxADL Elementos Básicos de DAOPxADL Estructuras Tipos Propiedades Reglas de las Propiedades Información de Despliegue Contexto inicial PFC Julio, 2007 12 DAOPxADL PFC Julio, 2007 13 DAOPxADL TV Tuner Component PiP Tuner Component TunerPI TunerPI AuthEvI Sistema de Televisión en DAOPxADL Persistencia para guardar estado del PiP Autenticación para acceder a canales restringidos Create and Finalize Component Aspectual Connector Pe rE vIA Send Message (codifiedChannel) Infrared Receiver Component PFC Persistence Component P e rEv IB InfraredRI Authentication Component Julio, 2007 14 Generador de Código MultiTELxADL Java ¿Cómo generar una aplicación Java a partir de MultiTELxADL? PFC Julio, 2007 15 Generador de Código DAOPxADL Java ¿Cómo generar una aplicación Java a partir de DAOPxADL? PFC Julio, 2007 16 Generador de Código DAOPxADL AspectJ ¿Cómo generar una aplicación AspectJ a partir de DAOPxADL? PFC Julio, 2007 17 Generador de Código DAOPxADL JBoss AOP ¿Cómo generar una aplicación JBoss AOP a partir de DAOPxADL? PFC Julio, 2007 18 Generadores de Código DAOPxADL Generación de una aplicación real descrita en DAOPxADL PFC Julio, 2007 19 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 Julio, 2007 20 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. Early Aspect 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 Julio, 2007 21 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 Julio, 2007 22 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 Julio, 2007 23 Gracias PFC Julio, 2007 24