SlideShare una empresa de Scribd logo
2
Lo más leído
3
Lo más leído
4
Lo más leído
EL DESARROLLO DE SOFTWARE ORIENTADO A ASPECTOS SEGÚN
IVAR JACOBSON
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.
El enfoque orientado a aspectos define un mecanismo que ayuda a resolver
problemas de codificación en los requisitos, los cuales son un código disperso
(scattered) y diseminado (tangled), que no se resuelven fácilmente usando el
enfoque orientado a objetos. Este mecanismo se enfoca principalmente en la
separación de intereses (separation of concerns) de un sistema para obtener una
mejor modularización, tal como se muestra en la figura 1.
Figura 1. Separación de intereses
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.
2.1. Captura de requisitos
En esta fase se identifican dos categorías de casos de uso: de aplicación y de
infraestructura. Los casos de uso de aplicación describen las funcionalidades
básicas del sistema. Los casos de uso de infraestructura describen cómo el
sistema agrega cualidades como facilidad de uso, confiabilidad, de rendimiento
y de soporte para cada paso de un caso de uso de aplicación.
Figura 2. Casos de uso de aplicación y de infraestructura
La primera actividad consiste en entender los intereses de los stakeholders. El
resultado es obtener una lista de características del sistema la cual incluye
requisitos funcionales y no funcionales.
A continuación, se capturan los casos de uso de la aplicación. Esta actividad
consiste en identificar actores y casos de usos a partir de los requisitos
funcionales de la lista de características, y describir los casos de uso en las
especificaciones de casos de uso contemplando posibles extensiones. La
descripción de los casos de uso ayudará a identificar intereses de corte
transversal.
En la última actividad se capturan los casos de uso de infraestructura como
extensiones modulares a los casos de uso de aplicación. Para ello, se revisa
nuevamente la lista de características del sistema para identificar a los
requisitos no funcionales que afectan a algún paso de los casos de uso de
aplicación, los cuáles serán tratados como casos de uso de transacción (use-
case transaction) si se tratan de requisitos de infraestructura para el sistema.
Esta actividad termina con la descripción de estos tipos de casos de uso en
una especificación contemplando también sus flujos alternativos.
<Use case Transaction>
Use case
Infraestructure use case 1
Infraestructure use case 2
<<extend>>
<<extend>>
2.2. Análisis
Durante el análisis se identifica la estructura de los elementos del análisis en
términos de capas, paquetes y clases (boundary, control y entity). También se
identifican las estructuras de caso de uso conformados por paquetes
estereotipados con <<use-case slice>> y <<non-uc-specific slice>>.
Los paquetes use-case slice y non-uc-specific slice son unidades modulares
específicas y no específicas respectivamente que permiten organizar mucho
mejor el sistema.
Un use-case slice contiene elementos necesarios para un caso de uso
específico: una colaboración, que describe la realización de un caso de uso;
una o más clases específicas, que son requeridas para la realización del caso
de uso; y extensiones de clase específicas para un cierto aspecto.
Un non-uc-specific slice contiene clases del dominio del problema que se usan
en muchos casos de uso.
Figura 3. Estructura de elemento
Figura 4. Estructura de caso de uso
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.
Application
Layer
Domain
Layer
<<use case slice>>
<<use case slice>><<non-uc-specific
slice>>
<<extend>>
<<extend>>
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.
Figura 5. Modelando un use-case slice
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.
La mejor forma de entender los intereses de corte transversal durante el proceso de
modelado es utilizando los mecanismos de extensión del Unified Modeling
Language (UML), tal como lo hicieron los autores de este enfoque: en casos de
uso, paquetes y clases.
4. Bibliografía
Jacobson I. and Ng P. W. Aspect-oriented Software Development with Use Cases.
Addison Wesley Professional, 2005.

Más contenido relacionado

