A Systematic Literature Review on Empirical Analysis of the Relationship Between Code Smells and Software Quality Attrib

  • PDF / 2,679,189 Bytes
  • 30 Pages / 595.276 x 790.866 pts Page_size
  • 57 Downloads / 213 Views

DOWNLOAD

REPORT


ORIGINAL PAPER

A Systematic Literature Review on Empirical Analysis of the Relationship Between Code Smells and Software Quality Attributes Amandeep Kaur1 Received: 27 January 2019 / Accepted: 25 June 2019 © CIMNE, Barcelona, Spain 2019

Abstract Code smells indicate problems in design or code which makes software hard to change and maintain. It has become a sign of software systems that cause complications in maintaining software quality. The detection of harmful code smells which deteriorate the software quality has resulted in a favourable shift in interest among researchers. Therefore, a significant research towards analysing the impact of code smells on software quality has been conducted over the last few years. This study aims at reporting a systematic literature review of such existing empirical studies investigate the impact of code smells on software quality attributes. The results indicate that the impact of code smells on software quality is not uniform as different code smells have the opposite effect on different software quality attributes. The findings of this review will provide the awareness to the researchers and a practitioner regarding the impact of code smells on software quality. It would be more advantageous to conduct further studies that consider less explored code smells, least or not investigated quality attributes, involve industry researchers and use large commercial software systems.

1 Introduction and Motivation Quality object-oriented software possesses various nonfunctional features like usability, reusability, changeability, and ease of evaluation. A common set of design principles namely data abstraction, modularity, and data encapsulation are followed by software systems during development to preserve these non-functional features [1]. But during maintenance, software undergoes several changes like addition of new requirements, quick bug fixes, or adaption to new environments. Due to a market rivalry, work deadline pressure or developers’ inexperience, these changes are made to the software without considering the aforementioned design principle. The defilement of these design principles is one of the main sourcing factor behind the introduction of “Code Smells” [2]. Code smells are symptoms that indicate problems in software design or code which makes software tough to change and maintain [3]. Code smells are not the errors in code * Amandeep Kaur [email protected] 1



Department of Computer Science, Sri Guru Granth Sahib World University, Fatehgarh Sahib, Punjab 140406, India

i.e., they don’t prevent the software from working. Despite, these are weaknesses in the design part of a software system that can either slow down the development or increase the threat of failure or errors in future. In some cases, code smells are introduced in the code by the developers while implementing vital patches or creating suboptimal choices in a hurry [4]. The group of code smells is sometimes known as anti-patterns. The term anti-pattern was coined by Opdyke [5]. Anti-pattern a