Está en la página 1de 10

MODELACIÓN DE LA ORIENTACIÓN A ASPECTOS

PATRICIA MORANTES
Universidad Nacional Experimental Francisco de Miranda, Coro 4101, Venezuela

Resumen

El Desarrollo de Software Orientado a Aspectos (DSOA) representa un nuevo enfoque dentro de la Ingeniería del
Software. Está basado en la Programación Orientada a Aspectos (POA) y centrado en la separación de incumbencias
transversales (“crosscuting concerns”). Muchos conceptos y/o elementos de modelación se utilizan durante las
diferentes etapas del DSOA, sin embargo, se presentan ambigüedades en cuanto a su semántica, no es claro cual de
ellos deben ser utilizados en cual etapa. Este trabajo presenta un núcleo o Core UML para el DSOA, que engloba
diferentes elementos de modelación definidos en la literatura, focalizándose particularmente en el documento de
ontología DSOA de la comunidad Europea y en diferentes extensiones UML. En el CORE UML presentado, cada
notación es identificada, clarificada, presentada por autor y asociada a una etapa del desarrollo. Los resultados
contribuyen al establecimiento de los estándares para una terminología unificada en el DSOA, favoreciendo el
entendimiento, la comunicación y facilitando el diseño arquitectónico orientado a aspecto.

Palabras Clave: Modelado de Software, Aspectos Tempranos, DSOA

Abstract

Aspect Oriented Modeling

AOSD (Aspect Oriented Software Development) is an emerging discipline in Software Engineering, based on the
AOP (Aspect Oriented Programming) paradigm, and focused on the separation of tangled and scattered concerns
(crosscutting concerns). Many concepts and mechanisms have been proposed to handle properly the crosscutting
concerns; however terms are in general semantically slightly different according to the development phase in which
they have been defined, causing misunderstanding and confusion. This paper presents an AOSD UML Core to
integrate different modeling elements defined in the literature, focusing in particular on the AOSD ontology of the
European Community and some UML profiles proposed by other authors. In this UML Core, each notation is
identified, clarified, presented by author and related to a development phase. This result, on one hand contributes to
the establishment of standards for a unified AOSD terminology, favoring understanding and communication; on the
other hand it facilitates aspect-oriented architectural design.

Keywords: Software Modeling, Early Aspects, OASD

INTRODUCCIÓN fuerte en manejar la dispersión (scatter) o


