1. A system for reverse engineering a computer program, said system comprising: (a) means for extracting information related to source code in the computer program; (b) means for storing said extracted information in a semi-structured form; (c) means for creating a plurality of representations of said semi-structured information; and (d) means for updating said semi-structured information.