Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Desarrollo de SW Orientado A Aspectos
Desarrollo de SW Orientado A Aspectos
IVAR JACOBSON
Ing. Gisella Guzmán Mariluz
gguzman@usmp.edu.pe
1. Introducción
Son muchos los intereses que un equipo de desarrollo de software debe fijar su
atención: entender el problema, entender su entorno, gestión del proyecto, equipo
de desarrollo, aspectos técnicos, entre otros. Los intereses referidos a aspectos
técnicos como seguridad, persistencia, presentación, manejo de errores, etc. han
dado origen al paradigma orientado a aspectos.
Ivar Jaconson, un líder del pensamiento en el mundo del software donde ha hecho
varias contribuciones decisivas, no podía faltar en el revolucionario camino del
enfoque orientado a aspectos. En este sentido, Jacobson y su compañero de
trabajo Pan-Wei Ng (en Ivar Jacobson Consulting - IJC) publicaron, en el año 2005,
el libro titulado “Aspect-Oriented Software Development with Use Cases” donde
describen la extensión del Proceso Unificado para desarrollar software con
aspectos.
En este artículo se proporciona una breve descripción de cada fase del desarrollo
de software orientado a aspectos propuesto por los autores. Esta descripción le
permitirá familiarizarse con términos claves de este enfoque, invitándolo a adquirir
el libro para una completa comprensión ya que ilustra un caso práctico de
aplicación.
2. Desarrollo de software orientado a aspectos
El desarrollo de software orientado a aspectos (DSOA) se enfoca en crear una
mejor abstracción modular del sistema. Incluye las siguientes fases:
- Captura de requisitos
- Análisis
- Diseño
- Implementación
- Pruebas
La primera fase trata la separación de intereses tanto los funcionales como los no
funcionales; los requisitos funcionales son modelados con casos de uso que
representan la función básica del sistema y los requisitos no funcionales se
representan con casos de uso de infraestructura. En el análisis y el diseño los
casos de uso se representan en una estructura de composición que se identifica
con el estereotipo <<use case slice>> y agrupa elementos de modelo que
colaboran para lograr los requisitos del sistema tanto funcionales como no
funcionales. En la implementación se genera el código de las clases y aspectos.
Por último en las pruebas se diseñan las pruebas tanto para los casos de uso de la
aplicación como para los casos de uso slice.
<<extend>>
Infraestructure use case 1
<Use case Transaction>
Use case <<extend>>
Infraestructure use case 2
Figura 2. Casos de uso de aplicación y de infraestructura
Un non-uc-specific slice contiene clases del dominio del problema que se usan
en muchos casos de uso.
Application
Layer
Domain
Layer
<<extend>>
<<use case slice>>
2.3. Diseño
Aquí se incluyen actividades relacionadas a refinar las dos estructuras
identificadas en el análisis incluyendo detalles del ambiente de implementación.
Mientras que la estructura del modelo de análisis es independiente de la
plataforma (lenguajes de programación y tecnología), el modelo de diseño es
específico a una plataforma que será utilizado en la implementación.
El proceso de refinamiento consiste en refinar las clases con detalles de
implementación y refinar los casos de uso slice incluyendo aspectos y las
extensiones de clases.
2.4. Implementación
En esta etapa se genera el código de las clases con un lenguaje de
implementación como JAVA. Asimismo, se codifican los aspectos en un
lenguaje orientado a aspectos como AspectJ.
2.5. Pruebas
Las pruebas se llevan a cabo desde los requisitos hasta la codificación. Se
diseñan pruebas para cada caso de uso y caso de uso slice. Por otro lado, se
crean casos de prueba slice que se puedan remover al completar las pruebas.
3. Conclusiones
La utilización de aspectos en el proceso de desarrollo de software proporciona un
soporte avanzado para la separación de intereses introduciendo una nueva forma
de modularizar el sistema. El resultado de este enfoque es obtener un producto
software más fácil de mantener, extender y reutilizar.
4. Bibliografía
Jacobson I. and Ng P. W. Aspect-oriented Software Development with Use Cases.
Addison Wesley Professional, 2005.