enmarañamiento (entangling) de incumbencias en cada
El Desarrollo de Software Orientado a Aspecto (DSOA) etapa del desarrollo de software, introduciendo una
(Sutton & Tarr, 2002) es un nuevo paradigma en el nueva unidad modular de encapsulación para facilitar la
desarrollo de software, originado de los trabajos previos extensibilidad, el mantenimiento y la reutilización.
sobre la Programación Orientada a Aspecto (POA) En el contexto de la ingeniería de software una
(Kiczales et al, 1997). Actualmente existe un acuerdo incumbencia (concern) se define como una propiedad o
general sobre los requisitos funcionales y no funcionales punto de interés de un sistema (Sutton & Tarr, 2002).
del sistema de software, los cuales deben obedecer a las Algunas
metas de calidad que el sistema debe lograr, a menudo incumbencias se
introduciendo nuevos componentes o mecanismos para pueden
satisfacer dichas metas. Sin embargo, muchas de estas encapsular
incumbencias se consideran o se introducen tarde en el fácilmente dentro
proceso de desarrollo, y entrecruzan las funcionalidades de clases o de
del sistema, haciendo el mantenimiento difícil, módulos, según
contradiciendo el paradigma orientado a objeto. La idea el lenguaje de
central del DSOA como disciplina que emerge de la programación
tecnología del post-objeto, es proporcionar la ayuda elegido; sin
embargo, otros requisitos, que generalmente no
provienen directamente del usuario, sino que aparecen
implícitamente como funcionalidades, pueden afectar Figura 1. Core UML para el DSOA
varios módulos, y son llamadas incumbencias
transversales (crosscutting concern) y no son fáciles de Este trabajo se estructura en la forma siguiente: la
separarse. La meta de la POA es encapsular estos sección 2 presenta los aspectos básicos del modelado
requisitos en una unidad modular llamada aspecto en el para el DSOA , la sección 3 muestra las extensiones de
nivel de implementación. Las recientes investigaciones UML para el DSOA, adicionalmente se define el Core
proponen utilizar las nociones y mecanismos de la POA UML para el DSOA basado en las extensiones y la
en las primeras etapas de desarrollo del software para ontología. La sección 4 describe un caso de estudio, un
reducir costos de desarrollo (Rashid et al, 2002). Portal para Cadena de Cines para mostrar el modelado
Estamos interesados en el enfoque denominado conceptual el cual es modelada utilizando los elementos
“Aspectos Tempranos” (early aspects) el cual consiste del Core. Finalmente la sección 5 presenta la conclusión
en la identificación de las incumbencias transversales y el trabajo futuro.
durante las disciplinas de requisitos, análisis y diseño
para facilitar el diseño arquitectónico. MODELADO PARA EL DSOA.
El Lenguaje de Modelado Unificado (UML) (Booch et
al, 1999; OMG, 2003) es un lenguaje gráfico usado El uso de UML como estándar implica la comunicación
ampliamente como un estándar para apoyar los procesos sin ambigüedad. Sin embargo, si un nuevo elemento de
de desarrollo de software orientado a objeto y basado en modelación se introduce con una nueva semántica, UML
componente. UML proporciona mecanismos de se puede ampliar de dos maneras, perfiles (profiles) y
extensión para definir nuevos elementos de modelación metamodelos (metamodels), para preservar el estándar.
(Booch et al, 1999), se han propuesto extensiones de Un perfil expresa los conceptos específicos para cierto
UML para el DSOA para modelar en etapas tempranas dominio de aplicación. Su definición ha evolucionado
de desarrollo. con las diferentes versiones de UML (OMG, 2003). Un
Varios autores (Zakaria et al, 2002; Aldawud et al, 2003; perfil utiliza la misma notación que un paquete de UML
Brito & Moreira, 2003; Moreira & Brito, 2002; Bash & y la palabra clave «profile» (OMG, 2003; Fuentes &
Sanchez, 2003; Zhang, 2005; Kaewkasi & Rivepiboon, Vallecillos, 2004).
2003; Krechetov et al, 2006; entres otros), han hecho Cuando se utiliza la modalidad de perfil, se usan los
esfuerzos en el modelado de elementos de software en mecanismos de extensión, es decir, el estereotipo
etapas tempranas usando el paradigma de la orientación (stereotype), valor etiquetado (tagged value) y las
a aspecto. En este trabajo, se obtiene un núcleo o Core restricciones (constraints). Un estereotipo es una clase
UML para el DSOA que considera extensiones UML que define cómo las metaclases ya estereotipadas debe
para etapas tempranas de desarrollo. En la Fig. 1, O ser extendidos, permitiendo el uso de la terminología y/o
representa el conjunto de todos los conceptos del notación de una plataforma o dominio de una aplicación
documento “AOSD Ontology” de la Comunidad particular. Algunos estereotipos se predefinen en UML,
Europea (Berg et al, 2005). CO es un subconjunto de O otros pueden ser definidos por el usuario (OMG, 2003).
que incluye todos los conceptos que tienen asociado Una restricción impone condiciones ante los elementos
elementos de modelación para el DSOA;
co de modelación que se han estereotipado (OMG, 2003).
(complemento) es el conjunto de elementos no Un valor etiquetado es un meta-atributo adicional
presentes en CO que han sido definidos por varios asociado a la metaclase del metamodelo extendido por
autores a través de estereotipos para el DSOA. Por otra un perfil. Cada valor etiquetado es un par (etiqueta,
parte, la mayoría de estos conceptos tienen asociados valor) que se puede utilizar para asignar la información a
estereotipos. El Core DSOA con las extensiones UML cualquier elemento o instancia del modelo (OMG, 2003;
está conformado por los conceptos de CO requeridos Fuentes & Vallecillos, 2004).
para modelar DSOA para el cual existen los estereotipos, Un metamodelo, es un modelo del lenguaje de
co modelado, que consiste en un conjunto de conceptos
más los de . En filosofía, la ontología es el estudio básicos y reglas, permitiendo la construcción de
de conceptos de la realidad y de la naturaleza de ser. En modelos conceptuales en un dominio dado, define las
informática, una ontología es un documento que define entidades del dominio y sus relaciones.
formalmente términos y sus relaciones; en un dominio Recientemente, los elementos de modelación para el
particular proporciona un vocabulario común DSOA se han definido con frecuencia usando
permitiendo una interpretación uniforme de la estereotipos de UML. Este trabajo se centra en el estudio
terminología, facilitando la comunicación entre los de los perfiles para el DSOA.
equipos de trabajo, la reutilización y compartir la
información. EXTENSIONES UML PARA EL DSOA.
concurrencia; estas características comúnmente
Los conceptos para el modelado orientado a aspecto se solapan en otros componentes del sistema
presentados a continuación se extraen del documento funcional base.
“AOSD Ontology” de la Comunidad Europea (Berg et  Aspecto (Aspect): Un aspecto es una unidad
al, 2005) y se comparan con las extensiones orientadas a para modularizar una incumbencia transversal,
aspecto (perfiles) presentadas por diversos autores que evitando los problemas de dispersión
no se incluyen en la ontología (Zakaria et al, 2002; (scattering) y enmarañamiento (tangling). La
Aldawud et al, 2003; Brito & Moreira, 2003; Moreira & notación gráfica del componente es utilizada
Brito, 2002; Bash & Sanchez, 2003; Zhang, 2005; como representación visual requerida para el
Kaewkasi & Rivepiboon, 2003; Krechetov et al, 2006). desarrollo temprano de aspectos.
Se identifican conceptos que no están en la ontología y  Composición (Composition): Una Composición
aparecen en los trabajos de estos autores, estos se reúne elementos del software creados
incluyen en nuestro Core (ver figura 1). Estos trabajos separadamente. La composición a nivel de
fueron seleccionados de la bibliografía de Filman (2005) modelado, en los aspectos tempranos encapsula
sobre el Desarrollo de Software Orientado a Aspecto. En aspectos en su propio paquete.
lo que sigue, hemos indicado los términos DSOA en  Tejido (Weaving): El tejido es el proceso de
castellano y los originales en inglés; sin embargo, componer los módulos de funcionalidades base
podrán ser utilizados indistintamente en el texto, para con aspectos. Se representa por el estereotipo
facilitar la presentación. de componente «weaver» o tejedor. Tiene la
responsabilidad de procesar el lenguaje base y
 Incumbencia (Concern): Incumbencia es un el lenguaje aspecto y componerlos con el
