1. Introduction
In the early stages of the SDLC, class diagrams may be used to represent the architectural software design. As development progresses, class diagrams can be used to represent information that is closer to the construction of the system. During or after the implementation of source code, a class diagram may be recovered using reverse engineering techniques. Such a reverse engineered class diagram is closely based on the source code and reflects the fine-grain implementation structure of software systems [1].