UML Reverse Engineering ... not so important in reald world project?

A nice comment from Jack for an older entry "Drawing UML diagrams in ...netbeans 5.5", motivated me to write this entry.
I use mostly UML as a whiteboard with standardized shapes and extension mechanism. The real killer-feature of every UML-tool I know (also Netbeans-UML) is the ability to provide many views to the same element in the repository. If you change the element, the changes are visible in every view (=diagram). This is the main advantage over the "Power Point" approach. It is very efficient to capture the ideas and architectural patterns (I described this in my latest book) this way - especially in case stereotypes and tagged values are "standardized" or at least well known in a group or company.
Reverse engineering of existing source into diagrams is, in my opinion, only useful in case:

  1. You need several thousands of pages (documentation), but probably no one will read them.
  2. You are trying to understand a piece of software, which comes without documentation, only source.
The first point is funny, but valid. There are still customers out there, which expect a huge amount of shiny diagrams - reverse engineering can do a great job here. The second point works rarely well - the amount of information in resulting diagramms is overwhelming. In fact it is equal with the complexity of the sourcecode.
After the creation of such diagrams, the main job is to filter out the uninteresting information.

Cloudy Jakarta EE and MicroProfile: Microservices, Clouds and Beyond Jakarta EE / MicroProfile airhacks workshops at MUC airport, Winter Edition the podcast:

Stay in touch:


A third point would be:

3. You are switching from normal development to model driven development.

Admittedly ;-) - it's not quite elegant to do this, but in some cases there is a need to start the MDSD bottom up with a model created out of your existing code...


Posted by Robert Herschke on August 06, 2007 at 03:00 PM CEST #


thanks. But your point 3. has from my perspective the number 2.5. :-).

But your are right, especially for the reverse engineering of the persistence layer, UML could be helpful,


Posted by Adam Bien on August 06, 2007 at 03:24 PM CEST #

Agreed 100%...

Posted by Fabrizio Giudici on August 07, 2007 at 09:38 PM CEST #

Post a Comment:
  • HTML Syntax: NOT allowed
Online Workshops
...the last 150 posts
...the last 10 comments