tema de interés, una parte del problema a objetivo de obtener la implementación del
resolver, o una característica o propiedad que se sistema.
debe considerar. Este concepto se utiliza para  Punto de Unión (Join Point): Punto de Unión,
referirse tanto a propiedades funcionales como son lugares bien definidos donde un
a las no funcionales de un sistema. Por comportamiento adicional es agregado en la
ejemplo, un sistema administrador de hotel estructura de ejecución o flujo de un programa.
implica la realización de cliente, reservaciones, Los Punto de Unión representan el concepto
control de las entradas y salidas del hotel, central de la Programación Orientada a
autorización de acceso a servicios, etc. Además Aspectos y el de su principal lenguaje de
el proyecto de software requiere de otras implementación AspectJ, se definen como
incumbencias como capacidad de puntos en la ejecución dinámica de un
mantenimiento, comprensibilidad y fácil programa interceptados por los aspectos, y en
evolución. Las incumbencias como cliente y los cuales secciones adicionales de código
reservación se conocen como incumbencias denominadas advice pueden ser ejecutadas. De
primarias porque capturan la funcionalidad manera elemental, un punto de unión es
central del sistema, mientras que las demás cualquier punto de ejecución identificable en
incumbencias se conocen como secundarios un sistema, la llamada a un método es un punto
porque están compartidos entre las de unión y la ejecución de un método también
incumbencias primarias, como lo es la lo es; una asignación a una variable, la
persistencia y la autorización de acceso. construcción de un objeto, una comparación, un
 Incumbencia Transversal (Crosscutting manejador de excepciones entre otros, son
Concern): Una incumbencia transversal es una ejemplos que permiten identificar tal concepto.
incumbencia donde la implementación se  Recomendación (Advice): Una recomendación
dispersa a través del resto del sistema de es el comportamiento a ejecutarse en un punto
software. En muchas oportunidades, un nuevo de unión (join point). Un advice ayuda a definir
caso de uso es sumado al diagrama de casos de “qué hacer”, es un mecanismo muy similar a un
uso por cada incumbencia transversal posible, y método, usado para declarar el código que debe
se llama aspecto candidato o candidate aspect y ejecutarse en cada punto de unión que es
es representado por un óvalo. También se puede capturado por el punto de corte. Existen tres
decir que, las incumbencias transversales son tipos de advice: before advice (se ejecuta
conceptos diseminados en el código previo al joint point), after advice (se ejecuta
atravesando partes del sistema no relacionados siguiendo al joint point) y around advice
en el modelo. Ejemplos: Logging o registro de (encierra la ejecución del punto de unión); este
la actividad en el sistema, acceso a base de último tiene la habilidad de desviar la
datos, temas relacionados con la seguridad, ejecución, continuar la ejecución normal o
causar la ejecución con un contexto alterado.
 Pointcut (Punto de Corte): Un punto de corte es En la Tabla 1 seleccionamos los elementos del Core