PDF
Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010
ODT
Especificación de requisitos de software
PPTX
Requerimiento funcional y no funcional
PPTX
Planificación de proyectos de software
PPT
Atributos de calidad en el desarrollo de software
PPTX
Tarjetas crc
PPT
Estimación Software por Puntos de Función
DOC
Requerimientos norma ieee830
Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010
Especificación de requisitos de software
Requerimiento funcional y no funcional
Planificación de proyectos de software
Atributos de calidad en el desarrollo de software
Tarjetas crc
Estimación Software por Puntos de Función
Requerimientos norma ieee830

La actualidad más candente (20)

PDF
Especificación y resultados de las pruebas de software
PPTX
MODELO COCOMO (INGENIERA DE SOFTWARE)
PPS
Diseño de Sistemas
PPTX
Ingenieria de requerimientos
PPTX
Tipos de-pruebas
PPTX
proceso unificado de desarrollo
PPTX
Métricas de Proceso y proyecto de software
PPTX
Requerimientos del software
DOCX
Caso de uso de biblioteca
DOCX
Requerimientos Funcionales y No Funcionales
PPT
diagrama de casos de uso del negocio y del sistema
PPTX
Protección y Seguridad de los sistemas operativos
PPSX
Conceptos basicos calidad software
PPTX
Modelos de software ventajas y desventajas
PPTX
Proceso del Software
PDF
Modelo del dominio
PPTX
Ingeniería de software modelo incremental
PPTX
Modelamiento de software
PDF
Modelo de desarrollo de software
PPT
Iso 12207
Especificación y resultados de las pruebas de software
MODELO COCOMO (INGENIERA DE SOFTWARE)
Diseño de Sistemas
Ingenieria de requerimientos
Tipos de-pruebas
proceso unificado de desarrollo
Métricas de Proceso y proyecto de software
Requerimientos del software
Caso de uso de biblioteca
Requerimientos Funcionales y No Funcionales
diagrama de casos de uso del negocio y del sistema
Protección y Seguridad de los sistemas operativos
Conceptos basicos calidad software
Modelos de software ventajas y desventajas
Proceso del Software
Modelo del dominio
Ingeniería de software modelo incremental
Modelamiento de software
Modelo de desarrollo de software
Iso 12207
Publicidad

Destacado (11)

PDF
Software Libre/Código Abierto - Informe Final
PDF
Algoritmos de Planning - Práctico Nro. 1
PDF
Int. a la Computación Evolutiva - Informe para cursada
PDF
Software Libre/Código Abierto - Enunciado
PPTX
Patrimonio dell'umanità in Italia
PDF
Sistemas de Recomendación de Información - Web Semáctica
PDF
Desarrollo de Software Orientado a Aspectos
PDF
Ejemplo practico
PPTX
The Deep Web
PDF
Programación Orientada a Aspectos (POA)
PPTX
Hofstede’s Cultural Dimensions
Software Libre/Código Abierto - Informe Final
Algoritmos de Planning - Práctico Nro. 1
Int. a la Computación Evolutiva - Informe para cursada
Software Libre/Código Abierto - Enunciado
Patrimonio dell'umanità in Italia
Sistemas de Recomendación de Información - Web Semáctica
Desarrollo de Software Orientado a Aspectos
Ejemplo practico
The Deep Web
Programación Orientada a Aspectos (POA)
Hofstede’s Cultural Dimensions
Publicidad

Similar a El desarrollo de software orientado a aspectos (20)

