UML ist eher was für Großprojekte, wo einer Vielzahl von Entwicklern vermittelt werden muss wo die Glocken hängen, und wo ein Koordinationsteam eine Gesamtübersicht über ein komplexes Geflecht wahren muss. Man wird sowas daher auch öfter in Visio oder auf Flipcharts in Meetings antreffen, als denn als wirkliches Designwerkzeug mit unmittelbarer Auswirkung auf Code - wobei es solche Mechanismen auch gibt, und sie teils auch verwendet werden.
Nicht selten werden aber eher unternehmensspezifische "
UML-Dialekte" verwendet, die auf jeweilige Besonderheiten Rücksicht nehmen, so dass ein einheitlicher Standard eher nur oberflächlich angewendet wird. Das erschwert natürlich die Nutzung von Tools, die idR ja diesen Standards genügen (aber selten davon abweichend "belehrt" werden können (sollen)). Sie sind, finde ich, dann nützlich, wenn sie eine Struktur kürzer und mehr Leuten illustrieren können, als das verbal möglich wäre.
Da die Erstellung und Pflege (vor allem das auf dem aktuellen Stand halten) jedoch meist einen ziemlichen Overhead erzeugen, wird auch gerne mal darauf verzichtet. Ich halte es mehr für eine Dokumentationsart, und selbst bei den besten automatischen
UML<->Code Engines ist meist noch sehr viel manuelle Bearbeitung nötig. In meinem Job habe ich damit z.B. kaum zu tun, da die Programme strukturell sehr simpel sind, und die Tür-zu-Tür Kommunikation zwischen 2-3 Entwicklern mit einer schriftlichen internen Doku effizient genug ist, und in der bestehenden Infrastruktur keinen zusätzlichen Overhead einführt.
Als Design-Tool mit Autocode taugt
UML eigentlich nur bei Standardprogrammen, deren Struktur und Funktion
komplett festgelegt werden kann, bevor auch nur eine Zeile Code geschrieben ist. Hat sowas schon mal jemand gesehen?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)