un predicado que se ensambla con los puntos UML para el DSOA, agrupados por las disciplinas del
de unión. Un punto de corte es un conjunto de proceso del desarrollo de requisitos, análisis y diseño.
puntos de unión; también se definen como una Note que los elementos de modelación seleccionados
estructura diseñada para identificar y son particularmente útiles en diseño de la arquitectura.
seleccionar los punto de unión dentro de un En este sentido la noción de componente que representa
programa en AspectJ. incumbencia (concern), aspecto (aspect) y tejido
(weaving) se utiliza en el diagrama de componentes, que
Los siguientes conceptos no están presentes en la serán tratados en la sección siguiente.
ontología citada. Lo consideramos porque estamos
centrados en las etapas tempranas del desarrollo de CASO DE ESTUDIO: MODELANDO UNA
software. ARQUITECTURA INICIAL PARA EL PORTAL
CADENA DE CINES
 CoreClass (Clase Base): Una clase base es
identificada como una unidad principal que El Core UML para el DSOA será utilizado para construir
encapsule algunas funcionalidades del sistema. una arquitectura inicial del problema en estudio. Se
 Match-Point (Punto de Decisión): Un punto de desarrollarán la vista de despliegue, los modelos de caso
decisión una abstracción del concepto join de uso y componentes en la disciplina de análisis.
point en AspectJ (Brito & Moreira, 2003; El problema: una cadena de cines solicita un sistema
Moreira & Brito, 2002). No se ha definido que proporcione el uso masivo de funcionalidades para
ninguna representación estereotipada ni gráfica el acceso público. Debe proporcionar también la
para este concepto. Por eso en la Tabla 1 Match facilidad para promover los diversos cines de la cadena.
Point no tiene representación gráfica. Relations Principalmente se deben considerar en el sistema:
Class-Aspect (Relación Clase-Aspecto): El reservación de boleto, pago, consulta y cancelación en
estereotipo de «crosscut» se utiliza para línea, registro del usuario, transacciones estadísticas.
modelar las relaciones transversales o La solución: se propone un portal, con un navegador
entrecruzadas crosscutting. (browser) comercial y facilidad de acceso a internet.
 Relations Concern-Candidate Aspect (Relación Análisis del Dominio para la aplicación Portal
incumbencia-Aspecto Candidato): Los aspectos Cadena de Cines: un portal es una aplicación web
candidatos afectan a las incumbencias que principalmente transaccional con servicios de portal.
tienen que ver con solapamiento: el Para este tipo de aplicación, se identifican en general las
overlapping, overriding y wrapping. En los
diagramas de casos de uso se usa la relación del
«include» clásico.
Disciplinas
Conceptos
Requisitos Análisis Diseño
concern Diagrama de casos de uso Diagrama de componentes

candidate aspect Diagrama de caso de uso


(crosscuting concern)

aspect Diagrama de Diagrama Diagrama de Diagrama de clases de


componentes de clases colaboración diseño
de análisis
composition Diagrama de Paquetes Diagrama de Paquetes

weaving Diagrama de componentes

Joint point «match point» Diagramas de clases,


secuencia y estado.

advice Diagrama de Paquetes Diagrama de clases de


diseño

Disciplinas

Conceptos Requisitos Análisis Diseño

core class Diagrama de clases de


diseño

relations concern – Diagrama de casos de uso


candidate aspect

relations class - aspect Diagrama de clases de


diseño

Tabla1: Core UML para el DSOA

