I will be working on a system which will be ported over from Java to .Net. It is a pretty big system. I don't have any specifics about how the system is designed, no documentation, nothing.

You know as much about it as I do at this point. Apparently no one else does either, so I have been tasked to figure it out and then rework the system.

My question is, does anyone have any advice on the steps I should take to learn the systems design?


A useful starting point may be to reverse-engineer the code into a UML modelling tool of your choice. This will at least give you some diagrams showing the classes you have, and all their methods.

But be aware that auto-generated UML diagrams tend to be very messy. All the classes from one package will end up on one diagram. The tool will have no idea which are the important classes, rather than just helpers, so the classes will be strewn all over the place with no discernible logic. Similarly, the relationships between classes will go all over the place. Be prepared to spend some time tidying it all up.

Also, run the code through javadoc. This will at least give you some form of documentation. The quality of the documentation will depend on the quality of the comments in the original code.

  • LOL You really think there are Javadoc comments? – kevin cline Apr 1 '16 at 10:24
  • Good suggestion, it could be a nice starting point. I will accept this as a correct answer because you all have given enough resources for a great jump start. Thanks everyone! – Ortho Home Defense Apr 1 '16 at 13:07
  • @kevincline Even if there aren't any Javadoc comments, the generated document may still be useful. At least it provides a friendly, hyperlinked HTML page that shows a summary of all the classes and all their methods. – Simon B Apr 1 '16 at 14:03

You may want to look at architecture documentation techniques. I think the arc 42 template might be interesting for you: http://confluence.arc42.org/display/LANDINGZON/landing+zone

This related WIP guide might also be interesting for you: http://aim42.github.io/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.