James Rumbaugh, einer der Väter der UML, hält die Frage, ob man UML oder DSLs verwendet, für akademisch. Wichtig ist für ihn, dass die Entwickler überhaupt modellieren, um die Systeme zu verstehen.
Ich stimme dem völlig zu. Aber aus der Modellierung kann man viel mehr herausholen als nur ein besseres Verständnis des Systems, das man bauen will oder seine Dokumentation. Modelle können und sollten dazu benutzt werden, um einen großen Teil des Systemcodes – wenn nicht gar alles – automatisch zu generieren. Und dafür reicht die UML einfach nicht aus. Sie ist zu allgemein.
Es gibt aber schon UML-Techniken und Derivate wie Profile und Stereotypen, die diesem Problem entgegenwirken sollen.