incumbencias no funcionales (requisitos de calidad). Por (cliente Web) y la Base de datos (servidor de base de
otra parte, los principales requisitos funcionales y el datos).
estilo arquitectónico para aplicación web de tipo La capa Lógica de la aplicación (Servidor de
transaccional y portal son conocidos, ver por ejemplo aplicaciones) media entre el cliente y la capa del
Losavio et al (2008). Los requisitos de calidad para servidor. La comunicación es asegurada por el protocolo
aplicaciones transaccionales son: funcionalidad TCP/IP.
(seguridad, precisión), reutilización (disponibilidad), En conclusión, la información obtenida del análisis del
eficiencia (tiempo de respuesta, uso de recurso). Para dominio es la siguiente: requisitos funcionales,
aplicaciones tipo portal son: Portabilidad (adaptabilidad, requisitos de calidad y la arquitectura inicial.
escalabilidad), Eficiencia (tiempo de respuesta, uso de Luego de plantear el problema, las siguientes
recursos). El estilo es 3 capas, bajo modelo cliente incumbencias que comprenden a las funcionalidades del
servidor. problema pueden ser identificadas: consultar páginas
web del portal (operaciones de consulta, acceso),
Requisitos Funcionales registrar usuario en línea (intercambio de datos, control
Las principales funcionalidades de la aplicación Portal de acceso, encriptamiento), reservar en línea el boleto
Cadena de Cines son observadas de la descripción del (intercambio de datos y control de acceso), pago en línea
problema: intercambio de datos, control de acceso y del boleto (intercambio de datos, control de acceso y
encriptamiento, ya que en el portal las transacciones, encriptamiento). Para construir el modelo de caso de
consultas y el acceso son necesarias. uso, presentamos el diagrama de caso de uso usando el
estereotipo de relación «include» para indicar la relación
Arquitectura Inicial transversal (crosscut) (véase Fig. 2), incluyendo los
Una solución arquitectónica para nuestra aplicación es requisitos de calidad como el estereotipo «candidate
de 3 capas, el modelo cliente servidor, se considerará aspect» (Brito & Moreira, 2003).
para garantizar la separación entre la Interfaz de usuario
Figura 2. Diagrama de caso de uso para el Portal Cadena de Cines

Arquitectura para el Portal Cadena de Cines Configuración de la Arquitectura Inicial.


Ahora procedemos a construir una arquitectura inicial Se obtiene directamente de la arquitectura inicial del
para la aplicación Portal Cadena de Cines, en base a la análisis del dominio (Fig. 3). El servidor de aplicaciones
información proporcionada por el análisis del dominio, soporta el componente lógica de la aplicación, donde se
del diagrama de caso de uso y la tabla de composición. realiza el mayor esfuerzo de desarrollo y es modelado
por el diagrama de caso de uso.

Refinamiento de la Arquitectura.
El componente Lógica de la aplicación se refina
asignando un componente a cada caso de uso del
diagrama de caso de uso (Fig. 2). Note que los
componentes «concern» requieren componentes
«aspects», según la notación del estándar de UML 2.0
para expresar el diagrama de componente (Fig. 4). De la
tabla de composición (véase Tabla 2), observamos que la
“disponibilidad” es un aspecto candidato que corta
(crosscuts) solamente la funcionalidad “consultar
portal”, por lo tanto se considera un componente
«concern».
Figura 3: Arquitectura inicial de la Aplicación Portal
Cadena de Cines: diagrama de despliegue
Aspecto Candidato Consultar Portal Registrar Usuario Reservar Boleto Pagar Boleto
Tiempo de Respuesta X X
Precisión X X
Seguridad X X X
Disponibilidad X

Tabla 2: Identificación de Puntos de Composición

Figura 4: Refinamiento de la arquitectura Componente Lógico: con Diagrama de Componentes con incumbencias y
aspectos

Figura 5: Refinamiento de la arquitectura Componente Lógico: diagrama de componentes con weaving


