When manually inspecting unfamiliar code (to review or modify), I seem to have three options. A top-down read of the code, choosing each next source file by how fundamental the filename seems. I ...
What tools and techniques do you use for exploring and learning an unknown code base? I am thinking of tools like grep, ctags, unit-tests, functional test, class-diagram generators, call graphs, ...