Identifying emerging smells in software designs based on predicting package dependencies
; Diaz Pace, Jorge Andres 
Otros responsables
Fecha
10/2022
Editorial
Pergamon-Elsevier Science Ltd
Revista
Engineering Applications Of Artificial Intelligence
Título del libro
Nombre del evento
Fecha del evento
Institución organizadora
ISSN
0952-1976
eISSN
ISBN
Idioma
Inglés
Tipo del evento
Clasificación temática
Palabras clave
Resumen
Software systems naturally evolve, and this evolution often brings design problems that contribute to system degradation. Architectural smells are typical symptoms of such problems, and several of these smells are related to undesired dependencies among packages. The early detection of smells is essential for software engineers to plan ahead for maintenance or refactoring efforts. Although tools for identifying smells exist, they detect the smells once they already exist in the source code when their undesired dependencies are already created. In this work, we explore a forward-looking approach for identifying smells that can emerge in the next system version based on inferring package dependencies that are likely to appear in the system. Our approach takes the current design structure of the system as a network, along with information from previous versions, and applies link prediction techniques from the field of social network analysis. In particular, we consider a group of smells known as instability smells (cyclic dependency, hub-like dependency, and unstable dependency), which fit well with the link prediction model. The approach includes a feedback mechanism to progressively reduce false positives in predictions. An evaluation based on six open-source projects showed that, under certain considerations, the proposed approach can satisfactorily predict missing dependencies and smell configurations thereof. The feedback mechanism led to improvements of up to three times the initial precision values. Furthermore, we have developed a tool for practitioners to apply the approach in their projects.
Colecciones
Aprobación
Revisión
Complementado por
Referenciado por
Licencia Creative Commons
Excepto donde se indique lo contrario, la licencia de este ítem se describe como by-nc-sa