PDF
Proceso racional unificado
PPTX
Manual de sistema
DOCX
Metodologia de iconix jhon poo
PDF
Análisis y diseño de sistemas sesion 11 - modelo de analisis
PPTX
Unidad 2 - Arquitectura.pptx
PPTX
Analisis y Diseños de Sistemas 2-Metodologia OOSE
PPT
Desarrollo De Software Para Internet
PPT
13 Clase Flujo De Analisis
PPT
13 clase-flujo-de-analisis
PPT
Herramientas fabry
PPT
Herramientas fabry
PDF
implementaciondesoftware-110920135142-phpapp01.pdf
PDF
Ciclo de vida
DOCX
Tipos de modelos de procesos
PPTX
MODELO DE DISEÑOOOOOOOOOOOOOOOOOOOOO.pptx
PPTX
Sistemas de Informacion
PPTX
Unidad III Sistemas de Informacion
PDF
Trabajo de Christian Oblitas
Proceso racional unificado
Manual de sistema
Metodologia de iconix jhon poo
Análisis y diseño de sistemas sesion 11 - modelo de analisis
Unidad 2 - Arquitectura.pptx
Analisis y Diseños de Sistemas 2-Metodologia OOSE
Desarrollo De Software Para Internet
13 Clase Flujo De Analisis
13 clase-flujo-de-analisis
Herramientas fabry
Herramientas fabry
implementaciondesoftware-110920135142-phpapp01.pdf
Ciclo de vida
Tipos de modelos de procesos
MODELO DE DISEÑOOOOOOOOOOOOOOOOOOOOO.pptx
Sistemas de Informacion
Unidad III Sistemas de Informacion
Trabajo de Christian Oblitas

Más de Tensor (20)

PDF
Libertad
PPTX
Método de la regla falsa (o metodo de la falsa posición)
PPTX
Metodo de la bisección
PPTX
Transito vehicular
PPTX
Teoria de colas
PDF
Practica 7 2016
PDF
Practica 6 2016
PPTX
Game maker
PDF
Practica 5 2016
PPTX
Procesamiento de archivos
PPTX
Cadenas y funciones de cadena
PPTX
Simulación en promodel clase 04
PDF
Reduccion de orden
PDF
Variación+de+parametros
PDF
Coeficientes indeterminados enfoque de superposición
PDF
Bernoulli y ricatti
PDF
Practica no. 3 tiempo de servicio
PPTX
Clase 14 ondas reflejadas
PDF
Ondas em
PPTX
Clase 7 ondas electromagneticas
Libertad
Método de la regla falsa (o metodo de la falsa posición)
Metodo de la bisección
Transito vehicular
Teoria de colas
Practica 7 2016
Practica 6 2016
Game maker
Practica 5 2016
Procesamiento de archivos
Cadenas y funciones de cadena
Simulación en promodel clase 04
Reduccion de orden
Variación+de+parametros
Coeficientes indeterminados enfoque de superposición
Bernoulli y ricatti
Practica no. 3 tiempo de servicio
Clase 14 ondas reflejadas
Ondas em
Clase 7 ondas electromagneticas

Último (20)

DOCX
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
PDF
Tomo 1 de biologia gratis ultra plusenmas
DOCX
PLANES DE área ciencias naturales y aplicadas
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PDF
5°-UNIDAD 5 - 2025.pdf aprendizaje 5tooo
PDF
biología es un libro sobre casi todo el tema de biología
DOCX
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
PDF
Punto Critico - Brian Tracy Ccesa007.pdf
DOCX
PLAN DE CASTELLANO 2021 actualizado a la normativa
PDF
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
PDF
DI, TEA, TDAH.pdf guía se secuencias didacticas
PDF
TOMO II - LITERATURA.pd plusenmas ultras
PDF
Metodologías Activas con herramientas IAG
PDF
Atencion prenatal. Ginecologia y obsetricia
PDF
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
PDF
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
PPTX
Presentación de la Cetoacidosis diabetica.pptx
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
Tomo 1 de biologia gratis ultra plusenmas
PLANES DE área ciencias naturales y aplicadas
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
5°-UNIDAD 5 - 2025.pdf aprendizaje 5tooo
biología es un libro sobre casi todo el tema de biología
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
Punto Critico - Brian Tracy Ccesa007.pdf
PLAN DE CASTELLANO 2021 actualizado a la normativa
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
V UNIDAD - SEGUNDO GRADO. del mes de agosto
DI, TEA, TDAH.pdf guía se secuencias didacticas
TOMO II - LITERATURA.pd plusenmas ultras
Metodologías Activas con herramientas IAG
Atencion prenatal. Ginecologia y obsetricia
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
Presentación de la Cetoacidosis diabetica.pptx

