Programa de Ingeniera de Sistemas Modulo Lnea de nfasis II Prog. Orientada a Grupo X Aspectos semestre Tema Introduccin y Generalidades Tutor/Docente Julin Giraldo Rodrguez Fecha 05/08/201 7 Estudiante(s) Leidy Mariana Canaval Abello Yury Vannesa Gmez Gonzlez
Programacin Orientada a Aspectos - Generalidades
Acorde con la lectura propuesta previamente realizada sobre la Programacin
Orientada a Aspectos responda las siguientes preguntas:
1. Qu involucra generalmente el desarrollo de software o aplicaciones?
R/: Involucra varias tareas, entre estas estn las principales que son las que detallan los usuarios como parte del anlisis funcional de los requerimientos. Tambin hay tareas comunes, estas no son detalladas pero son importantes para el complemento del proyecto.
2. Sobre el documento A qu se hace referencia con el trmino de incumbencia? y
Qu se hace difcil cuando se trabaja con lenguajes tpicos? R/: Se refiere a cada una de las tareas independientes del cdigo. Cuando se trabaja con lenguajes tpicos se hace difcil separar claramente las incumbencias principales de los servicios comunes.
3. Construya una definicin propia de Programacin Orientada a Aspectos basado en
la lectura realizada. R/: La programacin orientada a aspectos es la que permite dentro del cdigo tener separados los requerimientos y procesos. Estos cumplen funciones independientes pero al agruparlos complementan un proyecto complejo, fcil de comprender, dinmico y sencillo en el momento de tener que realizar modificaciones.
4. Realice una lnea de tiempo sobre la historia de POA.
5. Cmo entiende el concepto de aspecto? Cul de las definiciones expuestas en el documento le es ms fcil de comprender? Explquela con un ejemplo. R/: Un aspecto es una tarea independiente que realiza funciones determinadas.
La definicin ms fcil de comprender es la de Gregor Kiezales Un aspecto es una
unidad modular que se disemina por la estructura de otras unidades funcionales
Ejemplo: Loggin. Este tiene cdigo independiente y afecta necesariamente todas las partes del sistema que generan un evento.
6. Explique a groso modo en que consiste la implementacin de aspectos, dejando
muy claro los conceptos de entretejido, puntos de enlace y tejedor. R/: La implementacin de aspectos consiste en encapsular funcionalidades dispersas por todo el cdigo y hacer que interacten entre s, utilizando una estrategia de insercin, a esto se le llama entretejido. Esto se logra declarando punto de enlace, los cuales son interfaces entre los aspectos y componentes. Estos puntos son los que se deben modificar para hace que el cdigo sea ejecutable. Para lograr que el punto de enlace sea efectivo es necesario utilizar un tejedor. Punto de cortes es un conjunto de puntos de enlace.
Dvice: impl3emetacion cdigo de aspecto
Entretejido: estrategia de insercin Tejedor: medio, quien inserta
7. Cules son los componentes fundamentales de un programa orientado a
aspectos? - Lenguaje base para la funcionalidad bsica. - Uno o varios lenguajes de aspectos - Tejedor de aspectos. Combina los lenguajes
8. Qu diferencia existe entre un componente y un aspecto?
R/: Los componentes (POO) son las funciones principales y mtodos y se pueden encapsular, los aspectos (POA) dan cierta dificultad para encapsularlo o no se pueden
9. En qu consisten el entretejido dinmico y el esttico?
Entretejido esttico: Modifica el cdigo fuente en los puntos de enlace, evita que el nivel de extraccin perjudique el programa general.
Entretejido dinmico: Requiere que los aspectos existan y estn presentes en
tiempo de ejecucin y compilacin. Los aspectos y los componentes se toman como objetos y se relacionan mediante la herencia.
10. Explique brevemente en que consiste el diseo y desarrollo de aplicaciones
orientadas a aspectos. R/: Hasta hace tiempo la orientacin a aspectos se centr en el desarrollo pero en los ltimos tiempos han surgido ms trabajos que dependen de la separacin de las incumbencias en el diseo. Desarrollar un sistema basado en aspectos requiere entender qu se debe incluir en el lenguaje base, qu se debe incluir dentro de los lenguajes de aspectos y qu debe compartirse entre ambos lenguajes. El desarrollo de una aplicacin basada en aspectos requiere de tres pasos 1. Descomposicin de aspectos y componentes 2. Implementacin de las incumbencias 3. Recomposicin: Definir las reglas que permitan combinar los aspectos con los componentes
Actividad complementaria.
Realice un cuadro comparativo de los lenguajes orientados a aspectos expuestos en el
documento suministrando ejemplo de su aplicacin en el mundo actual.