Informacion

Páginas: 5 (1023 palabras) Publicado: 20 de abril de 2011
Los continuos avances en la ingeniería del software han ido incrementando la
capacidad de los desarrolladores de software para descomponer un sistema en módulos
independientes cada uno con una función bien definida, esto es, facilitar la separación
de intereses [1] (separation of concerns1, SOC)
Dentro de estos avances, quizás el más importante en estas dos últimas décadas
ha sido laaparición de la programación orientada a objetos (POO). El paradigma
orientado a objetos proporciona un potente mecanismo para separar intereses, sobre
todo aquellos relacionados con la lógica del negocio de la aplicación, pero presenta
dificultades a la hora de modelar otros intereses que no pueden ser encapsulados en una
única entidad o clase, ya que afectan a distintas partes del sistema.
En [2]encontramos el siguiente ejemplo de un sistema editor de figuras cuyo
diagrama de clases se muestra en la Figura 1.
(logging). Cuando se dan este tipo de situaciones en las que un interés afecta a distintas
partes de un sistema, se dice que el sistema ha sido “atravesado” (crosscutting) y a este
tipo de intereses se les denomina intereses o competencias transversales (crosscutting
concern).Las competencias transversales suelen estar relacionadas con la funcionalidad
secundaria del sistema y ser de carácter no funcional. Pueden ir desde cuestiones de alto
nivel como la seguridad o la calidad de los servicios ofrecidos, hasta cuestiones de más
bajo nivel como pueden ser la sincronización, persistencia de datos, gestión de
memoria, manejo de errores, logging, restricciones de tiempo,etc.
Las consecuencias directas de la existencia de competencias transversales son:
código disperso (scattered code): el código que satisface una competencia
transversal está esparcido por distintas partes del sistema. Podemos distinguir
dos tipos de código esparcido:
- bloques de código duplicados: cuando los mismos bloques de código
aparecen en distintas partes del sistema.
- bloques decódigo complementarios: cuando las distintas partes de una
incumbencia son implementadas por módulos diferentes.
código enredado (tangled code): una clase o módulo además de implementar su
funcionalidad principal debe ocuparse de otras competencias.
El código disperso y enredado es un código difícil de reutilizar, mantener y
evolucionar y de pobre trazabilidad. Estos efectos hacen quedisminuya la calidad del
software diseñado y se reduzca la productividad. De ahí la necesidad de nuevas técnicas
que nos ayuden a conseguir una separación de intereses clara, para así reducir la
complejidad del sistema a implementar y mejorar aspectos de calidad como la
adaptabilidad, extensibilidad, mantenibilidad y reutilización.
En los últimos años han ido surgiendo distintas técnicas oparadigmas que
intentan solucionar el problema de modularizar las competencias transversales como
por ejemplo la programación adaptativa, la programación subjetiva, la transformación
de programas, los filtros composicionales…, de las cuales la más popular y que con el
tiempo ha ganada muchos adeptos es la programación orientada a aspectos (POA).
La POA es un nuevo paradigma de programación quepermite capturar las
competencias que atraviesan el sistema (competencias transversales) en entidades bien
definidas llamadas aspectos, consiguiendo una clara separación de intereses,
eliminando así el código disperso y enredado y los efectos negativos que este supone.
La POA no sustituye al paradigma base con el que se desarrolla el sistema, sino que está
un nivel de abstracción por encima.Además, no es exclusiva de la POO, sino que se
Programación Orientada a Aspectos. Una experiencia práctica con AspectJ 11
puede aplicar a otros paradigmas, por ejemplo a la programación procedural y
funcional.
Teniendo en cuenta que los grandes avances producidos en la ingeniería del
software siempre han tenido lugar con la aparición de nuevas formas de descomposición
de los sistemas, es...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Informacion
  • Informacion
  • Informacion
  • Informacion
  • Informacion
  • Informacion
  • Informacion
  • Informacion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS