When I get closer to an unfamiliar code base, I like to start from the beginning. Find main () and write a summary of what main () does. Create a list of functions / methods called in main (). If you are visually, create a main () flowchart.
Once you have a list of methods called directly from main (), find these methods and repeat the process. When you find out what each of these methods does, write it in the JavaDoc format and paste it into the appropriate field in the flowchart. If this is an API call, indicate which API it uses and place a link to the appropriate API documentation.
Working recursively, you will create an application map and find out what the program actually does. Once you know what he is actually doing, you can find discrepancies between what he does and what he should do.
source share