UML: TIP: code as though it were actually forward engineered from an advanced executable UML tool !

This will make reverse-engineering much easier, and guide your disciplined coding. It promotes model-driven (or at least model-oriented) development and synchronicity between reverse-engineered and forward-engineered systems.

Dr Darren explains:

I mean not only correspondence between UML and your code signatures (framework); I mean also the implementation !

I don't mean that you should code using number plates as variable names; I mean code with the graphical and associative parts of your brain activated, and in awareness of the possible relationships between elements of code and UML elements and diagrams.