Continuous detection of design flaws in evolving object-oriented programs using incremental multi-pattern matching
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},
}