scispace - formally typeset
Search or ask a question
Journal ArticleDOI

Object-oriented metrics that predict maintainability

Wei Li, Sallie M. Henry1
01 Nov 1993-Journal of Systems and Software (Elsevier Science Inc.)-Vol. 23, Iss: 2, pp 111-122
TL;DR: This research concentrates on several object-oriented software metrics and the validation of these metrics with maintenance effort in two commercial systems.
About: This article is published in Journal of Systems and Software.The article was published on 1993-11-01. It has received 1111 citations till now. The article focuses on the topics: Halstead complexity measures & Software metric.
Citations
More filters
Journal ArticleDOI
TL;DR: Several of Chidamber and Kemerer's OO metrics appear to be useful to predict class fault-proneness during the early phases of the life-cycle and are better predictors than "traditional" code metrics, which can only be collected at a later phase of the software development processes.
Abstract: This paper presents the results of a study in which we empirically investigated the suite of object-oriented (OO) design metrics introduced in (Chidamber and Kemerer, 1994). More specifically, our goal is to assess these metrics as predictors of fault-prone classes and, therefore, determine whether they can be used as early quality indicators. This study is complementary to the work described in (Li and Henry, 1993) where the same suite of metrics had been used to assess frequencies of maintenance changes to classes. To perform our validation accurately, we collected data on the development of eight medium-sized information management systems based on identical requirements. All eight projects were developed using a sequential life cycle model, a well-known OO analysis/design method and the C++ programming language. Based on empirical and quantitative analysis, the advantages and drawbacks of these OO metrics are discussed. Several of Chidamber and Kemerer's OO metrics appear to be useful to predict class fault-proneness during the early phases of the life-cycle. Also, on our data set, they are better predictors than "traditional" code metrics, which can only be collected at a later phase of the software development processes.

1,741 citations


Cites background or methods or result from "Object-oriented metrics that predic..."

  • ...CS-TR-3443 21 UMIACS-TR-95-40 [Li&Henry, 1993]’s work is comparable to our work in the following ways....

    [...]

  • ...Many of product metrics have been proposed [Fenton, 1991; Conte et al, 1986], used, and, sometimes, experimentally validated [Basili&Hutchens, 1982; Basili et al, 1983; Li&Henry, 1993], e.g., number of lines of code, MacCabe complexity metric, etc....

    [...]

  • ...However, with a few exceptions [Briand et.al., 1994] and [Li&Henry, 1993], most of them have not undergone an experimental validation....

    [...]

  • ...In addition, [Li&Henry, 1993] used (multivariate) least-square linear regression to build their predictive model whereas we used logistic regression (i.e., a classification technique for binary dependent variables)....

    [...]

  • ...On the other hand, [Li&Henry, 1993] performed a validation of Chidamber&Kemerer’s OO metrics studying the number of changes performed in two commercial systems implemented with an OO dialect of Ada....

    [...]

Journal ArticleDOI
TL;DR: An improved hierarchical model that relates design properties such as encapsulation, modularity, coupling, and cohesion to high-level quality attributes such as reusability, flexibility, and complexity using empirical and anecdotal information is described.
Abstract: The paper describes an improved hierarchical model for the assessment of high-level design quality attributes in object-oriented designs. In this model, structural and behavioral design properties of classes, objects, and their relationships are evaluated using a suite of object-oriented design metrics. This model relates design properties such as encapsulation, modularity, coupling, and cohesion to high-level quality attributes such as reusability, flexibility, and complexity using empirical and anecdotal information. The relationship or links from design properties to quality attributes are weighted in accordance with their influence and importance. The model is validated by using empirical and expert opinion to compare with the model results on several large commercial object-oriented systems. A key attribute of the model is that it can be easily modified to include different relationships and weights, thus providing a practical quality assessment tool adaptable to a variety of demands.

980 citations

