• DocumentCode
    3696674
  • Title

    Cumulative code churn: Impact on maintainability

  • Author

    Csaba Faragó;Péter Hegedűs;Rudolf Ferenc

  • Author_Institution
    Department of Software Engineering, University of Szeged, Hungary
  • fYear
    2015
  • Firstpage
    141
  • Lastpage
    150
  • Abstract
    It is a well-known phenomena that the source code of software systems erodes during development, which results in higher maintenance costs in the long term. But can we somehow narrow down where exactly this erosion happens? Is it possible to infer the future erosion based on past code changes? Do modifications performed on frequently changing code have worse effect on software maintainability than those affecting less frequently modified code? In this study we investigated these questions and the results indicate that code churn indeed increases the pace of code erosion. We calculated cumulative code churn values and maintainability changes for every version control commit operation of three open-source and one proprietary software system. With the help of Wilcoxon rank test we compared the cumulative code churn values of the files in commits resulting maintainability increase with those of decreasing the maintainability. In the case of three systems the test showed very strong significance and in one case it resulted in strong significance (p-values 0.00235, 0.00436, 0.00018 and 0.03616). These results support our preliminary assumption that modifying high-churn code is more likely to decrease the overall maintainability of a software system, which can be thought of as the generalization of the already known phenomena that code churn results in higher number of defects.
  • Keywords
    "Software systems","Density measurement","Maintenance engineering","Control systems","Open source software","IEC Standards"
  • Publisher
    ieee
  • Conference_Titel
    Source Code Analysis and Manipulation (SCAM), 2015 IEEE 15th International Working Conference on
  • Type

    conf

  • DOI
    10.1109/SCAM.2015.7335410
  • Filename
    7335410