2.10. TRABAJOS RELACIONADOS
2.10.5. Recuperación de Arquitecturas y Evaluación de Arquitecturas
Vasconcelos y Werner [57], presentan un enfoque de recuperación y evaluación de arquitectura para la reutilización soportado por la herramienta ArchMine la cual permite extraer el conocimiento basado en la inspección de sistemas existentes. Dicho conocimiento es expresado en un modelo arquitectónico conceptual con información de trazabilidad hacia las funcionalidades implementadas, ayudando a generar artefactos reutilizables. Christoph et al. [58], definen un método llamado MAP (minería de arquitecturas para líneas de producto), tiene un enfoque que se basa en el mapeo de estilos arquitectónicos y atributos que se relacionan con la minería de la arquitectura, donde se combinan la reconstrucción de la arquitectura y el análisis de técnicas de líneas de productos. Si la vista arquitectónica después de haber realizado la evolución no es factible, se procede a hacer un análisis con ATAM. También se muestra un estudio de caso donde se hace el análisis usando el método MAP en varios sistemas en la industria automotriz, dando lugar a mejoras en la extracción donde se identifican elementos y relaciones que ayudan a mejorar el MAP.
R. R. Lutz and G. C. Gannod [59], describen las experiencias con la especificación de arquitectura y análisis arquitectónico por una herramienta asistida de alto rendimiento de la línea de productos de software. El enfoque utilizado, define una arquitectura de línea de productos bueno en términos de calidad de los atributos requeridos en fase de desarrollo en particular. El modelo arquitectónico se analiza respecto a varios criterios como métodos manuales y herramientas soportadas. El enfoque descrito ofrece un análisis estructurado de una arquitectura de referencia de una línea de productos utilizando la recuperación de la arquitectura y las especificaciones, la evaluación de la arquitectura, y la comprobación de modelo de comportamiento para determinar el nivel de robustez y tolerancia a fallos a nivel de arquitectura que son necesarios en todos los sistemas de la línea de productos. Los
32
resultados de una aplicación a una línea de productos de software de telescopios espaciales se utilizan para explicar el enfoque y describir las lecciones aprendidas.
Describen los tres principales pasos en el proceso de análisis arquitectónico donde se tomó como línea base un modelo ADL que se utilizó para evaluar la adecuación y el nivel de soporte proporcionado por la arquitectura utilizado, para especificar los diferentes requerimientos de los sistemas individuales en línea de productos, se analizaron diferentes métodos como SAAM y ATAM ya que el enfoque es centrado en los atributos de calidad que son específicos en las arquitecturas línea de productos, utilizando ACMEcon el apoyo de una herramienta de especificación de arquitectura, ACMEStudio, para la construcción y la manipulación gráfica de arquitecturas de software y el análisis automatizado fue principalmente para analizar los diferentes atributos de calidad, como la robustez y tolerancia a fallos, que fueron vistos como comunes en todos los miembros de la línea de productos [59].
A continuación la Tabla 5, sintetiza los principales factores comparativos considerados respecto a los trabajos relacionados con la recuperación de arquitecturas de software.
De los trabajos relacionados encontrados a través de artículos puede concluirse que existen muchos trabajos dedicados a la recuperación de arquitecturas de sistemas software, donde hay una visión clara entre usar o no a los interesados de recuperar la arquitectura de un sistema, también podemos concluir que estos pretenden producir resultados visuales para los usuarios, nuestro trabajo no solo pretende la inclusión de los interesados en la recuperación de una arquitectura, también queremos recuperar las decisiones arquitectónicas que se tuvieron en cuenta en la construcción de esta arquitectura para lo cual usamos mecanismos visuales para que las persona involucradas en el proceso puedan analizar e inferir en las decisiones arquitecturales que se tomaron que nunca fueron documentadas. Nuestra propuesta está enfocada en la creación de un método explícito y se presentan casos de aplicación con variados escenarios que permiten realizar la recuperación del rationale y la visualización con las herramientas de recuperación.
33
Tabla 5. Principales factores comparativos considerados respecto a los trabajos relacionados con la recuperación de arquitecturas de software
Nombre Tipo Propuesta Requiere
Interesa dos
Artefactos de Entrada
Artefactos de Salida
ArchDRH Herramienta Proponen un algoritmo en el cual se identifican los módulo de funciones, se identifican lo componentes compartidos y por último se identifican lo módulos conceptuales.
No Código Fuente Modelo Conceptual
Using fold-in and fold-out in the architecture recovery of software systems
Técnica En este trabajo el autor propone un enfoque el cual consiste en 2 fases, en la primera se realiza el cálculo de la disimilitud de cada una de las entidades del software y en la segunda fase e realiza el
agrupamiento de las entidades dependiendo del valor de disimilitud.
No Código Fuente Matriz de semejanza de entidades
Towards the unified recovery
architecture for reverse engineering
Proceso En este trabajo se define un proceso para ingeniería inversa, donde se realiza el análisis de los programas, e filtra y comprende la información y por último se realiza la visualización del programa.
Si Código Fuente Vistas Arquitectónicas
Towards Open Source Software System Architecture Recovery Using Design Metrics
Enfoque Los autores proponen una metodología para dividir la arquitectura de un software en 4 capas.
Si Código Fuente Descripción estática de la arquitectura Recovery of Software Architecture Using Partitioning Approach by Fiedler Vector and Clustering
Técnica En este trabajo se propone un método en el que se particiona la arquitectura en módulos y luego estos son agrupados usando medidas de similitud o disimilitud.
Si Código Fuente Grafico
Software Architecture Recovery Through Similarity-Based Graph Clustering
Técnica Proponen un método el cual permite agrupar los elementos del sistema dependiendo de la similitud de estos.
No Código Fuente Gráfico de Agrupamiento
ArchMine Herramienta En este trabajo se propone un enfoque para recuperar la arquitectura de un software mediante la comprensión de este y la detección de clases cohesivas.
34
Softwarenaut Herramienta En esta propuesta se realiza la recuperación de la arquitectura de un sistema mediante la extracción de los datos del sistema, la abstracción de la información y su visualización.
No Código Fuente Visualización de la
arquitectura de un sistema
iPlasma Herramienta Esta propuesta es un entorno para el análisis de la calidad de un sistema software, el cual permite obtener métricas de alto nivel y la detección de duplicación de código.
No Código Fuente Grafos y Tablas
Package Patterns for Visual
Architecture Recovery
Enfoque En este trabajo se propone una aproximación visual que sea interactiva para recuperar la estructura de paquetes de un sistema, este enfoque esta implementado en la herramienta Softwarenaut.
Si Código Fuente Visualización de un árbol de jerarquías de los paquetes de un sistema
Focus Enfoque Los autores proponen un enfoque ligero que permite la recuperación de fragmentos de la arquitectura de un sistema.
Si Código Fuente Diagrama de Arquitectura evolucionada
Moose\Agile Visualization
Plataforma\Enfo que
Esta plataforma permite el análisis de datos en general, estos datos pueden ser de procesos o de sistemas software, lo que permite la comprensión de grandes cantidades de datos.
No Código Fuente Grafos
Architecture Recovery and Evaluation Aiming at Program Understanding and Reuse
Enfoque Los autores presentan u enfoque de recuperación y evaluación de arquitecturas el cual es soportado por ArchMine.
Si Escenarios de casos de uso, código
Modelo
MAP Método En este trabajo proponen un método basado en el mapeo de estilos arquitectónicos y atributos que se relacionan con la minería de la arquitectura.
Si Conocimiento acerca de la línea de productos de la organización
Evaluación de las similitudes y variabilidades
EV-AR Método Basado en una guía para arquitecto de software que permite recuperar arquitecturas de sistemas por medio de un enfoque evaluativo y mecanismos de
recuperación visual donde permite que un arquitecto en forma práctica e intuitiva recupere el conocimiento arquitectónico de una aplicación ya implementada.
SI Artefactos, código fuente
Rationale y vistas arquitectónicas
35