• DocumentCode
    1958313
  • Title

    On the Relationship between Program Evolution and Fault-Proneness: An Empirical Study

  • Author

    Jaafar, Fehmi ; Hassaine, S. ; Gueheneuc, Y. ; Hamel, Shahrbanoo ; Adams, Bram

  • Author_Institution
    PTIDEJ Team, Ecole Polytech. de Montreal, Montreal, QC, Canada
  • fYear
    2013
  • fDate
    5-8 March 2013
  • Firstpage
    15
  • Lastpage
    24
  • Abstract
    Over the years, many researchers have studied the evolution and maintenance of object-oriented source code in order to understand the possibly costly erosion of the software. However, many studies thus far did not link the evolution of classes to faults. Since (1) some classes evolve independently, other classes have to do it together with others (co-evolution), and (2) not all classes are meant to last forever, but some are meant for experimentation or to try out an idea that was then dropped or modified. In this paper, we group classes based on their evolution to infer their lifetime models and coevolution trends. Then, we link each group´s evolution to faults. We create phylogenetic trees showing the evolutionary history of programs and we use such trees to facilitate spotting the program code decay. We perform an empirical study, on three open-source programs: ArgoUML, JFreechart, and XercesJ, to examine the relation between the evolution of object-oriented source code at class level and fault-proneness. Our results indicate that (1) classes having a specific lifetime model are significantly less fault-prone than other classes and (2) faults fixed by maintaining co-evolved classes are significantly more frequent than faults fixed using not co-evolved classes.
  • Keywords
    Unified Modeling Language; object-oriented programming; public domain software; software fault tolerance; software maintenance; ArgoUML; JFreechart; XercesJ; coevolution trends; lifetime models; object-oriented source code evolution; object-oriented source code maintenance; open-source programs; phylogenetic trees; program code decay; program evolution; program evolutionary history; program fault-proneness; History; Java; Maintenance engineering; Market research; Object oriented modeling; Phylogeny; Transient analysis; Bit vectors; Co-evolution; Evolutionary history; Fault-proneness; Reverse engineering;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Maintenance and Reengineering (CSMR), 2013 17th European Conference on
  • Conference_Location
    Genova
  • ISSN
    1534-5351
  • Print_ISBN
    978-1-4673-5833-0
  • Type

    conf

  • DOI
    10.1109/CSMR.2013.12
  • Filename
    6498451