[Show abstract][Hide abstract] ABSTRACT: The coupling dependency metric (CDM) is a successful design quality metric. Here we apply it to four case studies: run-time failure data for a COBOL registration system; maintenance data for a C text-processing utility; maintenance data for a C++ patient collaborative care system; and maintenance data for a Java electronic file transfer facility. CDM outperformed a wide variety of competing metrics in predicting run-time failures and a number of different maintenance measures. These results imply that coupling metrics may be good predictors of levels of interaction within a software product
Software Engineering, 1998. Proceedings of the 1998 International Conference on; 05/1998
[Show abstract][Hide abstract] ABSTRACT: this paper, we show that inheritance coupling is synonymous with a classical type of coupling, and that there is therefore no such thing as purely object-oriented coupling. More specifically, we identify a new category of coupling, declaration coupling, that is found in both the classical paradigm and the object-oriented paradigm. We show that the coupling in the objectoriented paradigm is either classical coupling or declaration coupling. Because declaration coupling is not specific to the object-oriented paradigm, there can therefore be no form of coupling that is specific to the object-oriented paradigm. Combining our results on cohesion and coupling, we conclude that neither the term "objectoriented cohesion" nor the term "object-oriented coupling" makes much sense. Furthermore, use of these two terms can be counterproductive, unless it is made clear that what is meant is classical cohesion or coupling applied to the object-oriented domain; the use of new terminology to describe existing concepts should always be avoided. In Section 2 we carefully define the terminology used in this paper. In Section 3 we show that cohesion in the object-oriented paradigm can be expressed in terms of the cohesion of a module. We discuss coupling between elements of the object-oriented paradigm in detail in Sections 4 and 5. In Section 6 we define declaration coupling. In Section 7 we show that object-oriented coupling can be expressed in terms of the coupling of modules at the same level of abstraction. In Section 8 we discuss object-oriented metrics in general. Our conclusions are summarized in Section 9. 2. Definitions and Background We begin by defining the terms used in this paper, including module, process, class, and object. A
[Show abstract][Hide abstract] ABSTRACT: Inheritance-based metrics are a major component of object-oriented metric suites. Corrective maintenance data of an 82,000-line C++ patient collaborative care system was analyzed. There was no significant correlation between the effort to fix residual faults and three of the four inheritance-based metrics that were included in this study. All the interclass and intraclass metrics displayed a strong correlation with the maintenance data; all were more strongly correlated than any of the inheritance-based metrics. It is concluded that, for this data set, inheritance does not play a significant role in predicting residual faults. Index Terms— Empirical study, intraclass metric, interclass metric, inheritance-based metric, object-oriented paradigm, residual faults, software maintenance
[Show abstract][Hide abstract] ABSTRACT: A study is presented in which we determined whether software product metrics gathered statically from designs or source code may be helpful in predicting the number of run-time faults that will be encountered during execution. Metrics examined include intermodule metrics such as fan--in and fan--out, as well as intermodule metrics such as cyclomatic complexity and size. Our study indicates that it may be possible, with certain classes of software products, to predict the run-time behavior using well-known static intermodule metrics. Keywords: design quality; intermodule metrics; intramodule metrics; software product metrics; run-time failures Introduction A great deal of research effort has been devoted to developing and validating software product metrics which are useful in predicting software errors. These metrics usually fall into one of two categories: intermodule metrics and intramodule metrics [Graham, 1996]. Intermodule metrics quantify the interactions between modules (e.g., ...
Software Quality Control 01/1998; 7:141-147. · 0.85 Impact Factor