I. Introduction
The goal of reverse engineering is to recover knowledge about a software system, in support of a specific engineering task [20]. However, current reverse engineering techniques suffer from several problems, one of them is that the representations they generate are typically complete. Although most of the commercial Computer Aided Software Engineering (CASE) tools are able to leave out some properties in a class diagram, the results are still hard for developers to comprehend because it is not easy to identify which classes are less or more important. A controlled experiment conducted by Fernandez-Saez et al. [4] found that many subjects did not consider reverse engineered diagrams to be helpful.