adam bien's blog

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.