TOWARDS A METRICS SUITE FOR OBJECT ORIENTED DESIGN

TOWARDS A METRICS SUITE FOR OBJECT ORIENTED DESIGN

June 1991 | Shyam Chidamber, Chris F. Kemerer
This paper presents theoretical work that builds a suite of metrics for object-oriented design (OOD). The metrics are based on measurement theory and informed by insights from experienced object-oriented software developers. They are evaluated against a set of seven software metric evaluation criteria and are found to perform relatively well, suggesting some differences between the object-oriented approach and more traditional approaches in terms of desirable or necessary design features. The paper discusses the need for metrics in object-oriented software production to move software development and maintenance from a 'craft' environment into something more like conventional engineering. Software metrics are especially important in the object-oriented approach, as it represents a significant technological change for organizations. The metrics proposed in this paper are the first steps in a project aimed at measuring and evaluating the use of object-oriented design principles in organizations. The paper outlines six candidate metrics specifically developed for measuring elements contributing to the size and complexity of object-oriented design. These metrics are based on theoretical concepts in measurement and capture empirical notions of software complexity. The six metrics include: Weighted Methods Per Class (WMC), Depth of Inheritance Tree (DIT), Number of Children (NOC), Coupling between Objects (CBO), Response for a Class (RFC), and Lack of Cohesion in Methods (LCOM). Each metric is evaluated against a list of properties that define desirable software metrics. The evaluation shows that all six metrics fail to meet property 3, suggesting that permutation of elements within an object may not be significant. Additionally, all six metrics fail to meet property 7, which suggests that complexity may not necessarily increase as designs are broken into more objects. The RFC metric fails to satisfy property 6, and the DIT metric fails to satisfy property 5. These deficiencies are due to the definitions of the metrics and further refinements are needed to satisfy these properties. The paper concludes that the proposed metrics are a first attempt at developing formal metrics for OOD. They are unlikely to be comprehensive, and further work could result in additions, changes, and possible deletions from this suite. However, this proposal should lay the groundwork for a formal language with which to describe metrics for OOD. These metrics may also serve as a generalized solution for other researchers to rely on when seeking to develop specialized metrics for particular purposes or customized environments.This paper presents theoretical work that builds a suite of metrics for object-oriented design (OOD). The metrics are based on measurement theory and informed by insights from experienced object-oriented software developers. They are evaluated against a set of seven software metric evaluation criteria and are found to perform relatively well, suggesting some differences between the object-oriented approach and more traditional approaches in terms of desirable or necessary design features. The paper discusses the need for metrics in object-oriented software production to move software development and maintenance from a 'craft' environment into something more like conventional engineering. Software metrics are especially important in the object-oriented approach, as it represents a significant technological change for organizations. The metrics proposed in this paper are the first steps in a project aimed at measuring and evaluating the use of object-oriented design principles in organizations. The paper outlines six candidate metrics specifically developed for measuring elements contributing to the size and complexity of object-oriented design. These metrics are based on theoretical concepts in measurement and capture empirical notions of software complexity. The six metrics include: Weighted Methods Per Class (WMC), Depth of Inheritance Tree (DIT), Number of Children (NOC), Coupling between Objects (CBO), Response for a Class (RFC), and Lack of Cohesion in Methods (LCOM). Each metric is evaluated against a list of properties that define desirable software metrics. The evaluation shows that all six metrics fail to meet property 3, suggesting that permutation of elements within an object may not be significant. Additionally, all six metrics fail to meet property 7, which suggests that complexity may not necessarily increase as designs are broken into more objects. The RFC metric fails to satisfy property 6, and the DIT metric fails to satisfy property 5. These deficiencies are due to the definitions of the metrics and further refinements are needed to satisfy these properties. The paper concludes that the proposed metrics are a first attempt at developing formal metrics for OOD. They are unlikely to be comprehensive, and further work could result in additions, changes, and possible deletions from this suite. However, this proposal should lay the groundwork for a formal language with which to describe metrics for OOD. These metrics may also serve as a generalized solution for other researchers to rely on when seeking to develop specialized metrics for particular purposes or customized environments.
Reach us at info@study.space
[slides and audio] Towards a metrics suite for object oriented design