DEV Community

Discussion on: Can you describe how you visualize or form mental models around your work?

Collapse
 
dwd profile image
Dave Cridland

UML gets a bad rap, as the kids say, and it's easy to forget it was carefully designed from years of experience to be the best tool people could come up with for this kind of thing.

Generating your code from UML hasn't ever taken off, but using it to document flows and structure in your code is really useful - and anyone with any experience in UML can recognise the symbology you're using instantly.

Where it falls down is in the difficulty to mesh documentation and code, and the simple fact that diagrams don't go into version control very well.

I came across PlantUML a year or so back - very late to that party. It allows developers to describe their architecture and models in a text-based declarative language, and PlantUML then spits out UML style visualisations in PNG or SVG. I've found that class diagrams, component diagrams, and sequence diagrams are amazingly useful tools to share knowledge, and the ability to place the diagram source alongside code means it can be maintained in the same step.

No more bad diagrams on a whiteboard drawn hastily!

Collapse
 
pclundaahl profile image
Patrick Charles-Lundaahl

I love PlantUML!

Also, huge +1 on UML being incredibly useful. Learning sequence diagrams was an absolute turning point for me.