SDMetrics home page
The Software Design Metrics tool for the UML

  • [BMW02] "Assessing the Applicability of Fault-Proneness Models Across Object-Oriented Software Projects", L. Briand, W. Melo, J. Wüst, IEEE Transactions on Software Engineering, 28 (7), 706-720, 2002.
    Read abstract - download PDF

  • [BW02] "Empirical Studies of Quality Models in Object-Oriented Systems", L. Briand, J. Wüst, Advances in Computers Vol. 59, 97-166, 2002.
    Read abstract - download PDF -

  • [BWL01] "Replicated Case Studies for Investigating Quality Factors in Object-Oriented Designs", L. Briand, J. Wüst, H. Lounis, Empirical Software Engineering: An International Journal, Vol 6, No 1, 11-58, 2001.
    Read abstract - download PDF

  • [BW01a] "The Impact of Design Properties on Development Cost in Object-Oriented Systems", L. Briand, J. Wüst, IEEE Transactions on Software Engineering, 27 (11), 963-986, 2001.
    Read abstract - download PDF

  • [BW01b] "Integrating Scenario-based and Measurement-based Software Product Assessment", L. Briand, J. Wüst, Journal of Systems and Software 59, 3-22, 2001.
    Read abstract - download PDF

  • [BWDP00] "A Comprehensive Empirical Validation of Product Measures for Object-Oriented Systems", L. Briand, J. Wüst, J. Daly, V. Porter, Journal of Systems and Software 51, 245-273, 2000.
    Read abstract - download PDF

See also:


[BMW02] "Assessing the Applicability of Fault-Proneness Models Across Object-Oriented Software Projects", L. Briand, W. Melo, J. Wüst, IEEE Transactions on Software Engineering, 28 (7), 706-720, 2002.

Abstract

A number of papers have investigated the relationships between design metrics and the detection of faults in object-oriented software. Several of these studies have shown that such models can be accurate in predicting faulty classes within one particular software product. In practice, however, prediction models are built on certain products to be used on subsequent software development projects. How accurate can these models be considering the inevitable differences that may exist across projects and systems? Organizations typically learn and change. From a more general standpoint, can we obtain any evidence that such models are economically viable tools to focus validation and verification effort? This paper attempts to answer these questions by devising a general but tailorable cost-benefit model and by using fault and design data collected on two mid-size Java systems developed in the same environment. Another contribution of the paper is the use of a novel exploratory analysis technique (MARS) to build such fault-proneness models, whose functional form is a priori unknown.

Results indicate that a model built on one system can be accurately used to rank classes within another system according to their fault-proneness. The downside, however, is that, because of system differences, the predicted fault probabilities are not representative of the system predicted. However, our cost-benefit model demonstrates that the MARS fault-proneness model is potentially viable, from an economical standpoint. The linear model is not nearly as good, thus suggesting a more complex model is required.

Download this report (PDF, 217K)

Top of page


[BW02] "Empirical Studies of Quality Models in Object-Oriented Systems", L. Briand, J. Wüst, Advances in Computers Vol. 59, 97-166, 2002.

Abstract

Measuring structural design properties of a software system, such as coupling, cohesion, or complexity, is a promising approach towards early quality assessments. To use such measurement effectively, quality models are needed that quantitatively describe how these internal structural properties relate to relevant external system qualities such as reliability or maintainability. This chapter has for objective to summarize, in a structured and detailed fashion, the empirical results that have been reported so far with modeling external system quality based on structural design properties in object-oriented systems. We perform a critical review of existing work in order to identify lessons learned regarding the way these studies are performed and reported. Constructive guidelines are also provided to facilitate the work of future studies, thus facilitating the development of an empirical body of knowledge.

Download this report (PDF, 324K)

Top of page


[BWL01] "Replicated Case Studies for Investigating Quality Factors in Object-Oriented Designs", L. Briand, J. Wüst, H. Lounis, Empirical Software Engineering: An International Journal, Vol 6, No 1, 11-58, 2001.

Abstract

