Faults and Their Relationship to Implemented Patterns, Coupling and Cohesion in Commercial C# Software

  • Authors:
  • Steve Counsell;Matt Gatrell

  • Affiliations:
  • Brunel University, UK;Brunel University, UK

  • Venue:
  • International Journal of Information System Modeling and Design
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper documents a study of fault proneness in commercial, proprietary software and attempts to determine whether a relationship exists between class faults and the design context of a class, namely the coupling and cohesion of a class, and whether the class is a participant of common design patterns. The authors studied a commercial software system for a 24 month period and identified design pattern participants by inspecting the design documentation and source code; coupling and cohesion metrics were measured by inspecting the source code with a tool; we also extracted fault data for the same period to determine whether a relationship existed between the design context and the fault propensity of a class. Results showed that design pattern participant classes were marginally more fault-prone than non-participant classes, The Adaptor, Method and Singleton patterns were found to be the most fault-prone of thirteen patterns explored. Coupling was found to have a significant relationship with the fault proneness of classes in the system; efferent coupling was a stronger indicator of fault propensity than afferent coupling. Cohesion, when measured using the LCOMHS metric, was not found to have a strong relationship with fault proneness.