Detecting Modularity Flaws of Evolving Code: What the History Can Reveal? - Silva, Leandra Mara da; Dantas, Francisco; Honorato, Gustavo; Garcia, Alessandro; Lucena, Carlos (Anais do Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS); 2010: Anais do IV Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software, 2010)
Modularity flaws can hamper the reuse and maintainability of code or even indicating the architecture degradation of a system. Therefore, researchers have increasingly investigated new mechanisms to assist the detection of these anomalies. Strategies for detection these flaws usually ignore information about the software change history. However, recent studies report that these strategies have been considered counter-productive. This article proposes and evaluates the use of detection strategies consisting of metrics that consider historic properties of evolving source code. It also proposes tool support for history-sensitive detection of modularity flaws. The strategies are evaluated in terms of precision and recall to detect three classic modularity flaws over 16 versions of two systems. Several observations were made, including: (i) exploiting information about the code evolution can contribute to effective detection of modularity flaws; and (ii) in both systems, history-sensitive strategies presented results superior to conventional strategies.