Detecting Modularity Flaws of Evolving Code: What the History Can Reveal?

  • Leandra Mara da Silva PUC-Rio
  • Francisco Dantas PUC-Rio
  • Gustavo Honorato PUC-Rio
  • Alessandro Garcia PUC-Rio
  • Carlos Lucena PUC-Rio

Resumo


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.
Palavras-chave: Software, DSL, Surgery, History, Measurement, Computer architecture, XML, modularity flaws, detection strategies, history-sensitive metrics, empirical software engineering
Publicado
27/09/2010
SILVA, Leandra Mara da; DANTAS, Francisco; HONORATO, Gustavo; GARCIA, Alessandro; LUCENA, Carlos. Detecting Modularity Flaws of Evolving Code: What the History Can Reveal?. In: SIMPÓSIO BRASILEIRO DE COMPONENTES, ARQUITETURAS E REUTILIZAÇÃO DE SOFTWARE (SBCARS), 4. , 2010, Salvador/BA. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2010 . p. 1-10.