This paper aims at empirically exploring the relationships between most of the existing design coupling, cohesion, and inheritance measures for object-oriented (OO) systems, and the fault-proneness of OO system classes. The underlying goal of this study is to better understand the relationship between existing design measurement in OO systems and the quality of the software developed. In addition, we aim at assessing whether such relationships, once modeled, can be used to effectively drive and focus inspections or testing.

The study described here is a replication of an analogous study conducted in a university environment with systems developed by students. In order to draw more general conclusions and to (dis)confirm the results obtained there, we now replicated the study using data collected on an industrial system developed by professionals.

Results show that many of our findings are consistent across systems, despite the very disparate nature of the systems under study. Some of the strong dimensions captured by the measures in each data set are visible in both the university and industrial case study. For example, the frequency of method invocations appears to be the main driving factor of fault-proneness in all systems. However, there are also differences across studies, which illustrate the fact that, although many principles and techniques can be reused, quality does not follow universal laws and quality models must be developed locally, wherever needed.

Download this report (PDF, 284K)

Top of page


[BW01a] "The Impact of Design Properties on Development Cost in Object-Oriented Systems", L. Briand, J. Wüst, IEEE Transactions on Software Engineering, 27 (11), 963-986, 2001.

Abstract

In the context of software cost estimation, system size is widely taken as a main driver of system development effort. But other structural design properties, such as coupling, cohesion, complexity have been suggested as additional cost factors. In this paper, using effort data from an object-oriented development project, we empirically investigate the relationship between class size and the development effort for a class, and what additional impact structural properties such as class coupling have on effort.

We use Poisson regression and regression trees to build cost prediction models from size and design measures, and use these models to predict system development effort. We also investigate a recently suggested technique to combine regression trees with regression analysis, which aims at building more accurate models.

Results indicate that fairly accurate predictions of class effort can be made based on simple measures of the class interface size alone (mean MREs below 30%). Effort predictions at the system level are even more accurate as, using Boostrapping, the estimated 95% confidence interval for MREs is 3%-23%. But more sophisticated coupling and cohesion measures do not help to improve these predictions to a degree that would be practically significant. However, the use of hybrid models, combining Poisson regression and CART regression trees clearly improves the accuracy of the models, as compared to using Poisson regression alone.

Download this report (PDF, 214K)

Top of page


[BW01b] "Integrating Scenario-based and Measurement-based Software Product Assessment", L. Briand, J. Wüst, Journal of Systems and Software 59, 3-22, 2001.

Abstract

The software industry needs means to evaluate software products and compare development and implementation technologies in the context of actual projects. Solutions need to be cost-effective but also technically sound. This paper presents a methodology to combine two software product evaluation techniques: measurement of structural design properties, and evaluation of change scenarios. The goal is to use these two approaches together so that they can address each other's limitations.

In a case study in the context of the European aerospace industry, this combined methodology was used to assess the impact of choice of programming language and distribution technology on the maintainability of resulting systems. It encompasses the comparison of C++ and Java, as well as distribution/communication technologies such as IPC via sockets, and CORBA implementation. Lessons learned in terms of benefits and limitations are presented. The study shows the usefulness of the approach presented but it is also clear that it needs to be used in combination with other means of evaluation and with a critical mind, as for any engineering solution.

Download this report (PDF, 198K)

Top of page


[BWDP00] "A Comprehensive Empirical Validation of Product Measures for Object-Oriented Systems", L. Briand, J. Wüst, J. Daly, V. Porter, Journal of Systems and Software 51, 245-273, 2000.

Abstract

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. In other words, we wish to better understand the relationship between existing design measurement in OO systems and the quality of the software developed. The second goal is to propose an investigation and analysis strategy to make these kinds of studies more repeatable and comparable, a problem which is pervasive in the literature on quality measurement.

Results show that many of the measures capture similar dimensions in the data set, thus reflecting the fact that many of them are based on similar principles and hypotheses. However, it is shown that by using a subset of measures, accurate models can be built to predict which classes contain most of the existing faults. When predicting fault-prone classes, the best model shows a percentage of correct classifications higher than 80% and finds more than 90% of faulty classes. Besides the size of classes, the frequency of method invocations and the depth of inheritance hierarchies seem to be the main driving factors of fault proneness.

Download this report (PDF, 171K)

Top of page