A class hierarchy captures the generalization relationships among different classes of objects. It simplifies our lives and allows us to communicate effectively. It also reduces the amount of learning about a class of objects because of inheritance.
In this thesis, an analysis of the problem domain is first presented. Then the design of the current system is modified to accommodate the existence of class hierarchies. We also provided an interface to show that the learned hierarchies have been maintained correctly by the new system. The solution is implemented using the C++ programming language.