e-Informatica Software Engineering Journal (Jun 2021)

Software Deterioration Control Based on Issue Reports

  • Omid Bushehrian,
  • Mohsen Sayari,
  • Pirooz Shamsinejad

DOI
https://doi.org/10.37190/e-Inf210106
Journal volume & issue
Vol. 15, no. 1

Abstract

Read online

Introduction: Successive code changes during the maintenance phase may cause the emergence of bad smells and anti-patterns in code and gradually results in deterioration of the code and difficulties in its maintainability. Continuous Quality Control (QC) is essential in this phase to refactor the anti-patterns and bad smells. Objectives: The objective of this research has been to present a novel component called Code Deterioration Watch (CDW) to be integrated with existing Issue Tracking Systems (ITS) in order to assist the QC team in locating the software modules most vulnerable to deterioration swiftly. The important point regarding the CDW is the fact that its function has to be independent of the code level metrics rather it is totally based on issue level metrics measured from ITS repositories. Methods: An issue level metric that properly alerts us of bad-smell emergence was identified by mining software repositories. To measure that metric, a Stream Clustering algorithm called ReportChainer was proposed to spot Relatively Long Chains (RLC) of incoming issue reports as they tell the QC team that a concentrated point of successive changes has emerged in the software. Results: The contribution of this paper is partly creating a huge integrated code and issue repository of twelve medium and large size open-source software products from Apache and Eclipse. By mining this repository it was observed that there is a strong direct correlation (0.73 on average) between the number of issues of type “New Feature” reported on a software package and the number of bad-smells of types “design” and “error prone” emerged in that package. Besides a strong direct correlation (0.97 on average) was observed between the length of a chain and the magnitude of times it caused changes to a software package. Conclusion: The existence of direct correlation between the number of issues of type “New Feature” reported on a software package and (1) the number of bad-smells of types “design” and “error prone” and (2) the value of “CyclomaticComplexity” metric of the package, justifies the idea of Quality Control merely based on issue-level metrics. A stream clustering algorithm can be effectively applied to alert the emergence of a deteriorated module.

Keywords