• DocumentCode
    176112
  • Title

    How Does Exception Handling Behavior Evolve? An Exploratory Study in Java and C# Applications

  • Author

    Cacho, Nelio ; Adachi Barbosa, Eiji ; Araujo, Jean ; Pranto, Frederico ; Garcia, Alvaro ; Cesar, Thiago ; Soares, Eliezio ; Cassio, Arthur ; Filipe, Thomas ; Garcia, I.

  • Author_Institution
    Dept. of Inf. & Appl. Math., Fed. Univ. of Rio Grande do Norte, Natal, Brazil
  • fYear
    2014
  • fDate
    Sept. 29 2014-Oct. 3 2014
  • Firstpage
    31
  • Lastpage
    40
  • Abstract
    Exception handling mechanisms (EHM) were conceived as a means to improve maintainability and reliability of programs that have to deal with exceptional situations. Amongst the different implementations of built-in EHM, we classify them in two main categories: reliability-driven and maintenance-driven. Some programming languages, such as Java, provide built-in exception handling mechanisms that promote reliability-driven EHMs. Maintenance-driven EHMs, on the other hand, promote software maintainability by not forcing developers to specify exception handling constraints. Most of modern languages, such as C#, Ruby, Python and many others support this approach. Developers usually have to choose between maintainability-driven and reliability-driven approaches to structure exception handling in their applications. However, there is still little empirical knowledge about the impact that adopting these mechanisms have on software robustness and maintenance. This paper addressed this gap by conducting an empirical study aimed at understanding the relationship between changes in Java and C# programs and their robustness. In particular, we evaluated how changes in the normal and exceptional code were related to exception handling faults. We applied a change impact analysis and a control flow analysis in 116 versions of 16 C# programs and 112 versions of 16 Java programs.
  • Keywords
    C language; Java; exception handling; software maintenance; software reliability; C# programs; Java programs; built-in EHM implementations; change impact analysis; control flow analysis; empirical analysis; exception handling behavior; exception handling constraints; exception handling faults; exceptional code; maintenance-driven EHM; normal code; program maintainability improvement; program reliability improvement; programming languages; reliability-driven EHM; software maintainability; software robustness; Java; Measurement; Robustness; Servers; Software; Software reliability; Exception Handling; change impact analysis; maintenance; reliability;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Maintenance and Evolution (ICSME), 2014 IEEE International Conference on
  • Conference_Location
    Victoria, BC
  • ISSN
    1063-6773
  • Type

    conf

  • DOI
    10.1109/ICSME.2014.25
  • Filename
    6976069