Skip to main navigation Skip to search Skip to main content

Dynamic and Automatic Feedback-Based Threshold Adaptation for Code Smell Detection

  • School of Computer Science and Technology
  • Beijing Institute of Technology

Research output: Contribution to journal › Article › peer-review

Abstract

Most code smell detection tools expose thresholds to engineers for customization because code smell detection is essentially subjective and application specific. Another reason why engineers should customize these thresholds is that they have different working schedules and different requirements on software quality. They have their own unique need on precision and recall in smell detection. This unique need should be fulfilled by adjusting thresholds of smell detection tools. However, it is difficult for software engineers, especially inexperienced ones, to adjust often contradicting and related thresholds manually. One of the possible reasons is that engineers do not know the exact quantitative relation between threshold values and performance, e.g., precision. In this paper, we propose an approach to adapting thresholds automatically and dynamically. Engineers set a target precision manually according to their working schedules and quality requirements. With feedback from engineers, the proposed approach then automatically searches for a threshold setting to maximize recall while having precision close to the target precision. The proposed approach has been evaluated on open-source applications. Evaluation results suggest that the proposed approach is effective.

Original languageEnglish
Article number7337457
Pages (from-to)544-558
Number of pages15
JournalIEEE Transactions on Software Engineering
Volume42
Issue number6
DOIs
Publication statusPublished - 1 Jun 2016

Keywords

  • Code Smells
  • Feedback Control
  • Smell Identification
  • Software Refactoring

Fingerprint

Dive into the research topics of 'Dynamic and Automatic Feedback-Based Threshold Adaptation for Code Smell Detection'. Together they form a unique fingerprint.

Cite this