Las pocas y diferentes referencias en español presentan diversas traducciones sobre los conceptos de aspectos. Algunos son cercanos a la idea en inglés, pero otros son totalmente equivocados. A continuación se presenta una lista de los términos más comunes junto con una breve explicación de la traducción.
Aspect – Aspecto. No tiene problema de traducción. Es una unidad de descomposición no funcional.
Join Point – Punto de Unión. Algunas referencias lo traducen como punto de enlace. Si bien la idea parece clara, podría prestarse a confusiones. El término enlace frecuentemente equivale a unión o conexión de algo con otra cosa, pero un aspecto no es simplemente una conexión. Por el lado del término unión, se encuentra que el término hace referencia más bien a la conformidad de una cosa con otra, e incluso, involucra la parte de composición. Dado que un aspecto forma parte de un esquema de modularidad y de composición desde el punto de vista arquitectónico, la traducción Punto de Unión es más acorde al significado de la definición: es un evento (punto) identificable en la ejecución de un programa, sobre el cuál un aspecto podrá coordinarse con un componente.
Pointcut – Corte en Puntos o simplemente Corte. Este es un término que más problema presenta para su traducción. El término hace referencia a un conjunto de puntos de unión, donde un aspecto aplicará su comportamiento. Se reporta frecuentemente la traducción punto de corte, la cual es incorrecta, debido esencialmente a que en realidad es un conjunto de lugares específicos en el código y además, por reglas gramaticales del inglés, cut aplica sobre point.
Advice – Aviso. Generalmente se traduce como consejo, no obstante, mientras consejo hace referencia a un dictamen, aviso está relacionado a una noticia o advertencia aunque de alguna forma se asocia a consejo. En el contexto de aspectos, advice es un mecanismo que se activa tras la identificación de un punto de unión; la activación en este contexto es el resultado de una notificación.
Crosscutting – Corte. Inicialmente esta palabra se escribió como cross-cut e incluso como cut across. Esencialmente se enfatizó ampliamente que un aspecto corta la funcionalidad básica del sistema atravesando potencialmente varios objetos, e incluso a otros aspectos. De esto se desprende que el corte es transversal, por lo que la traducción concreta es corte transversal, indicando que un aspecto interfiere con la funcionalidad básica del sistema. No obstante se prefiere simplemente escribirlo como corte. Mientras que corte (pointcut) como colección de puntos de unión es una cuestión técnica de lenguajes de programación, corte (crosscutting) como interferencia es una cuestión de modelación y descomposición no funcional.
Concern – Asunto, en algunos casos, Interés. Este es otro término que ha presentado problemas de traducción. En las primeras traducciones se encuentran palabras como incumbencias y preocupaciones, y ésta última se sigue utilizando erróneamente en muchos lugares y no es correcto expresar definiciones como “preocupaciones o incumbencias del software”. Para el caso de la palabra interés, es un término mucho más adecuado, no obstante al expresar qué es un interés, se suele definir en los mismos términos de interés, es decir, un interés es el interés de una persona en el software, generando en ocasiones una falta de precisión en el término. La palabra asunto describe la materia de que se trata, mientras interés describe el valor de algo. Si bien los dos términos son acordes a la traducción, es preferible utilizar asunto. Así, un asunto es el interés que tiene cada uno de los involucrados en el sistema (stakeholders) para su realización.
Ulises Juárez Martínez, PhD
Instituto Tecnológico de Orizaba
AspectosMX
Desarrollo de software orientado a aspectos - México
Pre-análisis, análisis, diseño, programación, lenguajes, herramientas, teoría y más.
viernes, 25 de mayo de 2012
lunes, 20 de diciembre de 2010
Introducción
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.
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.
Inception
Este espacio se abre para todos aquellos interesados en el desarrollo de software orientado a aspectos (AOSD por sus siglas en inglés). Todos los contenidos se apegan a conceptos formales, citando a los autores más prestigiados del área, discutiendo en forma constructiva cada caso planteado. Se invita a todos los lectores a hacer preguntas, exponer sus dudas y desde luego a la retroalimentación y al debate.
El sitio oficial de AOSD es: http://www.aosd.net/
De parte de todos los fundadores y participantes, que este espacio sea una guía y base para principiantes y expertos.
Ulises Juárez Martínez, PhD
Instituto Tecnológico de Orizaba
El sitio oficial de AOSD es: http://www.aosd.net/
De parte de todos los fundadores y participantes, que este espacio sea una guía y base para principiantes y expertos.
Ulises Juárez Martínez, PhD
Instituto Tecnológico de Orizaba
Suscribirse a:
Comentarios (Atom)