Un enfoque para evaluar y diseñar nuevas técnicas de refactoring de aplicaciones SOA - Hamer, Brian (2019)
Durante los últimos años, en las empresas de la industria de software se ha convertido en tendencia el desarrollo de sistemas siguiendo el paradigma de la Computación Orientada a Servicios, que a su vez se construyen sobre la base de las Arquitecturas Orientadas a Servicios. Dadas las características y desafíos que plantean los sistemas actuales, se ha tornado imprescindible adoptar este tipo de soluciones que proveen un gran funcionamiento en ambientes distribuidos y heterogéneos. A su vez, la flexibilidad y gran capacidad de adaptación que otorgan este tipo de aplicaciones de software genera que se sometan a procesos de modificaciones y constante crecimiento. Una de las consecuencias lógicas de esto es que los desarrolladores o arquitectos puedan fácilmente incurrir en errores como duplicación de código o código innecesario, generando un impacto negativo en atributos de calidad como el rendimiento y la mantenibilidad. La refactorización es considerada una técnica que mejora ampliamente la calidad del software y que, en particular, provee una solución al problema que se planea. En este contexto, existen ciertos enfoques que proponen la utilización de técnicas de clustering para agrupar operaciones de servicios similares, lo que permite asistir a los desarrolladores en detectar oportunidades de refactoring. En particular, el enfoque del presente trabajo se basa en un proceso de comparación entre agrupamientos manuales y agrupamientos automáticos que permite analizar, evaluar y validar nuevas técnicas no supervisadas de agrupamiento basadas en heurísticas y algoritmos de IA. El objetivo es abordado en dos grandes etapas: la primera, elegir a través de un análisis comparativo utilizando las métricas V-Measure y sus sub-métricas homogeneity y completeness la refactorización manual que presenta un mejor agrupamiento; la segunda, perfeccionar las técnicas de clustering presentes en la herramienta VizSOC mediante un proceso comparativo análogo al de la primera etapa y utilizando la refactorización manual obtenida en ella. Finalmente, cabe destacar que se obtuvieron resultados muy positivos tanto en lo relacionado con las modificaciones de las técnicas, como también al enfoque que propone este trabajo. Desde el punto de vista del enfoque presentado, los cambios realizados a las técnicas automáticas lograron generar conjuntos de clusters que se asemejan más a las los clusters manuales. Estos resultados permiten considerar a estas modificaciones como mejoras que se podrán incorporar en la herramienta.