Next: Axiomatic Properties
Up: Theoretical Validation
Previous: Theoretical Validation
Object-oriented designs have certain features that have been found
to reduce the complexity of the software. Below we present these features
and explain the response of the measure in those situations.
- Inheritance: Whenever a class has to be developed
we may have a choice of inheriting from an existing class or
creating one from scratch. The measure increase the complexity of
the class indicating that testing is always involved proposition when there
is a lot of reuse.
- Information hiding:
By encapsulating its attributes or properties, a class restricts
access to its information. This is often leads to loss of information
which results in a greater complexity measure for the class. As the measure
is inversly proportional to the loss component, it is very sensitive to
feature of object-orientation. It is also necessary to note that the measure
of the metric is dependent on the design of the class. If the methods in the
class have a high visibility component then the measure decreases.
- Weak Coupling:
Classes should be as independent of each other as the
domain they represent permits. Unnecessary interaction with other
classes is considered bad design. Coupling is indicated by objects used
as attributes within a class and as parameters to methods. The metric
rewards weak coupling since it produces a lower value for classes that
have fewer input and output parameters.
- Composition:
When the internal mechanism of a class uses the services of
an already existing class through instantiation, the complexity of the
containing class is reduced. This is the second form of reuse typical in
object-oriented programs (the first being reuse through inheritance.)
Composition is an example of coupling which has already been addressed
above.
John McGregor
Sun May 5 14:43:24 EDT 1996