Publication | Closed Access
DECOR: A Method for the Specification and Detection of Code and Design Smells
775
Citations
45
References
2009
Year
Software MaintenanceEngineeringVerificationSoftware EngineeringSource Code AnalysisDetection AlgorithmsSoftware AnalysisSpaghetti CodeFormal VerificationSocial SciencesDesign SmellsStatic CheckingDesignComputer EngineeringProgramming StyleComputer ScienceStatic Program AnalysisSoftware DesignCode RefactoringArchitectural DesignProgram AnalysisSoftware TestingFormal MethodsSymbolic ExecutionSystem Software
Code and design smells are poor solutions to recurring implementation and design problems that hinder system evolution by making changes difficult for software engineers. The study proposes DECOR, a method for specifying and detecting code and design smells, DETEX, a technique that implements this method, and an empirical validation of DETEX’s precision and recall. DETEX specifies four design antipatterns and their 15 underlying code smells, automatically generating detection algorithms for each. DETEX enables high‑level specification of smells with a consistent vocabulary, and its generated detection algorithms achieve measurable precision and recall on XERCES v2.7.0 and 11 other open‑source systems.
Code and design smells are poor solutions to recurring implementation and design problems. They may hinder the evolution of a system by making it hard for software engineers to carry out changes. We propose three contributions to the research field related to code and design smells: (1) DECOR, a method that embodies and defines all the steps necessary for the specification and detection of code and design smells, (2) DETEX, a detection technique that instantiates this method, and (3) an empirical validation in terms of precision and recall of DETEX. The originality of DETEX stems from the ability for software engineers to specify smells at a high level of abstraction using a consistent vocabulary and domain-specific language for automatically generating detection algorithms. Using DETEX, we specify four well-known design smells: the antipatterns Blob, Functional Decomposition, Spaghetti Code, and Swiss Army Knife, and their 15 underlying code smells, and we automatically generate their detection algorithms. We apply and validate the detection algorithms in terms of precision and recall on XERCES v2.7.0, and discuss the precision of these algorithms on 11 open-source systems.
| Year | Citations | |
|---|---|---|
Page 1
Page 1