El desarrollo de software está en constante cambio. Las oportunidades de Internet, los negocios electrónicos, los consumidores fuertes en computación, la disminución exponencial en el costo de cómputo y de las comunicaciones, y el entorno cada vez más dinámico para los sistemas grandes, son elementos que presionan a los desarrolladores hacia nuevas formas para crear y desarrollar sistemas. Esto promueve los procesos de desarrollo de software, la estructura de los sistemas, la programación, el aseguramiento de la calidad y el mantenimiento.
El software se refiere a la construcción de modelos computacionales que reflejan alguna parte de los elementos o del flujo de información del mundo real. Para todos los sistemas, incluyendo los más triviales, dominar su ingeniería requiere dividir el sistema en partes que puedan crearse y administrarse. La última década del siglo XX vio el surgimiento (y tal vez la dominancia) de la perspectiva orientada a objetos sobre la modularidad de los sistemas. La orientación a objetos se enfoca en la selección de objetos como unidades primarias de modularidad y su asociación con el comportamiento del sistema. Los objetos son típicamente elementos del dominio o del proceso computacional.
La orientación a objetos está alcanzando sus límites. Muchas cosas (asuntos) en relación a la creación del sistema de software no se aíslan correctamente, especialmente aquellas relacionadas al comportamiento. La construcción de diversos sistemas requiere manipular muchos asuntos simultáneamente. Algunos ejemplos de asuntos van desde las nociones no funcionales tales como seguridad, fiabilidad, y la capacidad de administración para precisar técnicas de implementación tales como control de concurrencia, atrapado de excepciones y recuperación de errores. Como las técnicas de programación convencional se centran en producir una secuencia directa de instrucciones, el programador debe recordar todos los asuntos a través del proceso de programación y explícitamente combinar las instrucciones de dichos asuntos con la funcionalidad primaria del sistema. Esto produce código enmarañado y dificulta el mantenimiento de los sistemas.
Las nuevas tecnologías que están emergiendo permiten enriquecer las especificaciones de los programas y permiten una mejor modularización de estas aplicaciones. Con estas nuevas tecnologías se observan metodologías de ingeniería de software novedosas, la más importante es el Desarrollo de Software Orientado a Aspectos (DSOA). Las tecnologías de programación (programación orientada a aspectos - POA) proveen mecanismos lingüísticos para separar asuntos junto con técnicas de implementación para entrelazar los asuntos separados en sistemas funcionales. Las tecnologías de la Ingeniería del Software Orientada a Aspectos (ISOA) están emergiendo para administrar el proceso de desarrollo de sistemas dentro de este nuevo paradigma.
Aspect-Oriented Software Development
Robert E. Filman, Tzilla Elrad, Siobhán Clarke y Mehmet Aksit
Addison-Wesley Professional. 2004.
No hay comentarios:
Publicar un comentario