SlideShare una empresa de Scribd logo
1 de 4
Descargar para leer sin conexión
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

La actualidad más candente

Unidad 1. caracterizacion de los sistemas distribuidos
Unidad 1.  caracterizacion de los sistemas distribuidosUnidad 1.  caracterizacion de los sistemas distribuidos
Unidad 1. caracterizacion de los sistemas distribuidosEManuel Torres
 
03 gestión de pruebas de software diseño de casos de pruebas
03 gestión de pruebas de software   diseño de casos de pruebas03 gestión de pruebas de software   diseño de casos de pruebas
03 gestión de pruebas de software diseño de casos de pruebasAntonio Quiña
 
3.2 manejadores de bases de datos
3.2 manejadores de bases de datos3.2 manejadores de bases de datos
3.2 manejadores de bases de datosisraelmillan8
 
Presentacion uml dian1_2003
Presentacion uml dian1_2003Presentacion uml dian1_2003
Presentacion uml dian1_2003Diana Vásquez
 
Metodologias para el desarrollo del software
Metodologias para el desarrollo del softwareMetodologias para el desarrollo del software
Metodologias para el desarrollo del softwareyeltsintorres18
 
Planificación de proyectos de software
Planificación de proyectos de softwarePlanificación de proyectos de software
Planificación de proyectos de softwarehrubenleiva21
 
Apliocacion ir restaurante.
Apliocacion ir restaurante.Apliocacion ir restaurante.
Apliocacion ir restaurante.asd
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de SoftwareCamila Arbelaez
 
Aseguramiento de la calidad en software III
Aseguramiento de la calidad en software IIIAseguramiento de la calidad en software III
Aseguramiento de la calidad en software IIITensor
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosJuan Carlos Olivares Rojas
 
Arquitectura de software orientada a patrones
Arquitectura de software orientada a patronesArquitectura de software orientada a patrones
Arquitectura de software orientada a patronesGustavo De la Cruz Tovar
 
Uso de herramientas case
Uso de herramientas caseUso de herramientas case
Uso de herramientas caseMemo Wars
 
Software caja negra y caja blanca
Software caja negra y caja blancaSoftware caja negra y caja blanca
Software caja negra y caja blancaStudentPc
 

La actualidad más candente (20)

Unidad 1. caracterizacion de los sistemas distribuidos
Unidad 1.  caracterizacion de los sistemas distribuidosUnidad 1.  caracterizacion de los sistemas distribuidos
Unidad 1. caracterizacion de los sistemas distribuidos
 
03 gestión de pruebas de software diseño de casos de pruebas
03 gestión de pruebas de software   diseño de casos de pruebas03 gestión de pruebas de software   diseño de casos de pruebas
03 gestión de pruebas de software diseño de casos de pruebas
 
3.2 manejadores de bases de datos
3.2 manejadores de bases de datos3.2 manejadores de bases de datos
3.2 manejadores de bases de datos
 
Presentacion uml dian1_2003
Presentacion uml dian1_2003Presentacion uml dian1_2003
Presentacion uml dian1_2003
 
Metodologias para el desarrollo del software
Metodologias para el desarrollo del softwareMetodologias para el desarrollo del software
Metodologias para el desarrollo del software
 
Planificación de proyectos de software
Planificación de proyectos de softwarePlanificación de proyectos de software
Planificación de proyectos de software
 
Cierre del proyecto - pmi
Cierre del proyecto - pmiCierre del proyecto - pmi
Cierre del proyecto - pmi
 
Proceso de Software Personal
Proceso de Software PersonalProceso de Software Personal
Proceso de Software Personal
 
Apliocacion ir restaurante.
Apliocacion ir restaurante.Apliocacion ir restaurante.
Apliocacion ir restaurante.
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software
 
Sqap ejemplos
Sqap ejemplosSqap ejemplos
Sqap ejemplos
 
Aseguramiento de la calidad en software III
Aseguramiento de la calidad en software IIIAseguramiento de la calidad en software III
Aseguramiento de la calidad en software III
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de Requerimientos
 
Sqa ejemplo
Sqa ejemploSqa ejemplo
Sqa ejemplo
 
Normas ISO 9126 - 25000
Normas ISO 9126 - 25000Normas ISO 9126 - 25000
Normas ISO 9126 - 25000
 
Arquitectura de software orientada a patrones
Arquitectura de software orientada a patronesArquitectura de software orientada a patrones
Arquitectura de software orientada a patrones
 
Metodología WEB UWE
Metodología WEB UWEMetodología WEB UWE
Metodología WEB UWE
 
Uso de herramientas case
Uso de herramientas caseUso de herramientas case
Uso de herramientas case
 
Ingenieria Web
Ingenieria WebIngenieria Web
Ingenieria Web
 
Software caja negra y caja blanca
Software caja negra y caja blancaSoftware caja negra y caja blanca
Software caja negra y caja blanca
 

Destacado

Software Libre/Código Abierto - Informe Final
Software Libre/Código Abierto - Informe FinalSoftware Libre/Código Abierto - Informe Final
Software Libre/Código Abierto - Informe Finalmartinp
 
Algoritmos de Planning - Práctico Nro. 1
Algoritmos de Planning - Práctico Nro. 1Algoritmos de Planning - Práctico Nro. 1
Algoritmos de Planning - Práctico Nro. 1martinp
 
Int. a la Computación Evolutiva - Informe para cursada
Int. a la Computación Evolutiva - Informe para cursadaInt. a la Computación Evolutiva - Informe para cursada
Int. a la Computación Evolutiva - Informe para cursadamartinp
 
Software Libre/Código Abierto - Enunciado
Software Libre/Código Abierto - EnunciadoSoftware Libre/Código Abierto - Enunciado
Software Libre/Código Abierto - Enunciadomartinp
 
Patrimonio dell'umanità in Italia
Patrimonio dell'umanità in ItaliaPatrimonio dell'umanità in Italia
Patrimonio dell'umanità in Italiamartinp
 
Sistemas de Recomendación de Información - Web Semáctica
Sistemas de Recomendación de Información - Web SemácticaSistemas de Recomendación de Información - Web Semáctica
Sistemas de Recomendación de Información - Web Semácticamartinp
 
Desarrollo de Software Orientado a Aspectos
Desarrollo de Software Orientado a AspectosDesarrollo de Software Orientado a Aspectos
Desarrollo de Software Orientado a Aspectosmartinp
 
Ejemplo practico
Ejemplo practicoEjemplo practico
Ejemplo practicoTensor
 
The Deep Web
The Deep WebThe Deep Web
The Deep Webmartinp
 
Programación Orientada a Aspectos (POA)
Programación Orientada a Aspectos (POA)Programación Orientada a Aspectos (POA)
Programación Orientada a Aspectos (POA)Walter Javier Franck
 
Hofstede’s Cultural Dimensions
Hofstede’s Cultural DimensionsHofstede’s Cultural Dimensions
Hofstede’s Cultural Dimensionsmartinp
 

Destacado (11)

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

Similar a El desarrollo de software orientado a aspectos

Proceso racional unificado
Proceso racional unificadoProceso racional unificado
Proceso racional unificadokary-1004
 
Metodologia de iconix jhon poo
Metodologia de iconix jhon pooMetodologia de iconix jhon poo
Metodologia de iconix jhon pooJhon Yuqui
 
Análisis y diseño de sistemas sesion 11 - modelo de analisis
Análisis y diseño de sistemas   sesion 11 - modelo de analisisAnálisis y diseño de sistemas   sesion 11 - modelo de analisis
Análisis y diseño de sistemas sesion 11 - modelo de analisisGianfrancoEduardoBra
 
Unidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptxUnidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptxRunayli
 
Analisis y Diseños de Sistemas 2-Metodologia OOSE
Analisis y Diseños de Sistemas 2-Metodologia OOSEAnalisis y Diseños de Sistemas 2-Metodologia OOSE
Analisis y Diseños de Sistemas 2-Metodologia OOSEMari Cruz
 
