AN EMPIRICAL STUDY OF RUN-TIME COUPLING AND COHESION SOFTWARE METRICS

Áine Mitchell · 2005

The extent of coupling and cohesion in an object-oriented system has implications for its external quality. Various static coupling and cohesion metrics have been proposed and used in past empirical investigations, however none of these have taken the run-time properties of a program into account. As program behaviour is a function of its operational environment as well as the complexity of the source code, static metrics may fail to quantify all the underlying dimensions of coupling and cohesion. By considering both of these influences, one will acquire a more comprehensive understanding of the quality of critical components of a software system. We believe that any measurement of these attributes should include changes that take place at run-time. For this reason, in this work we address the utility of run-time coupling and cohesion complexity through the empirical evaluation of a selection of run-time measures for these properties. This study is carried out using a comprehensive selection of Java benchmark and real world programs. Our first case study investigates the influence of instruction coverage on the relationship between static and run-time coupling metrics. Our second case study defines a new run-time coupling metric that can be used to study object behaviour and investigates the ability of measures of run-time cohesion to predict such behaviour. Finally, we investigate whether run-time coupling metrics are good predictors of software fault-proneness in comparison to standard coverage measures. To the best of our knowledge this is the largest empirical study that has been performed to date on the run-time analysis of Java programs.

Read the paper · More papers on PaperTik