|
Depth of Inheritance (DIT)
Depth of Inheritance is the maximum length from a given class to
the root of the inheritance tree. In Java, as all the classes
inherit from Object class, the minimum DIT in Java is 1. It is a
measure of the depth of the class hierarchy. The higher the
value of DIT, child classes inherit more number of methods from
the base classes. In such situations, it becomes too difficult
to evolve the base classes and child classes. Thus, it is
important to keep a low value of DIT in design.
Number of Children (NOC)
Number of Children is the immediate number of sub-classes to a
base class. If we have a very large number of children to a base
class, it might be a candidate for refactoring to create a more
sustainable and maintainable hierarchy.
Conclusion
Finally, we will see how we can categorize the above mentioned
metrics, into several areas of object oriented design.
| Area | Item | Metrics |
| Class | Method | WMC |
| | Collaboration | RFC |
| | Cohesion | LOMC |
| | Coupling | CBO |
| Inheritance | | DIT |
| | | NOC |
The above table summarizes the areas that the discussed metrics
can be applied to. By no means is this is a complete set of
metrics that are available. There are plenty more like Lines of
Code, Fan-ion/Fan-out etc. I suggest that interested readers go
through them all in order to decide which metric is most
suitable for his/her project. It is important to mention that
depending on the size and complexities of the project, the set
of metrics needs to be adjusted to get the right benefit. The
decision of which ones to use is mostly down to the
organizational practice and experience of individual
professionals.
Samudra Gupta has more than 8 years of experience in the area of
Java based application design and development. He works as an
independent consultant in United Kingdom and at present provides
consultancy in government tax regime and intelligence
information system development. In past, he has provided expert
consultancies in the Publication and Retail sector software
development. He is the author of the book “Logging in Java with
JDK1.4 Logging API and Apache Log4j”, Apress, April, 2003. He is
a regular contributor to different Java magazines and journals
like Javboutique, JavaWorld, Java Developers Journal, DevX etc.
In his free time, he loves to play contract bridge and ten pin
bowling.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|