Proceedings Article
01 Jan 1999
TL;DR: In this paper, a review of the existing frameworks and measures for coupling measurement in object-oriented systems is presented, and a unified framework based on the issues discovered in the review is provided and all existing measures are classified according to this framework.
Abstract: The increasing importance being placed on software measurement has led to an increased amount of research developing new software measures. Given the importance of object-oriented development techniques, one specific area where this has occurred is coupling measurement in object-oriented systems. However, despite a very interesting and rich body of work, there is little understanding of the motivation and empirical hypotheses behind many of these new measures. It is often difficult to determine how such measures relate to one another and for which application they can be used. As a consequence, it is very difficult for practitioners and researchers to obtain a clear picture of the state-of-the-art in order to select or define measures for object-oriented systems. This situation is addressed and clarified through several different activities. First, a standardized terminology and formalism for expressing measures is provided which ensures that all measures using it are expressed in a fully consistent and operational manner. Second, to provide a structured synthesis, a review of the existing frameworks and measures for coupling measurement in object-oriented systems takes place. Third, a unified framework, based on the issues discovered in the review, is provided and all existing measures are then classified according to this framework. This paper contributes to an increased understanding of the state-of-the-art: A mechanism is provided for comparing measures and their potential use, integrating existing measures which examine the same concepts in different ways, and facilitating more rigorous decision making regarding the definition of new measures and the selection of existing measures for a specific goal of measurement. In addition, our review of the state-of-the-art highlights that many measures are not defined in a fully operational form, and relatively few of them are based on explicit empirical models, as recommended by measurement theory.

815 citations

Journal ArticleDOI
TL;DR: This paper contributes to an increased understanding of the state of the art in coupling measurement in object-oriented systems by providing a standardized terminology and formalism for expressing measures which ensures that all measures using it are expressed in a fully consistent and operational manner.
Abstract: The increasing importance being placed on software measurement has led to an increased amount of research developing new software measures. Given the importance of object-oriented development techniques, one specific area where this has occurred is coupling measurement in object-oriented systems. However, despite a very interesting and rich body of work, there is little understanding of the motivation and empirical hypotheses behind many of these new measures. It is often difficult to determine how such measures relate to one another and for which application they can be used. As a consequence, it is very difficult for practitioners and researchers to obtain a clear picture of the state of the art in order to select or define measures for object-oriented systems. This situation is addressed and clarified through several different activities. First, a standardized terminology and formalism for expressing measures is provided which ensures that all measures using it are expressed in a fully consistent and operational manner. Second, to provide a structured synthesis, a review of the existing frameworks and measures for coupling measurement in object-oriented systems takes place. Third, a unified framework, based on the issues discovered in the review, is provided and all existing measures are then classified according to this framework. This paper contributes to an increased understanding of the state-of-the-art.

775 citations


Cites background or methods from "Object-oriented metrics that predic..."

  • ...” We further quote [26]: “The number of send statements sent out from a class may indicate how dependent the implementation of the local methods is on the methods in other classes....

    [...]

  • ...We further quote [26]: “The number of variables (remark: attribute in our terminology) having an ADT type may indicate the number of data structures dependent on the definitions of other classes....

    [...]

  • ...[26] W. Li and S. Henry, “Object-Oriented Metrics that Predict Maintainability,” J. Systems and Software, vol. 23, no. 2, pp. 111-122, 1993....

    [...]

  • ...and Kemerer [14], [15], Li and Henry [26], Martin [29], Abreu et al....

    [...]

  • ...4.2 Coupling Measures Coupling measures have been proposed by Chidamber and Kemerer [14], [15], Li and Henry [26], Martin [29], Abreu et al. [1], Lee et al. [28], and Briand et al. [4]....

    [...]

Journal ArticleDOI
TL;DR: It is shown that by using a subset of measures, accurate models can be built to predict which classes most of the faults are likely to lie in, and the best model shows a percentage of correct classifications higher than 80% and finds more than 90% of faulty classes.

709 citations


