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.
| Originalsprog | Engelsk |
|---|---|
| Titel | Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering - ASE 2016 |
| Forlag | Association for Computing Machinery |
| Publikationsdato | 2016 |
| Sider | 578-589 |
| ISBN (Trykt) | 9781450338455 |
| DOI | |
| Status | Udgivet - 2016 |
| Udgivet eksternt | Ja |
| Begivenhed | International Conference on Automated Software Engineering - , Singapore Varighed: 3 sep. 2016 → 7 sep. 2016 Konferencens nummer: 31 https://www.proceedings.com/content/031/031859webtoc.pdf |
Konference
| Konference | International Conference on Automated Software Engineering |
|---|---|
| Nummer | 31 |
| Land/Område | Singapore |
| Periode | 03/09/2016 → 07/09/2016 |
| Internetadresse |