UML diagrams have one redeeming quality: when they allow direct full-code generation. I always saw jaws dropping when demoing ArchGenXML for making Plone products.
Some of the stupidest code I've ever seen was auto-generated from UML. People get all excited by seeing code generated from a picture and forget to check if the code produced is actually sensible or not - in most cases I've seen the code produced is abominable.
That's what I liked with ArchGenXML. The code is quite good.
At least as good as code for Plone components can be. I heard it has improved a lot since I left Plone-land, but, when I worked with it, there was a required level of confusion in your code for it to work with all layers of Zope and Plone.
I assume UML diagrams can render very clean code for Django and Zope 3.