Cites background from "Object-oriented metrics that predic..."

  • ...…have so far investigated the actual impact of these measures on quality attributes such as fault-proneness (Basili et al., 1996; Briand et al., 1997b; Cartwright and Shepperd, 1999), productivity or effort (Chidamber et al., 1998), or the amount of maintenance modifications (Li and Henry, 1993)....

    [...]

  • ...…the literature to capture the structural quality of object-oriented (OO) code and design (Chidamber and Kemerer, 1991; Chidamber and Kemerer, 1994; Li and Henry, 1993; Lee et al., 1995; Briand et al., 1997b; Henderson-Sellers, 1996; Hitz and Montazeri, 1995; Bieman and Kang, 1995; Lake and Cook,…...

    [...]

  • ...The first goal of this paper is to empirically explore the relationships between existing object-oriented coupling, cohesion, and inheritance measures and the probability of fault detection in system classes during testing....

    [...]

References
More filters
Book
04 Oct 1993
TL;DR: In this paper, a graph-theoretic complexity measure for managing and controlling program complexity is presented. But the complexity is independent of physical size, and complexity depends only on the decision structure of a program.
Abstract: This paper describes a graph-theoretic complexity measure and illustrates how it can be used to manage and control program complexity. The paper first explains how the graph theory concepts apply and gives an intuitive explanation of the graph concepts in programming terms. The control graphs of several actual FORTRAN programs are then presented to illustrate the correlation between intuitive complexity and the graph theoretic complexity. Several properties of the graph-theoretic complexity are then proved which show, for example, that complexity is independent of physical size (adding or subtracting functional statements leaves complexity unchanged) and complexity depends only on the decision structure of a program.The issue of using non-structured control flow is also discussed. A characterization of non-structured control graphs is given and a method of measuring the “structuredness” of a program is developed. The relationship between structure and reducibility is illustrated with several examples.The last section of the paper deals with a testing methodology used in conjunction with the complexity measure; a testing strategy is defined that dictates that a program can either admit of a certain minimal testing level or the program can be structurally reduced.

5,171 citations

Journal ArticleDOI
TL;DR: Several properties of the graph-theoretic complexity are proved which show, for example, that complexity is independent of physical size and complexity depends only on the decision structure of a program.
Abstract: This paper describes a graph-theoretic complexity measure and illustrates how it can be used to manage and control program complexity. The paper first explains how the graph-theory concepts apply and gives an intuitive explanation of the graph concepts in programming terms. The control graphs of several actual Fortran programs are then presented to illustrate the correlation between intuitive complexity and the graph-theoretic complexity. Several properties of the graph-theoretic complexity are then proved which show, for example, that complexity is independent of physical size (adding or subtracting functional statements leaves complexity unchanged) and complexity depends only on the decision structure of a program.

5,097 citations

Book
01 Jan 1977

2,146 citations

Book
14 Sep 2011
TL;DR: These metrics are based upon measurement theory and are informed by the insights of experienced object-oriented software developers, and formally evaluated against a widelyaccepted list of software metric evaluation criteria.
Abstract: While software metrics are a generally desirable feature in the software management functions of project planning and project evaluation, they are of especial importance with a new technology such as the object-oriented approach. This is due to the significant need to train software engineers in generally accepted object-oriented principles. This paper presents theoretical work that builds a suite of metrics for object-oriented design. In particular, these metrics are based upon measurement theory and are informed by the insights of experienced object-oriented software developers. The proposed metrics are formally evaluated against a widelyaccepted list of software metric evaluation criteria.

841 citations

Journal ArticleDOI
TL;DR: This paper defines and validates a set of software metrics which are appropriate for evaluating the structure of large-scale systems and can be interpreted to reveal various types of structural flaws in the design and implementation.
Abstract: Structured design methodologies provide a disciplined and organized guide to the construction of software systems. However, while the methodology structures and documents the points at which design decisions are made, it does not provide a specific, quantitative basis for making these decisions. Typically, the designers' only guidelines are qualitative, perhaps even vague, principles such as "functionality," "data transparency," or "clarity." This paper, like several recent publications, defines and validates a set of software metrics which are appropriate for evaluating the structure of large-scale systems. These metrics are based on the measurement of information flow between system components. Specific metrics are defined for procedure complexity, module complexity, and module coupling. The validation, using the source code for the UNIX operating system, shows that the complexity measures are strongly correlated with the occurrence of changes. Further, the metrics for procedures and modules can be interpreted to reveal various types of structural flaws in the design and implementation.

830 citations