In this situation, it usually helps me to run the program and find out what it does in detail. If you know the language and the platform, this will give you a good starting point. Then I start with Mine and work. I pull out a piece of paper and draw inheritance diagrams for any OO material that I find. It is best, as a rule, to work through it in an orderly manner. Then I start with the constructor and work in the order in which each method is called. Then I do the same for event handlers. Always, learn as much as you can about the general architecture before doing a lot of editing. The object browser is sometimes useful if previous authors have used the xml documentation functionality in visual studio. In the title of each class, I write down the general meaning of what this class does. I do all this before touching the code. I do not know any tools.
To ease the situation for future readers of your code. Comment on anything that is not 100% obvious. VS has a nice /// function for documentation.
source share