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