Abstract

Pitfalls in software development process can be prevented by learning from other people's mistakes. Software practitioners and researchers document lessons learned and the knowledge about best practices is spread over literature. Presence of code smells does not indicate that software won’t work, but it will reveal deeper problems and rising risk of failure in future. Software metrics are applied to detect code smells whereas refactoring can remove code smells, improve code quality and make it simpler and cleaner. Detection tools facilitate management of code smells. Knowledge about code smells and related concepts can assist the software maintenance process. Exploratory analysis of code smells carried out in this paper, covers collecting data about code smells, identifying related concepts, categorizing and organizing this knowledge into a code smell repository, which can be made available to software developers. A detailed literature survey is carried out to identify code smells and related concepts. An initial list of 22 code smells proposed in 1999 has grown over the years into 65 code smells. The relationship between code smells, software metrics, refactoring methods and detection tools available in literature is also documented. Templates are designed that capture knowledge about code smells and related concepts. A code smell repository is designed and implemented to maintain all the information gathered about code smells and related concepts and is made available to software practitioners. All the knowledge about code smells found in literature is collected, organized and made accessible.

Highlights

  • Software quality goes to ruin over time because of various reasons such as software ageing, improper design, unsuitable requirement analysis and inappropriate coding practices

  • An initial list of code smells was proposed by them which was indicative of something incorrect in the system code. They introduced a list of 22 code smells without categorizing them and claimed that there is not a set of precise metrics which can be specified to recognise the need of refactoring

  • Code smells are some symptoms in the source code that probably indicates a deeper problem in software system

Read more

Summary

INTRODUCTION

Software quality goes to ruin over time because of various reasons such as software ageing, improper design, unsuitable requirement analysis and inappropriate coding practices. Bad smell occurrence has a drastic influence on the quality of code. It makes system more complex, less comprehensible and causes maintainability problems [2, 3]. Bad smells don’t currently inhibit the functioning of code. They detect clear signs in design which may lead to slowing down development or growing the probability of bugs or software rot because of long term decays. Code smell detection can be effectively carried out by using appropriate software metrics [9].

AND RELATED WORKS
EXPLORATORY ANALYSIS OF CODE SMELLS
Collection of Data about Code Smells
Feature Envy
48 Incomplete Class Library
Identifying Related Concepts
Detection Tools
28 Dispersed Coupling
Software Metrics
Refactoring Actions
Categorization of Code Smells and Related Concepts
Categorization of Code Smells
Couplers
Categorization of Tools
Checkstyle
Categorization of Software Metric
Categorization of Refactoring Actions
Composing methods
ORGANIZING THE CODE SMELL KNOWLEDGE
Designing Code Smell Template
Designing Code Smell Database Schema
Making the Knowledge Accessible on Cloud Platform
CONCLUSION
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call