1. Puntos de Vista de la Programación Orientada a
Aspectos (Gregor Kiczales, Nicolás Kicillof,
Karl Lieberherr)
Prof. Andrés Mauricio Martínez Hincapié. Universidad Cooperativa de Colombia
estructuras de clases como bloques
Abstract— The constructions provided by the
languages of programming, which were created to
constructores de cortes. Cristina Lopes
help the models generated by the existing technologies
propuso la sincronización y la invocación
of design, reproduce the hierarchies. The concept of
remota como nuevos bloques.
programming orientated to aspects was introduced by
Gregor Kiczales and his group, though the equipment
Demeter had been using ideas orientated to aspects
No fue hasta 1995 cuando se publicó la
before even of that the end was coined. I weigh at
primera definición temprana del concepto
present many developments are had to support like
platform all the characteristics of the programming
de aspecto, realizada también por el grupo
orientated to.
Demeter, a la que se hace referencia en el
apartado siguiente. quot;Gracias a la
quot;Mi investigación se dirige en permitir a
colaboración de Cristina Lopes y Karl J.
programadores escribir los programas
Lieberherr con Gregor Kiczales y su
que, tanto cuanto sea posible, parecen su
grupo se introdujo el término de
diseño. Creo que los programas que
programación orientada a aspectosquot;.
expresan claramente la estructura del
diseño que ponen en ejecución son más
Entre los objetivos que se ha propuesto la
fáciles de mantener, porque las preguntas
programación orientada a aspectos están
sobre una qué parte del programa hace,
principalmente el de separar conceptos y el
porqué hace el, y qué otras partes del
de minimizar las dependencias entre ellos.
programa dependen de ese
Con el primer objetivo se consigue que
comportamiento llegan a ser más fáciles
cada cosa esté en su sitio, es decir, que
contestarquot;. Gregor Kiczales
cada decisión se tome en un lugar
concreto, con el segundo se tiene una
El concepto de programación orientada a
pérdida del acoplamiento entre los
aspectos fue introducido por Gregor
distintos elementos.
Kiczales y su grupo, aunque el equipo
Demeter había estado utilizando ideas
El principio de separación de
orientadas a aspectos antes incluso de que
incumbencias fue identificado en la década
se acuñara el término.
de 1970(1), plantea que un problema dado
involucra varias incumbencias que deben
El trabajo del grupo Demeter estaba
ser identificadas y separadas. Las
centrado en la programación adaptativa,
incumbencias son los diferentes temas o
que no es más que una instancia temprana
asuntos de los que es necesario ocuparse
de la programación orientada a
para resolver el problema. Una de ellas es
aspectos. La programación adaptativa se
la función específica que debe realizar una
introdujo alrededor de 1991. Aquí los
aplicación, pero también surgen otras
programas se dividían en varios bloques de
como por ejemplo distribución,
cortes. Inicialmente, se separaban la
persistencia, replicación, sincronización,
representación de los objetos del sistema
etc. Separando las incumbencias, se
de cortes. Luego se añadieron
disminuye la complejidad a la hora de
comportamientos de estructuras y
2. tratarlas y se puede cumplir con aspecto en un ajuste industrial.
requerimientos relacionados con la calidad
como adaptabilidad, mantenibilidad, Peso en la actualidad se tienen muchos
extensibilidad y reusabilidad. desarrollos para soportar a manera de
plataforma todas las características de la
Las construcciones provistas por los programación orientada a aspectos, entre
lenguajes de programación, que fueron las que se tiene por ejemplo a AspectJ que
creados para implementar los modelos cuenta con extensiones al lenguaje para
generados por las técnicas de diseño tratar las nuevas características de Java 5
existentes, reproducen las jerarquías y, por que se derivan de un sistema simple de los
lo tanto, comparten el defecto explicado en principios para ensamblan emparejar del
el párrafo anterior. En el paradigma de punto.
programación imperativa, la
descomposición consiste en identificar Los conceptos y tecnologías reunidos bajo
procedimientos que resuelvan parte del el nombre quot;programación orientada a
problema, y la jerarquía se da en el árbol aspectosquot; (AOP, por las siglas de Aspect-
de ejecución, según el cual los Oriented Programming; o AOSD, por
procedimientos se invocan unos a otros. Aspect-Oriented Software Development)
En el caso de la programación orientada a buscan resolver un problema identificado
objetos, la jerarquía generada en la etapa hace tiempo en el desarrollo de software.
de diseño suele plasmarse en las relaciones Se trata del problema de la separación de
de herencia o de composición entre asuntos (separation of concerns). AOP no
objetos. Por ejemplo, algunos patrones de es el único intento por solucionar este
diseño de uso habitual como observador problema, del que voy a hablar a
(observer), visitante (visitor) y mediador continuación: hay varias propuestas,
(mediator)(2) exhiben estos problemas, ya muchas de las cuales se agrupan (junto con
que para aplicarlos es necesario adaptar a AOP) en el campo de estudio denominado
ellos más de una clase. ASoC (Advanced Separation of Concerns).
Entre los objetivos que se ha propuesto la
POA están, principalmente, el de separar
AUTORES REFERENCIADOS
conceptos y (2) el de minimizar las
dependencias entre ellos. Con el primer
Nicolás Kicillof Profesor Adjunto del
objetivo se persigue que cada decisión se
Departamento de Computación de la
tome en un lugar concreto y no diseminada
Facultad de Ciencias Exactas y Naturales,
por la aplicación. Con el segundo, se
Universidad de Buenos Aires.
pretende desacoplar los distintos
elementos que intervienen en un programa.
Gregor Kiczales Profesor, El software
practica el laboratorio, Departamento de la
Las técnicas y las herramientas de AOSD,
informática, Universidad de Colombia
aplicadas en todas las etapas del ciclo de
británico
vida del software, están cambiando la
201-2366 alameda principal, Vancouver,
manera que el software se desarrolla en
B.C., Canadá V6T 1Z4
una amplia gama de los dominios del uso,
extendiéndose de la empresa quot;ÉLquot; a los
Karl Lieberherr (http://www.aosd.net/)
sistemas encajados. AOSD 2007 recibirá
Demeter/sabores, Demeter/C++, DemeterJ,
una pista emocionante de la industria que
DJ y XAspects.
reúna a los expertos, a los reveladores y a
encargados de la industria que están
practicando activamente tecnología del