Evolution of code smells over multiple versions of softwares: An empirical investigation
Anshul Rani, Jitender Kumar Chhabra
Abstract
Anshul Rani, Jitender Kumar Chhabra
Abstract
The symptoms which reflect the poor design quality of code are known as code smells. Refactoring is one of the possible ways to remove code smells, but refactoring does not come for free to developer. So there is a need to have efficient refactoring strategies. For this purpose an empirical study on distribution of different code smells over different versions of projects is provided in this paper, so that refactoring strategies can be built keeping in a view that which smell is more effective and at which time during evolution of software. For experiment, different versions of Junit, GCviewer and Gitblit have been taken. To detect the smells and violations in code JDeodorant and PMD tools are used. Study shows that a) Latest version of software has more design issues than that of oldest ones; b) God smell and urgent violations have more contribution than other smells whereas instances having Type Checking smell are very less in all the versions. Study shows that initial version of project can be used as reference architecture for purpose of reverse Engineering. We also found that Gitblit has better code design than that of other two softwares.
OpenAlex reports 16 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
The symptoms which reflect the poor design quality of code are known as code smells. Refactoring is one of the possible ways to remove code smells, but refactoring does not come for free to developer. So there is a need to have efficient refactoring strategies. For this purpose an empirical study on distribution of different code smells over different versions of projects is provided in this paper, so that refactoring strategies can be built keeping in a view that which smell is more effective and at which time during evolution of software. For experiment, different versions of Junit, GCviewer and Gitblit have been taken. To detect the smells and violations in code JDeodorant and PMD tools are used. Study shows that a) Latest version of software has more design issues than that of oldest ones; b) God smell and urgent violations have more contribution than other smells whereas instances having Type Checking smell are very less in all the versions. Study shows that initial version of project can be used as reference architecture for purpose of reverse Engineering. We also found that Gitblit has better code design than that of other two softwares.
Key concepts: Code smell, Code refactoring, Computer science, Code (set theory), Software engineering, Programming language, Static program analysis, Software