Applying Design Metrics to a Large-Scale Software System

  • Authors:
  • W. Eric Wong;Joseph R. Horgan;Michael Syring;Wayne Zage

  • Affiliations:
  • -;-;-;-

  • Venue:
  • ISSRE '98 Proceedings of the The Ninth International Symposium on Software Reliability Engineering
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

Abstract

Three metrics were used to extract design information from existing code to identify structural stress points in a software system being analyzed: Di, an internal design metric which incorporates factors related to a module's internal structure; De, an external design metric which focuses on a module's external relationships to other modules in the software system; and D(G), a composite design metric which is the sum of Di and De. Since stress point modules generally have a high probability for being fault-prone, project managers can use the information to determine where additional testing effort should be spent and assign these modules to more experienced programmers if modifications are needed. To make the analysis more accurate and efficient, a design metrics analyzer (xMetrics) was implemented. In this study, we conducted experiments using xMetrics on part of a distributed software system, written in C, with a client-server architecture, and identified a small percentage of its functions as good candidates for fault-proneness. Files containing these functions were then validated by the real defect data collected from a recent major release to its next release for their fault-proneness. Normalized metrics values were also computed by dividing the Di, De, and D(G) values by the corresponding function size determined by non-blank and non-comment lines of code to study the possible impact of function size on these metrics. Results indicate that function size has little impact on the predictive quality of our design metrics in identifying fault-prone functions.