kirancodes.me
To Proof Maintenance & Beyond!

Continuous detection of design flaws in evolving object-oriented programs using incremental multi-pattern matching

Sven Peldszus, Géza Kulcsár, Malte Lochau, Sandro Schulze

Abstract

Design flaws in object-oriented programs may seriously corrupt code quality thus increasing the risk for introducing subtle errors during software maintenance and evolution. Most recent approaches identify design flaws in an ad-hoc manner, either focusing on software metrics, locally restricted code smells, or on coarse-grained architectural anti-patterns. In this paper, we utilize an abstract program model capturing high-level object-oriented code entities, further augmented with qualitative and quantitative design-related information such as coupling/cohesion. Based on this model, we propose a comprehensive methodology for specifying object-oriented design flaws by means of compound rules integrating code metrics, code smells and anti-patterns in a modular way. This approach allows for efficient, automated design-flaw detection through incremental multi-pattern matching, by facilitating systematic information reuse among multiple detection rules as well as between subsequent detection runs on continuously evolving programs. Our tool implementation comprises well-known anti-patterns for Java programs. The results of our experimental evaluation show high detection precision, scalability to real-size programs, as well as a remarkable gain in efficiency due to information reuse.

BibTeX
@inproceedings{Peldszus-al:ASE16,
  author    = {Sven Peldszus and
               G{\'{e}}za Kulcs{\'{a}}r and
               Malte Lochau and
               Sandro Schulze},
  title     = {Continuous detection of design flaws in evolving object-oriented programs using incremental multi-pattern matching},
  booktitle = {ASE},
  pages     = {578--589},
  publisher = {{ACM}},
  year      = {2016},
}

Related papers