학술논문

SMURF: A SVM-based Incremental Anti-pattern Detection Approach
Document Type
Conference
Source
2012 19th Working Conference on Reverse Engineering Reverse Engineering (WCRE), 2012 19th Working Conference on. :466-475 Oct, 2012
Subject
Computing and Processing
Support vector machines
Accuracy
Measurement
Training
Maintenance engineering
Kernel
Anti-pattern
program comprehension
program maintenance
empirical software engineering
Language
ISSN
1095-1350
2375-5369
Abstract
In current, typical software development projects, hundreds of developers work asynchronously in space and time and may introduce anti-patterns in their software systems because of time pressure, lack of understanding, communication, and -- or skills. Anti-patterns impede development and maintenance activities by making the source code more difficult to understand. Detecting anti-patterns incrementally and on subsets of a system could reduce costs, effort, and resources by allowing practitioners to identify and take into account occurrences of anti-patterns as they find them during their development and maintenance activities. Researchers have proposed approaches to detect occurrences of anti-patterns but these approaches have currently four limitations: (1) they require extensive knowledge of anti-patterns, (2) they have limited precision and recall, (3) they are not incremental, and (4) they cannot be applied on subsets of systems. To overcome these limitations, we introduce SMURF, a novel approach to detect anti-patterns, based on a machine learning technique -- support vector machines -- and taking into account practitioners' feedback. Indeed, through an empirical study involving three systems and four anti-patterns, we showed that the accuracy of SMURF is greater than that of DETEX and BDTEX when detecting anti-patterns occurrences. We also showed that SMURF can be applied in both intra-system and inter-system configurations. Finally, we reported that SMURF accuracy improves when using practitioners' feedback.