El desarrollo de software orientado a aspectos

  • 1. EL DESARROLLO DE SOFTWARE ORIENTADO A ASPECTOS SEGÚN IVAR JACOBSON 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. El enfoque orientado a aspectos define un mecanismo que ayuda a resolver problemas de codificación en los requisitos, los cuales son un código disperso (scattered) y diseminado (tangled), que no se resuelven fácilmente usando el enfoque orientado a objetos. Este mecanismo se enfoca principalmente en la separación de intereses (separation of concerns) de un sistema para obtener una mejor modularización, tal como se muestra en la figura 1. Figura 1. Separación de intereses 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. 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. 2.1. Captura de requisitos En esta fase se identifican dos categorías de casos de uso: de aplicación y de infraestructura. Los casos de uso de aplicación describen las funcionalidades básicas del sistema. Los casos de uso de infraestructura describen cómo el sistema agrega cualidades como facilidad de uso, confiabilidad, de rendimiento y de soporte para cada paso de un caso de uso de aplicación. Figura 2. Casos de uso de aplicación y de infraestructura La primera actividad consiste en entender los intereses de los stakeholders. El resultado es obtener una lista de características del sistema la cual incluye requisitos funcionales y no funcionales. A continuación, se capturan los casos de uso de la aplicación. Esta actividad consiste en identificar actores y casos de usos a partir de los requisitos funcionales de la lista de características, y describir los casos de uso en las especificaciones de casos de uso contemplando posibles extensiones. La descripción de los casos de uso ayudará a identificar intereses de corte transversal. En la última actividad se capturan los casos de uso de infraestructura como extensiones modulares a los casos de uso de aplicación. Para ello, se revisa nuevamente la lista de características del sistema para identificar a los requisitos no funcionales que afectan a algún paso de los casos de uso de aplicación, los cuáles serán tratados como casos de uso de transacción (use- case transaction) si se tratan de requisitos de infraestructura para el sistema. Esta actividad termina con la descripción de estos tipos de casos de uso en una especificación contemplando también sus flujos alternativos. <Use case Transaction> Use case Infraestructure use case 1 Infraestructure use case 2 <<extend>> <<extend>>
  • 3. 2.2. Análisis Durante el análisis se identifica la estructura de los elementos del análisis en términos de capas, paquetes y clases (boundary, control y entity). También se identifican las estructuras de caso de uso conformados por paquetes estereotipados con <<use-case slice>> y <<non-uc-specific slice>>. Los paquetes use-case slice y non-uc-specific slice son unidades modulares específicas y no específicas respectivamente que permiten organizar mucho mejor el sistema. Un use-case slice contiene elementos necesarios para un caso de uso específico: una colaboración, que describe la realización de un caso de uso; una o más clases específicas, que son requeridas para la realización del caso de uso; y extensiones de clase específicas para un cierto aspecto. Un non-uc-specific slice contiene clases del dominio del problema que se usan en muchos casos de uso. Figura 3. Estructura de elemento Figura 4. Estructura de caso de uso 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. Application Layer Domain Layer <<use case slice>> <<use case slice>><<non-uc-specific slice>> <<extend>> <<extend>>
  • 4. 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. Figura 5. Modelando un use-case slice 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. La mejor forma de entender los intereses de corte transversal durante el proceso de modelado es utilizando los mecanismos de extensión del Unified Modeling Language (UML), tal como lo hicieron los autores de este enfoque: en casos de uso, paquetes y clases. 4. Bibliografía Jacobson I. and Ng P. W. Aspect-oriented Software Development with Use Cases. Addison Wesley Professional, 2005.