Applying design metrics to a large-scale software system

W. Eric Wong, Joseph R. Horgan, Michael Syring, Wayne M. Zage, Dolores M. Zage · 2002

Three metrics were used to extract design information from existing code to identify structural stress points in a software system being analyzed: D/sub i/, an internal design metric which incorporates factors related to a module's internal structure; D/sub e/, 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 D/sub i/ and D/sub e/. 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 (/sub /spl chi//Metrics) was implemented. We conducted experiments using /sub /spl chi//Metrics 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 D/sub i/, D/sub e/, 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.

Read the paper · More papers on PaperTik