Software architecture recovery is a set of methods for the extraction of architectural information from lower level representations of a software system, such as source code.
What are the best methods to recover an architecture of an existing software system?