Component Weaving. LNCS 1241; 220–242.
En la misma configuración, el proceso de tejido
(weaving) es representado usando el componente Rashid, A; Sawyer, P; Moreira, A. & Araujo, J. (2002).
«weaver» (Fig. 5). Hemos elegido representar a un Early aspects: a model for aspect-oriented requirement
weaver para cada incumbencia transversal. Otra opción engineering. En IEEE Joint Conference on Requirements
habría podido ser representar solamente un componente Engineering Proceedings, 199–202.
«weaver», compuesto por tres «weaver» mencionados.
Booch, G; Rumbaugh, J. & Jacobson, I. (1999). El
Refinamientos Futuros. Lenguaje Unificado de Modelado. Addison Wesley
En vista de que las incumbencias transversales se han Iberoamericana, Madrid, p 432.
identificado, podemos proceder a mirar con más detalles
cada componente concern, usando técnicas de diseño Object Management Group (2003). UML 2.0
arquitectónico conocidas. Es claro que podemos utilizar Infrastructure Specification. OMG document.
todos los estereotipos propuestos en el Core UML para
el DSOA, para conseguir un diseño arquitectónico Zakaria, A; Hosny, H. & Zeid, A. (2002). A uml
orientado a aspecto más detallado durante las disciplinas extension for modeling aspect-oriented systems. En
de análisis y diseño. UML 2002 Workshop on Aspect Oriented Modeling
Proccedings.
CONCLUSIÓN
Aldawud, O, Elrad, T. & Bader, A. (2003). A uml
El DSOA es un nuevo paradigma en la ingeniería del
profile for aspect oriented software development. En The
software, ahora considerado como una alternativa
Third International Workshop on AO Modeling
conveniente a la evolución del software y a la mejora de
Proceeding.
procesos de desarrollo de sistemas complejos modernos.
Este trabajo ha estudiado los conceptos del documento
“AOSD Ontology”, de la Comunidad Europea, además Brito, I. & Moreira, A. (2003). Towards a composition
de las numerosas extensiones UML para la orientación a process for aspect-oriented requirements. En Early
aspecto propuesta por diversos autores. De este estudio, Aspects: aspect-Oriented Requirements Engineering and
se obtiene un Core UML para el DSOA en etapas Architecture Design, workshop of the AOSD.
tempranos del desarrollo (disciplinas de requisitos,
análisis y diseño), conformado por los elementos de Moreira, A. & Brito, J. (2002). Crosscutting quality
modelación y sus estereotipos. Estos resultados attributes for requirements engineering. En 14th
contribuyen en general al establecimiento de los International Conference on Software Engineering and
estándares para una terminología unificada en el DSOA, Knowledge Engineering, ACM Press: 167–174.
favoreciendo la usabilidad de las técnicas de diseño
arquitectónico. El caso de estudio ilustra la aplicación Bash, M. & Sanchez, A. (2003). Incorporating aspects
del Core, para definir la arquitectura inicial de una into the uml. En International Conference on Aspect-
aplicación web. Además el Core será utilizado en la Oriented Software Development.
definición de los modelos y transformaciones de
modelos en el desarrollo de software orientado a Zhang, G. (2005). Toward aspect-oriented class diagram.
aspecto. Estos resultados se han aplicado y adaptado en En Society, I.C., ed.: 12th Asia-Pacific Software
diversos proyectos académicos.. Los trabajos futuros son Engineering Conf. (APSEC’05). 00, 763–768.
revisar y mejorar este enfoque para definir un paso
inicial que pueda ser finalmente incluido en un proceso Kaewkasi, C. & Rivepiboon, W. (2003). Aspect-oriented
de diseño arquitectónico o de aspecto. extension for capturing requirements in use-case model.
En CAISE: The 15th Conference on Advanced
REFERENCIAS Information Systems Engineering. CEUR.

Sutton, S & Tarr, P. (2002). Aspect-oriented design Krechetov, I; Tekinerdogan, B. & Garcia, A. (2006).
needs concern modeling. Position paper in the Aspect Towards an integrated aspect-oriented modeling
Oriented Design workshop in conjunction with AOSD approach for software architecture design. En Eng,
2002. I.T.S., ed.: DSOA 2006, 13:336–355.

Kiczales, G; Lamping, J; Mendhekar, A; Maeda, C; Berg, K; Conejero, J. & Chitchyan, R. (2005). AOSD
Lopes, C; Loingtier, J. & Irwin, J. (1997). Aspect- ontology 1.0 public ontology of aspect orientation.
oriented programming. En ECOOP’97 Proceedings, Common Foundation for AOSD. Report of the EU
Network of Excellence on AOSD. Disponible:
http://doc.utwente.nl/64104/.

Fuentes, L. & Vallecillo, A . (2004). Una introducción a


los perfiles de UML, Novática. 168: 6–11

Filman, R. (2005). A bibliography of aosd version 2.0.


Disponible: http://www.docstoc.com/docs/20096173/A-
Bibliography-of-Aspect-Oriented-Software-
Development-Version-20

Losavio, F; Matteo, A. & Rahamut, R. (2008).


Characterization of web services domain based on
quality standards. En Second European Conference,
ECSA. Computer Science Springer, L.N. 5292:350–353.

También podría gustarte