CARACTERÍSTICAS Y FUNCIONALIDADES DE LA PROGRAMACIÓN ORIENTADA A ASPECTOS
juanma9211 Biografía 1 de Diciembre de 2016
2.568 Palabras (11 Páginas) 328 Visitas
CARACTERÍSTICAS Y FUNCIONALIDADES DE LA PROGRAMACIÓN ORIENTADA A ASPECTOS
RESUMEN
La ingeniería del software, y en general, la informática es una disciplina que está en constante evolución. Cada día surgen nuevas técnicas y metodologías que intentan mejorar la calidad y la eficiencia de los productos software. En los últimos tiempos ha surgido con fuerza una nueva forma de descomponer los sistemas: la orientación a aspectos. Esta investigación analiza las características y funcionalidades de la programación orientada a aspectos, a través de estudios de casos para un desarrollo experimental de una aplicación, mostrando una visión general, desde sus comienzos, hasta llegar su estado actual .La “Programación Orientada a Aspectos” es una propuesta reciente que brinda un mayor grado de abstracción en el desarrollo de software, permitiendo realizar de manera nítida y eficiente una clara “separación de aspectos”. Esta técnica de programación surgida a fines de los 90' y con importante crecimiento en los últimos años, busca facilitar la modularización de aquellas incumbencias transversales que resultan de la modularización con las técnicas tradicionales de programación. El presente trabajo muestra las particularidades principales de la Programación Orientada a Aspectos. Basando en una breve reseña histórica, la descripción de algunos lenguajes orientados a aspectos y las características destacables de la implementación y el diseño de las aplicaciones orientadas a aspectos.
Palabras claves: Programación, aspecto, abstracción, software.
ABSTRACT
Software engineering, and general computer science is a discipline that is constantly evolving. Every day new techniques and methodologies that attempt to improve the quality and efficiency of software products emerge. In recent times there has emerged strongly a new way to break down systems: orientation aspects. This research analyzes the features and functionality of Aspect-Oriented Programming, through case studies for experimental development of an application, displaying an overview, from its inception until its present state .The "Aspect-Oriented Programming" (AOP) it is a recent proposal that provides a greater degree of abstraction in software development, allowing to make crisp and efficiently a clear "separation of concerns". This programming technique emerged in the late 90 'and with significant growth in recent years, seeks to facilitate the modularization of cross incumbencies those resulting from modularization with traditional programming techniques. This paper shows the main features of Aspect-Oriented Programming. Basing on a brief historical overview, the description of some aspects oriented languages and salient features of the implementation and application design oriented aspects.
Keywords: Programming, aspects, abstraction, software.
OBJETIVOS
- General
Analizar características y funcionalidades de la programación orientada a aspectos, a través de estudios de casos para un desarrollo experimental de una aplicación
- Específicos
Recitar la evolución de los paradigmas de programación, a través de libros, blogs y artículos publicados, identificado la razón origen
Estudiar los fundamentos de la Programación Orientada a Aspectos, a través literatura especializada para aprender sus características y funcionalidades
Identificar las herramientas y lenguajes a través de una revisión bibliográfica para el desarrollo de una aplicación orientada a aspectos.
Razonar el impacto de este nuevo paradigma de programación analizando una aplicación de POO y POA comparando reducción de código y cantidad de operaciones elementales.
INTRODUCCIÓN
Analizar características y funcionalidades de la programación orientada a aspectos, a través de estudios de casos para un desarrollo experimental de una aplicación, dado que las tecnologías evolucionan, los paradigmas también lo hacen, obteniendo múltiples tendencias para los desarrolladores (Stack Overflow 2016) objetivo general
Dado que programación Orientada a Aspectos es un nuevo paradigma de programación llamado a sustituir a la programación Orientada a Objetos (Irene Jiménez and Oscar Combarros 2005), brinda un mayor grado de abstracción en el desarrollo de software, permitiendo realizar de manera clara y eficiente una clara separación de incumbencias
Una de las mejores prácticas de la ingeniería del software, es seguir un proceso de desarrollo maduro. En este sentido, el proceso de desarrollo ha evolucionado buscando mejoras para garantizar la calidad del producto de software resultante. Sin embargo, describir y garantizar un producto de software de calidad, de acuerdo a la madurez del proceso, es una actividad aún poco clara. (Castillo, Losavio, and Matteo 2010) planteamiento prob
La metodología de programación orientada a aspectos (POA) permite encapsular o modularizar las denominadas “incumbencias cruzadas no modularizables” por metodologías de programación clásicas tales como programación orientada a objetos y programación estructurada. Las incumbencias cruzadas representan funcionalidades que se esparcen como parte de las funcionalidades de módulos, por ejemplo, en los métodos de las clases de un sistema, y su naturaleza funcional se mezcla con las funcionalidades propias del módulo. De esta forma, las incumbencias cruzadas representan elementos funcionales no modularizables por metodologías de desarrollo de software tradicionales (Vidal et al. 2014)
Al observar el comportamiento dinámico de un sistema. Es decir, monitorear su ejecución. Existen ciertos aspectos que hacen particularmente desafiante este enfoque, que surgen de la diferencia de abstracción entre los conceptos arquitectónicos y la ejecución de código. En este contexto, dado que el comportamiento dinámico arquitectónico puede entrecruzar o atravesar distintas partes del sistema, la utilización de mecanismos avanzados de modularización como los propuestos en la Programación Orientada a Aspectos comprende una alternativa atractiva para encarar el problema descrito. (Grai 2015) metodologia
La idea central de la POA es permitir que un programa sea construido describiendo cada concepto (o incumbencia) separadamente. El soporte para este nuevo paradigma se logra a través de una nueva clase de lenguajes, llamados lenguajes orientados a aspectos (LOA), los cuales brindan mecanismos para capturar y declarar aquellos elementos que se diseminan por todo el sistema (aspectos). (Campos, Maysundo, and Enriquez 2003) que se espera
FUNDAMENTACIÓN TEÓRICA Y METODOLÓGICA
Programación Orientada a Aspectos (AOP) es una técnica de maduración que requiere una buena comprensión de qué tipos de errores los programadores pueden hacer durante el desarrollo de aplicaciones. Por desgracia, la falta de este conocimiento parece representar una de las razones para la adopción prudente de AOP en proyectos de desarrollo de software reales. (Santos et al. 2016)
La necesidad de incorporar un conjunto de nuevas herramientas que muestren de manera clara y simple la inclusión de rutinas “especiales” que coadyuven a mejorar el producto software sin entremezclar código de las funcionalidades básicas y las funcionalidades especiales. En este nuevo enfoque se ve la necesidad de disponer de un conjunto de herramientas que hagan posible los resultados mencionados y se plantea la necesidad de disponer de Lenguajes de programación orientados a aspectos (LPOA) y lenguajes de descripción arquitectónica adecuados a este paradigma. Además se considera importante disponer de un conjunto de métricas que valoren la calidad de los productos obtenidos con este nuevo paradigma a fin de que los mismos cumplan con algunas de las condiciones impuestas por los estándares existentes. (Orihuela Sequeiros and Alcon López 2015)
es un estilo de programación cuyo principal objetivo es lograr una adecuada modularización de los conceptos involucrados en una aplicación, esto se traduce en lograr la separación entre los requerimientos funcionales de los no funcionales, para obtener un mejor entendimiento de los conceptos, eliminando la dispersión del código y haciendo que las implementaciones resulten más comprensibles, adaptables y reutilizable. A su vez proporciona un marco de trabajo que permite al programador separar claramente componentes y aspectos a través de mecanismos que hagan posible abstraerlos y componerlos para producir el sistema global. (Iglesias n.d.)
No sólo existen varios tipos de lenguajes de programación, sino que también se pueden encontrar distintas formas de programar una aplicación. Hay diversos paradigmas que permiten encontrar una solución más adecuada a los problemas. La idea es que el programador los conozca y sepa seleccionar el adecuado para cada situación particular.
Algunos ejemplos de paradigmas de programación:
- El paradigma imperativo es considerado el más común y está representado, por ejemplo, por el C o por BASIC.
- El paradigma funcional está representado por la familia de lenguajes LISP (en particular Scheme), ML o Haskell.
- El paradigma lógico, un ejemplo es PROLOG.
- El paradigma orientado a objetos. Un lenguaje completamente orientado a objetos es Smalltalk.
Los tres principales requerimientos de la POA son:
- Un lenguaje para definir la funcionalidad básica, conocido como lenguaje base o componente. Podría ser un lenguaje imperativo, o un lenguaje no imperativo (C++, Java, Lisp, ML).
...