The Dynamic Function Coupling Metric and Its Use in Software Evaluation (2007)

Author(s): Arpad Beszedes, Tamas Gergely, Szabolcs Farago, Tibor Gyimothy, Ferenc Fischer
Venue: 11th European Conference on Software Maintenance and Reengineering
Date: Mar 2007

Type of Experiement: Case Study


Three medium-sized Java projects to apply the proposed metric towards. The projects were
JSubtitles (15 classes, 460 lines), NanoXML (27 classes, 1156 lines), java2html (55 classes,
2290 lines) with 95-100 test cases each.

They introduced a new metric called the Dynamic Function Coupling metric (DFC). This
metric looked at the relationship and coupling between functions that were “close” in exe-
cution at runtime. In addition to this they also look at the impacted data that is effected
because of an arbitrary function call and how that impact propagates further into execution
of the program. A cut-off variable was also investigated to determine which amount of func-
tions were necessary to capture in order to get the best precision. In the end precision fell
way off as the variable increased, it was found that 1 or 2 offered the best precision.

The case studies were chosen from all Java applications because of its object- oriented
approach and that it was easy to instrument the code with the necessary code in order to
capture the DFC metric. Jadys is a dynamic slicing tool written for Java which allowed for
execution at the lowest level of granularity. An virtual machine JamVM was used to exercise
the experiments along with other Java tools extract the metric data from the instrumented
builds. It solidly backs the DFC metric as a dynamic coupling metric which can be used to
output forward and backward impact sets on execution traces. They show that the impact
set of a function consisting of only strongly DFC-coupled functions has twice the precision
compared to the conservative method.