• DocumentCode
    2442970
  • Title

    Graph-based analysis and prediction for software evolution

  • Author

    Bhattacharya, Pamela ; Iliofotou, Marios ; Neamtiu, Iulian ; Faloutsos, Michalis

  • Author_Institution
    Dept. of Comput. Sci. & Eng., Univ. of California, Riverside, CA, USA
  • fYear
    2012
  • fDate
    2-9 June 2012
  • Firstpage
    419
  • Lastpage
    429
  • Abstract
    We exploit recent advances in analysis of graph topology to better understand software evolution, and to construct predictors that facilitate software development and maintenance. Managing an evolving, collaborative software system is a complex and expensive process, which still cannot ensure software reliability. Emerging techniques in graph mining have revolutionized the modeling of many complex systems and processes. We show how we can use a graph-based characterization of a software system to capture its evolution and facilitate development, by helping us estimate bug severity, prioritize refactoring efforts, and predict defect-prone releases. Our work consists of three main thrusts. First, we construct graphs that capture software structure at two different levels: (a) the product, i.e., source code and module level, and (b) the process, i.e., developer collaboration level. We identify a set of graph metrics that capture interesting properties of these graphs. Second, we study the evolution of eleven open source programs, including Firefox, Eclipse, MySQL, over the lifespan of the programs, typically a decade or more. Third, we show how our graph metrics can be used to construct predictors for bug severity, high-maintenance software parts, and failure-prone releases. Our work strongly suggests that using graph topology analysis concepts can open many actionable avenues in software engineering research and practice.
  • Keywords
    graph theory; groupware; program debugging; public domain software; software maintenance; software reliability; bug severity estimation; defect-prone release prediction; developer collaboration level; evolving collaborative software system; graph metrics; graph mining; graph topology; graph-based analysis; graph-based prediction; module level; open source program evolution; refactoring effort prioritization; software development; software evolution; software maintenance; software reliability; software structure; software system graph-based characterization; source code; Collaboration; Fires; Maintenance engineering; Measurement; Software; Software engineering; Topology; Graph science; defect prediction; empirical studies; productivity metrics; software evolution; software quality;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering (ICSE), 2012 34th International Conference on
  • Conference_Location
    Zurich
  • ISSN
    0270-5257
  • Print_ISBN
    978-1-4673-1066-6
  • Electronic_ISBN
    0270-5257
  • Type

    conf

  • DOI
    10.1109/ICSE.2012.6227173
  • Filename
    6227173