Two important and fundamental portions of object-oriented programs are classes and packages and the relations between them. In this paper, a multi-step solution has been presented and implemented for recovering and displaying fundamental components of an object-oriented program including classes, packages, and relations between them. This plan is done in three steps. First, the set of classes, packages, and relations between them is automatically obtained from the source program code. In the next step a code segment is injected to program source-code in order to register data needed during runtime. The information obtained from the previous steps is displayed in the third step. The results of this approach include automatic documentation, learning programming, easy understanding and evaluation of object-oriented programs, and reverse engineering.