Abstract (Resumen)

(in Spanish)

Las arquitecturas de software son modelos de sistemas que, al poseer un alto nivel de abstracción, permiten manejar correctamente la distancia entre requerimientos e implementación. La adopción cada vez mayor del desarrollo centrado en la arquitectura se debe a que éstas exponen las principales decisiones de diseño y sus consecuencias en una etapa temprana del desarrollo de software, y al hacerlo permiten un mejor entendimiento tanto del sistema como de sus requerimientos por parte de todas las personas involucradas. Por estas razones, un buen diseño arquitectónico tiene un impacto positivo en la calidad final de los productos.

Normalmente, los desarrolladores toman la descripción arquitectónica del sistema y progresivamente la refinan hasta derivar una implementación concreta. Durante esta actividad, también especifican las relaciones entre el modelo arquitectónico como fue documentado y el modelo arquitectónico como fue implementado, para asegurar cierto grado de consistencia entre los modelos. Desafortunadamente, debido a la evolución natural del sistema, es probable que la arquitectura e implementación pierdan consistencia. Una vez que el diseño arquitectónico está listo, comúnmente todos los esfuerzos se enfocan en la implementación, y ésto desactualiza progresivamente la documentación de diseño. Este fenómeno es conocido como corrimiento arquitectura implementación o erosión arquitectónica, y si no es manejado apropiadamente, puede perjudicar los beneficios del desarrollo centrado en la arquitectura.

Actualmente, el problema ha sido tratado por medio de algunos enfoques basados en ingeniería reversa, con resultados dispares. La falta de una herramienta de soporte más adecuada para relacionar especificaciones arquitectónicas con código sigue siendo un problema para muchos proyectos de software.

En este trabajo, proponemos un enfoque materializado en una herramienta de soporte llamada ArchSync, para asistir a los desarrolladores a conciliar la documentación arquitectónica con su implementación a medida que la segunda cambia con el tiempo. En particular, asumimos que existe alguna documentación arquitectónica previa a la codificación del sistema. Los modelos arquitectónicos son representados con use case maps (UCMs), una notación práctica para especificar tanto componentes como flujos de responsabilidades. Estas responsabilidades son materializadas por clases y métodos en el código. Cuando algo cambia en el código y viola lo que fue prescripto por la arquitectura, ArchSync es capaz de trazar esos cambios hacia la especificación arquitectónica original. Para hacerlo, debemos instrumentar el código de la aplicación y registrar información acerca de su ejecución. Para su análisis, ArchSync compara estos registros con la especificación arquitectónica, usando un conjunto de “filtros de reconstrucción”, y luego detecta qué UCMs no son consistentes con el código. Además, ArchSync puede proveer una lista de posibles reparaciones para los UCMs, que el desarrollador puede ejecutar para actualizar la arquitectura si es necesario.

Discussion

  • Please feel free to discuss this article directly on this page. Constructive comments are welcomed! Please sign your TWiki name.
  • See also: VirLibAsse06

-- DanielAmyot - 13 Feb 2007

FormForVirtualLibrary edit

Title ArchSync: Asistencia en la Sincronización de Documentación de Diseño con Implementación
Authors Martín Blech y Juan Pablo Carlino
Type Thesis
Conference/Journal Title B.Sc. Degree Report
Volume/Number
Editors
Publisher Universidad Nacional del Centro de la Provincia de Buenos Aires, Tandil, Argentina
Month October
Year 2006
Pages 102
Keywords Architecture, ArchSync, Documentation, Eclipse, Reverse Engineering, Synchronization, Use Case Maps
Topic attachments
I Attachment Action Size Date Who Comment
BlechDegreeReport06.pdfpdf BlechDegreeReport06.pdf manage 2 MB 13 Feb 2007 - 10:00 DanielAmyot Undergraduate Degree Report
Topic revision: r1 - 13 Feb 2007, DanielAmyot
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback