Object-Oriented Measurement of Software
Published Online: 15 JAN 2002
Copyright © 2002 by John Wiley & Sons, Inc. All rights reserved.
Encyclopedia of Software Engineering
How to Cite
Ott, L. M. 2002. Object-Oriented Measurement of Software. Encyclopedia of Software Engineering. .
- Published Online: 15 JAN 2002
The 1990s saw an insurgence in the use of object-oriented (OO) technologies. Along with this shift has been an increase in the demand for metrics to aid in evaluating the processes and the products associated with these new technologies. OO measurement focuses primarily on those metrics that have been specifically developed to be used with OO technologies and products.
Many traditional metrics are paradigm neutral and, therefore, can still be used in the OO paradigm to answer certain kinds of questions. As a trivial example, lines of code is as valid a size metric in the OO paradigm on which to base an estimate of the amount of paper needed to print out a software package as it is in the procedural paradigm. New language constructs, however, imply significant differences in OO program structure. Thus, metrics specifically developed for OO technologies are often required. In particular, measurements associated with classes and class structure take on significant importance in OO products. For example, measurements of reuse via class inheritance are not found in traditional procedural paradigm metric sets.
Besides the change in language constructs, the OO development process frequently differs from traditional processes in several ways. Much greater emphasis is often placed on more formal documentation during the early phases of development, such as the use of UML (Unified Modeling Language); and a clearer, more direct component to component relationship can be seen across the artifacts of the system through requirements, design, coding, and testing. This increase in visibility at the earlier phases of development has resulted in a greater desire for and emphasis on metrics for measuring the products of the early phases, particularly OO requirements and design.
- current status