Desarrollo De Software Para Internet
Desarrollo De Software Para InternetDesarrollo De Software Para Internet
Desarrollo De Software Para Internetsamgeo
 
13 Clase Flujo De Analisis
13 Clase Flujo De Analisis13 Clase Flujo De Analisis
13 Clase Flujo De AnalisisJulio Pari
 
implementaciondesoftware-110920135142-phpapp01.pdf
implementaciondesoftware-110920135142-phpapp01.pdfimplementaciondesoftware-110920135142-phpapp01.pdf
implementaciondesoftware-110920135142-phpapp01.pdfssuser948499
 
Tipos de modelos de procesos
Tipos de modelos de procesosTipos de modelos de procesos
Tipos de modelos de procesosEIYSC
 
Sistemas de Informacion
Sistemas de InformacionSistemas de Informacion
Sistemas de InformacionCasssandraG
 
Unidad III Sistemas de Informacion
Unidad III Sistemas de InformacionUnidad III Sistemas de Informacion
Unidad III Sistemas de InformacionCasssandraG
 
Trabajo de Christian Oblitas
Trabajo de Christian OblitasTrabajo de Christian Oblitas
Trabajo de Christian OblitasChristian1705
 

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

Proceso racional unificado
Proceso racional unificadoProceso racional unificado
Proceso racional unificado
 
Manual de sistema
Manual de sistemaManual de sistema
Manual de sistema
 
Semana8 soft ii
Semana8 soft iiSemana8 soft ii
Semana8 soft ii
 
Metodologia de iconix jhon poo
Metodologia de iconix jhon pooMetodologia de iconix jhon poo
Metodologia de iconix jhon poo
 
Análisis y diseño de sistemas sesion 11 - modelo de analisis
Análisis y diseño de sistemas   sesion 11 - modelo de analisisAnálisis y diseño de sistemas   sesion 11 - modelo de analisis
Análisis y diseño de sistemas sesion 11 - modelo de analisis
 
Unidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptxUnidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptx
 
Analisis y Diseños de Sistemas 2-Metodologia OOSE
Analisis y Diseños de Sistemas 2-Metodologia OOSEAnalisis y Diseños de Sistemas 2-Metodologia OOSE
Analisis y Diseños de Sistemas 2-Metodologia OOSE
 
Desarrollo De Software Para Internet
Desarrollo De Software Para InternetDesarrollo De Software Para Internet
Desarrollo De Software Para Internet
 
13 Clase Flujo De Analisis
13 Clase Flujo De Analisis13 Clase Flujo De Analisis
13 Clase Flujo De Analisis
 
13 clase-flujo-de-analisis
13 clase-flujo-de-analisis13 clase-flujo-de-analisis
13 clase-flujo-de-analisis
 
Herramientas fabry
Herramientas fabryHerramientas fabry
Herramientas fabry
 
Herramientas fabry
Herramientas fabryHerramientas fabry
Herramientas fabry
 
implementaciondesoftware-110920135142-phpapp01.pdf
implementaciondesoftware-110920135142-phpapp01.pdfimplementaciondesoftware-110920135142-phpapp01.pdf
implementaciondesoftware-110920135142-phpapp01.pdf
 
Ciclo de vida
Ciclo de vidaCiclo de vida
Ciclo de vida
 
Tipos de modelos de procesos
Tipos de modelos de procesosTipos de modelos de procesos
Tipos de modelos de procesos
 
Sistemas de Informacion
Sistemas de InformacionSistemas de Informacion
Sistemas de Informacion
 
Unidad III Sistemas de Informacion
Unidad III Sistemas de InformacionUnidad III Sistemas de Informacion
Unidad III Sistemas de Informacion
 
Trabajo de Christian Oblitas
Trabajo de Christian OblitasTrabajo de Christian Oblitas
Trabajo de Christian Oblitas
 
Is.exp.329466
Is.exp.329466Is.exp.329466
Is.exp.329466
 
Modelo 4+1
Modelo 4+1Modelo 4+1
Modelo 4+1
 

