6 de septiembre de 2009

PROGAMACION ORIENTADA A "ASPECTOS"

El concepto de programación orientada a aspectos fue introducido por Gregor
Kiczales y su grupo, aunque el equipo Demeter había estado utilizando ideas orientadas
a aspectos antes incluso de que se acuñara el término.

La programación orientada a aspectos (POA) es una nueva metodología de
programación que aspira a soportar la separación de competencias para los aspectos
antes mencionados. Es decir, que intenta separar los componentes y los aspectos unos
de otros, proporcionando mecanismos que hagan posible abstraerlos y componerlos para
formar todo el sistema.

POA es un desarrollo que sigue al paradigma de la orientación a objetos, y como
tal, soporta la descomposición orientada a objetos, además de la procedimental y la
descomposición funcional. Pero, a pesar de esto, POA no se puede considerar como una
extensión de la POO, ya que puede utilizarse con los diferentes estilos de programación

*Que es un aspecto?
Una de las primeras definiciones que aparecieron del concepto de aspecto fue
publicada en 1995, y se describía de la siguiente manera: Un aspecto es una unidad
que se define en términos de información parcial de otras unidades.

La definición de aspecto ha evolucionado a lo largo del tiempo, pero con la que
se trabaja actualmente es la siguiente: Un aspecto es una unidad modular que se
disemina por la estructura de otras unidades funcionales. Los aspectos existen tanto
en la etapa de diseño como en la de implementación.

Un aspecto de diseño es una unidad modular del diseño que se entremezcla en la estructura de otras partes del
diseño. Un aspecto de programa o de código es una unidad modular del programa que
aparece en otras unidades modulares del programa (G. Kiczales).

De manera más informal podemos decir que los aspectos son la unidad básica de
la POA, y pueden definirse como las partes de una aplicación que describen las
cuestiones claves relacionadas con la semántica esencial o el rendimiento. También
pueden verse como los elementos que se diseminan por todo el código y que son
difíciles de describir localmente con respecto a otros componentes.

Se puede diferenciar entre un componente y un aspecto viendo al primero como
aquella propiedad que se puede encapsular claramente en un procedimiento, mientras
que un aspecto no se puede encapsular en un procedimiento con los lenguajes
tradicionales


No hay comentarios:

Publicar un comentario