Please enable JavaScript.
Coggle requires JavaScript to display documents.
Programación Orientada a Aspecto (Lenguajes orientados a Aspectos (COOL,…
Programación Orientada a Aspecto
Historia
El concepto de programación orientada a aspectos fue introducido por Gregor Kiczales y su grupo.
No fue hasta 1995 cuando se publicó la primera definición temprana del concepto de aspecto.
¿Qué es un aspecto?
Es una unidad que se define en términos de información parcial de otras unidades.
Implementación de aspecto
“Entretejido”, ya que puede pensarse que aspectos y componentes deben “entretejerse” para formar finalmente un código ejecutable.
Es necesario definir o declarar ciertos “puntos de enlace”.
Los puntos de enlace son una clase especial de interfaz entre los aspectos y los módulos del lenguaje de componentes.
Ventajas
Un código menos enmarañado, más natural y más reducido.
Una mayor facilidad para razonar sobre las materias, ya que están separadas y tienen una dependencia mínima.
Más facilidad para depurar y hacer modificaciones en el código.
Se consigue que un conjunto grande de modificaciones en la definición de una materia tenga un impacto mínimo en las otras.
Se tiene un código más reusable y que se puede acoplar y desacoplar cuando sea necesario.
Desventajas
El diseño de los puntos de enlace entre los aspectos es más complejo.
Se debe tener en cuenta el análisis de nuevas características dentro del desarrollo de sistemas.
Surgen nuevos problemas de choque entre el lenguaje base y el lenguaje funcional.
Pueden existir problemas de herencia de un aspecto a otro.
Objetivo
Están principalmente el de separar conceptos y el de minimizar las dependencias entre ellos.
Cada decisión se tome en un lugar concreto, con el segundo se tiene una pérdida del acoplamiento entre los distintos elementos
Diseño y desarrollo de aplicaciones
Descomposición de aspectos y componentes
Descomponer los requerimientos para distinguir aquellos que son componentes de los que son aspectos.
Implementación de las incumbencias
Implementar cada incumbencia por separado (aspectos y componentes)
Recomposición
Definir las reglas que permitan combinar los aspectos con los componentes.
Lenguajes orientados a Aspectos
COOL
RIDL
MALAJ
AspectC
AspectC++
AspectJ