🤖 AI Summary
This work addresses the high false-positive rates of traditional code smell detection tools, which often ignore development context and thus hinder effective refactoring. To overcome this limitation, the authors propose an event-driven detection approach that integrates contextual factors such as team composition, project phase, and geographical distribution. They introduce SmellDSL, a domain-specific language that unifies static code metrics with contextual rules, and implement a scalable architecture based on a service bus. The resulting system has been integrated into Eclipse and augmented with a mobile visualization interface, enabling precise identification of smell types, severity levels, and locations. This facilitates targeted refactoring by assigning appropriate developers, thereby significantly improving both detection accuracy and actionable insights for development teams.
📝 Abstract
Code smells signal violations of design principles that degrade the internal quality of evolving software systems. Although many tools detect such anomalies using static metrics, they often ignore the development context in which smells arise and are resolved. This limitation can lead to misleading warnings and weak support for refactoring decisions. To address this problem, we present SmellHunter, a context-aware tool that interprets scripts written in the SmellDSL domain-specific language to detect and contextualize code smells. SmellHunter integrates static code metrics with contextual information (such as team characteristics, project stage, and geographic metadata) to produce richer, more actionable analyses. The tool adopts an event-driven architecture in which a service bus orchestrates validation, interpretation, and persistence services through asynchronous events. This architecture enables scalable analysis while minimizing disruption to developers' workflows. SmellHunter is integrated into the Eclipse development environment via a dedicated plugin and provides aggregated insights via a mobile application, allowing developers to explore smell occurrences by type, severity, and location. By linking smell detection with contextual data and collaborative visualization, SmellHunter supports developers acting as smell hunters, helping teams identify recurring quality issues emerging from a particular location and assign refactoring tasks to developers with relevant expertise. We describe the architecture of SmellHunter, the interpretation process of SmellDSL scripts, and the integration of contextual data to support more informed refactoring decisions in modern software development environments.