Class, object, method, message, instance variable, and inheritance are the basic concepts of the OO technology. OO metrics are mainly measures of how these constructs are used in the design and development process. Therefore, a short review of definitions is in order.
Figure 12.1 provides a pictorial description of the OO structures and key concepts. For example, "Account", "SavingsCheckingAccount", "HomeEquity", and "CertificateAccount" are all classes. "Account" is also an abstract class; the other classes are its subclasses, which are concrete classes. "Ken Brown'sSavingsAccount" and "Ken Brown's HomeEquity Account" are objects. The "Account" class has three subclasses or children. "AccountNumber" is an instance variable, also called an attribute, and getBalance() is a method of the "Account" class. All instance variables and methods for the "Account" class are also the instance variables and methods of its subclasses through inheritance. The object "Ken Brown'sSavingsAccount" sends a message to the object "Ken Brown's HomeEquity Account", via the "transfer()" method and thereby invokes the "setMonthlyPayment()" method. Therefore, the class "SavingsCheckingAccount" is coupled to the class "HomeEquity" through the message.
Figure 12.1. An Object-Oriented Class Hierarchy
What Is Software Quality?
Software Development Process Models
Fundamentals of Measurement Theory
Software Quality Metrics Overview
Applying the Seven Basic Quality Tools in Software Development
Defect Removal Effectiveness
The Rayleigh Model
Exponential Distribution and Reliability Growth Models
Quality Management Models
In-Process Metrics for Software Testing
Complexity Metrics and Models
Metrics and Lessons Learned for Object-Oriented Projects
Measuring and Analyzing Customer Satisfaction
Conducting In-Process Quality Assessments
Conducting Software Project Assessments
Dos and Donts of Software Process Improvement
Using Function Point Metrics to Measure Software Process Improvements
A Project Assessment Questionnaire