Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ORIENTADA A ASPECTOS
RESUMEN
La ingeniera del software, y en general, la informtica es una disciplina que est
en constante evolucin. Cada da surgen nuevas tcnicas y metodologas que
intentan mejorar la calidad y la eficiencia de los productos software. En los ltimos
tiempos ha surgido con fuerza una nueva forma de descomponer los sistemas: la
orientacin a aspectos. Esta investigacin analiza las caractersticas y
funcionalidades de la programacin orientada a aspectos, a travs de estudios de
casos para un desarrollo experimental de una aplicacin, mostrando una visin
general, desde sus comienzos, hasta llegar su estado actual .La Programacin
Orientada a Aspectos es una propuesta reciente que brinda un mayor grado de
abstraccin en el desarrollo de software, permitiendo realizar de manera ntida y
eficiente una clara separacin de aspectos. Esta tcnica de programacin
surgida a fines de los 90' y con importante crecimiento en los ltimos aos, busca
facilitar la modularizacin de aquellas incumbencias transversales que resultan de
la modularizacin con las tcnicas tradicionales de programacin. El presente
trabajo muestra las particularidades principales de la Programacin Orientada a
Aspectos. Basando en una breve resea histrica, la descripcin de algunos
lenguajes orientados a aspectos y las caractersticas destacables de la
implementacin y el diseo de las aplicaciones orientadas a aspectos.
Palabras claves: Programacin, aspecto, abstraccin, software.
ABSTRACT
Software engineering, and general computer science is a discipline that is
constantly evolving. Every day new techniques and methodologies that attempt to
improve the quality and efficiency of software products emerge. In recent times
there has emerged strongly a new way to break down systems: orientation
aspects. This research analyzes the features and functionality of Aspect-Oriented
Programming, through case studies for experimental development of an
application, displaying an overview, from its inception until its present state .The
"Aspect-Oriented Programming" (AOP) it is a recent proposal that provides a
greater degree of abstraction in software development, allowing to make crisp and
efficiently a clear "separation of concerns". This programming technique emerged
in the late 90 'and with significant growth in recent years, seeks to facilitate the
modularization of cross incumbencies those resulting from modularization with
traditional programming techniques. This paper shows the main features of AspectOriented Programming. Basing on a brief historical overview, the description of
some aspects oriented languages and salient features of the implementation and
application design oriented aspects.
Keywords: Programming, aspects, abstraction, software.
OBJETIVOS
General
Especficos
INTRODUCCIN
Dado que las tecnologas evolucionan, los paradigmas tambin lo hacen,
obteniendo mltiples tendencias para los desarrolladores (Stack Overflow 2016).
La programacin orientada a aspectos es un nuevo paradigma de programacin
llamado a sustituir a la programacin Orientada a Objetos (Irene Jimnez and
Oscar Combarros 2005), brinda un mayor grado de abstraccin en el desarrollo de
software, permitiendo realizar de manera clara y eficiente una separacin de
incumbencias. El objetivo de esta investigacin es analizar caractersticas y
funcionalidades de la programacin orientada a aspectos POA, a travs de
estudios de casos para un desarrollo experimental de una aplicacin.
Una de las mejores prcticas de la ingeniera del software, es seguir un
proceso de desarrollo maduro. En este sentido, el proceso de desarrollo ha
evolucionado buscando mejoras para garantizar la calidad del producto de
software resultante. Sin embargo, describir y garantizar un producto de software
de calidad, de acuerdo a la madurez del proceso, es una actividad an poco clara.
(Castillo, Losavio, and Matteo 2010)
A travs de estudios de casos de diferentes revisiones bibliogrficas
analizaremos este paradigma de programacin, observando sus principales
caracterizas e identificar los mecanismos que este nos brinda, obteniendo ventajas
y desventajas de aplicacion en diferentes entornos de desarrollo, para poder
implementar esta metodologa en una situacin adecuada, obteniendo un
resultado ptimo y eficaz
Tal y como se aprecia en trabajos previos de uno de los autores, esto es, en (Vidal
et al. 2014), en Aplicacin de Modelacin Orientada a Aspectos y en Extensin y
Aplicacin de AspectZ a la Administracin de un Sistema de Fichas de Salud
Electrnicas en Chile la autentificacin de usuario as como el registro de sus
acciones son ejemplos clsicos de incumbencias cruzadas las cuales se pueden
ser modularizar como aspectos. Es importante sealar que gracias a esta
modularizacin de incumbencias cruzadas de un sistema de software orientado a
objetos, entonces las clases y sus mtodos logran respetar el principio de nica
responsabilidad (Wampler 2007), esto es, las clases y sus mtodos tienen una
funcin y propsito claros y bien definidos, y existe una consecuencia y
consistencia en el comportamiento de los mtodos de clases, es decir, ninguno de
los mtodos de una clase presenta funcionalidades no propias con el propsito
central de la clase. En resumen, el principio de nica responsabilidad establece
que una clase debera tener una nica responsabilidad, y que esa responsabilidad
debe ser completamente encapsulada por la clase.
La Ingeniera de Software tradicional carece actualmente de mecanismos
adecuados para abstraer, y encapsular conceptos que no forman parte de la
funcionalidad bsica de los sistemas, tales como debugging, sincronizacin,
distribucin, seguridad, administracin de memoria, y otros. El resultado de esta
insuficiente abstraccin es una notable disminucin de la calidad del software final.
Una de las alternativas ms prometedoras para resolver este problema es la
Programacin Orientada a Aspectos (POA). Al aplicar la POA y realizar
reingeniera de una implementacin orientada a objetos introduciendo aspectos.
Se definen mtricas para evaluar las importantes ventajas de incorporar aspectos
a la programacin tradicional. Se las aplica a un caso de estudio, y se muestra que
los resultados obtenidos confirman la eficacia, y la utilidad de la POA. Se presenta
un caso de estudio que consiste en la adaptacin considerando aspectos del
protocolo para transferir archivos Trivial File Transfer Protocol (TFTP). (Asteasuain
et al. 2003)
AspectJ es un LOA de propsito general (Foundation 2013), que extiende Java
con una nueva clase de mdulos que implementan los aspectos. Los aspectos
cortan las clases, las interfaces y a otros aspectos.
En AspectJ, un aspecto es una clase, exactamente igual que las clases Java, pero
con una particularidad, que pueden contener unos constructores de corte, que no
existen en Java. Los cortes de AspectJ capturan colecciones de eventos en la
ejecucin de un programa. Estos eventos pueden ser invocaciones de mtodos,
invocaciones de constructores, y excepciones de seales y gestin. Los cortes no
definen acciones, sino que describen eventos. En forma similar a AspectC++ (The
Home of {AspectC++} 2015), en AspectJ se definen cortes (pointcuts), avisos y
puntos de enlace. (Team n.d.)
Las aplicaciones enterprise son aplicaciones que dan soporte a los procesos de
negocio de una organizacin. Como tales, se caracterizan por manejar grandes
volmenes de informacin persistente, la cual es accedida en forma concurrente
por varios usuarios mediante diversas interfaces de usuario. Estas aplicaciones
deben evolucionar de forma rpida ante los cambios del negocio, provocando el
menor impacto posible. Al analizar la utilizacin de la programacin orientada
aspectos en las aplicaciones enterprise, se proponen soluciones basadas en
aspectos para las problemticas caractersticas de dichas aplicaciones y
mostrando su uso mediante el desarrollo de una aplicacin de referencia. (Aires
and Aires 2008)
BIBLIOGRAFA
Aires, Universidad De Buenos, and Buenos Aires. 2008. Utilizacin de
Programacin Orientada a Aspectos En Aplicaciones Enterprise. (Est): 195
211.
Asteasuain, Fernando et al. 2003. Programaci on Orientada a Aspectos :
Metodolog Ia Y Evaluaci on on. : 116071.
Bodden, Eric. 2011. Closure Joinpoints: Block Joinpoints without Surprises
Categories and Subject Descriptors. Proceeding AOSD 11 Proceedings of
the tenth international conference on Aspect-oriented software development:
11728.
Castillo, Isi, Francisca Losavio, and Alfredo Matteo. 2010. La Orientaci??n a
Aspectos Y El Nuevo Est??ndar Square Para Requisitos de Software.
Revista de la Facultad de Ingenieria 25(4): 1725.
Foundation, The Eclipse. 2013.
http://www.eclipse.org/aspectj/.
The
AspectJ
Project.
2013(April
17).
Iglesias, Ing Adriana. Collecting Metrics for the Development of Aspect Oriented
Programming Recolectando Mtricas Para El Desarrollo de La Programacin
Orientada a Aspectos. 1: 3344.
Inostroza, Milton, ric Tanter, and Eric Bodden. 2011. Join Point Interfaces for
Modular Reasoning in Aspect-Oriented Programs. Proceedings of the 19th
ACM SIGSOFT Symposium and the 13th European Conference on
Foundations
of
Software
Engineering:
50811.
http://doi.acm.org/10.1145/2025113.2025205.
Irene Jimnez, and Oscar Combarros. 2005. Programacin Orientada a Aspectos
Con AspectJ Y AJDT. solo programadores (129): 1621.
Orihuela Sequeiros, Nancy, and Rubn Alcon Lpez. 2015. Usabilidad de La
Programacin Orientada a Aspectos . Revista Investigacin y Tecnologa 3:
90102.
Santos, Adriano, Pricles Alves, Eduardo Figueiredo, and Fabiano Ferrari. 2016.
Avoiding Code Pitfalls in Aspect-Oriented Programming. Science of
Computer
Programming
119:
3150.
http://www.sciencedirect.com/science/article/pii/S0167642315004141.
Singh, Munindar P. 2015. Norms as a Basis for Governing Sociotechnical
Systems. IJCAI International Joint Conference on Artificial Intelligence 2015
Janua(212): 420711.
Stack Overflow. 2016. Stack Overflow Developer Survey 2016 Results.
http://stackoverflow.com/research/developer-survey-2016#developer-profileprogrammers-engineers-and-developers.
Team,
the
AspectJ.
The
AspectJTM
Programming
http://www.eclipse.org/aspectj/doc/released/progguide/index.html.
Guide.