Más de Tensor

Libertad
LibertadLibertad
LibertadTensor
 
Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Tensor
 
Metodo de la bisección
Metodo de la bisecciónMetodo de la bisección
Metodo de la bisecciónTensor
 
Transito vehicular
Transito vehicularTransito vehicular
Transito vehicularTensor
 
Teoria de colas
Teoria de colasTeoria de colas
Teoria de colasTensor
 
Practica 7 2016
Practica 7 2016Practica 7 2016
Practica 7 2016Tensor
 
Practica 6 2016
Practica 6 2016Practica 6 2016
Practica 6 2016Tensor
 
Game maker
Game makerGame maker
Game makerTensor
 
Practica 5 2016
Practica 5 2016Practica 5 2016
Practica 5 2016Tensor
 
Procesamiento de archivos
Procesamiento de archivosProcesamiento de archivos
Procesamiento de archivosTensor
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadenaTensor
 
Simulación en promodel clase 04
Simulación en promodel clase 04Simulación en promodel clase 04
Simulación en promodel clase 04Tensor
 
Reduccion de orden
Reduccion de ordenReduccion de orden
Reduccion de ordenTensor
 
Variación+de+parametros
Variación+de+parametrosVariación+de+parametros
Variación+de+parametrosTensor
 
Coeficientes indeterminados enfoque de superposición
Coeficientes indeterminados   enfoque de superposiciónCoeficientes indeterminados   enfoque de superposición
Coeficientes indeterminados enfoque de superposiciónTensor
 
Bernoulli y ricatti
Bernoulli y ricattiBernoulli y ricatti
Bernoulli y ricattiTensor
 
Practica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioPractica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioTensor
 
Clase 14 ondas reflejadas
Clase 14 ondas reflejadasClase 14 ondas reflejadas
Clase 14 ondas reflejadasTensor
 
Ondas em
Ondas emOndas em
Ondas emTensor
 
Clase 7 ondas electromagneticas
Clase 7 ondas electromagneticasClase 7 ondas electromagneticas
Clase 7 ondas electromagneticasTensor
 

Más de Tensor (20)

Libertad
LibertadLibertad
Libertad
 
Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)
 
Metodo de la bisección
Metodo de la bisecciónMetodo de la bisección
Metodo de la bisección
 
Transito vehicular
Transito vehicularTransito vehicular
Transito vehicular
 
Teoria de colas
Teoria de colasTeoria de colas
Teoria de colas
 
Practica 7 2016
Practica 7 2016Practica 7 2016
Practica 7 2016
 
Practica 6 2016
Practica 6 2016Practica 6 2016
Practica 6 2016
 
Game maker
Game makerGame maker
Game maker
 
Practica 5 2016
Practica 5 2016Practica 5 2016
Practica 5 2016
 
Procesamiento de archivos
Procesamiento de archivosProcesamiento de archivos
Procesamiento de archivos
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadena
 
Simulación en promodel clase 04
Simulación en promodel clase 04Simulación en promodel clase 04
Simulación en promodel clase 04
 
Reduccion de orden
Reduccion de ordenReduccion de orden
Reduccion de orden
 
Variación+de+parametros
Variación+de+parametrosVariación+de+parametros
Variación+de+parametros
 
Coeficientes indeterminados enfoque de superposición
Coeficientes indeterminados   enfoque de superposiciónCoeficientes indeterminados   enfoque de superposición
Coeficientes indeterminados enfoque de superposición
 
Bernoulli y ricatti
Bernoulli y ricattiBernoulli y ricatti
Bernoulli y ricatti
 
Practica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioPractica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicio
 
Clase 14 ondas reflejadas
Clase 14 ondas reflejadasClase 14 ondas reflejadas
Clase 14 ondas reflejadas
 
Ondas em
Ondas emOndas em
Ondas em
 
Clase 7 ondas electromagneticas
Clase 7 ondas electromagneticasClase 7 ondas electromagneticas
Clase 7 ondas electromagneticas
 

Último

ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 

Último (20)

ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 

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.