| I'm working a lot with a huge legacy codebases in C/C++. Here are some advices: 1. Be sure what you can compile and run the program 2. Have good tools to navigate around the code (I use git grep mostly) 3. Most of the app contain some user or other service interaction - try to get some easy bit (like request for capabilities or some simple operation) and follow this until the end. You don't need a debugger for it - grep/git grep is enough, these simple tools will force you to understand codebase deeply. 4. Sometimes writing UML diagrams works - - Draw the diagrams (class diagrams, sequence diagrams) of the current state of things - Draw the diagrams with a proposal of how you would like to change 5. If it is possible, use a debugger, start with the main() function. |
I found myself doing this more often and find it very useful. I've been using Freemind and it seems to do the trick. http://freemind.sourceforge.net/wiki/index.php/Main_Page