I came across this interesting criticism of UML today: Why UML fails to add value to the design and development process.
I agree with the author that UML’s lack of integration into automated lifecycle process at both the domain end and the technology end tends to make the documentation a one time island of work. However, I do not agree that domain specific products have to be developed. We do not understand sytems well enough yet to make such a conclusion.
The criticism of UML’s lack of ability to generate code is one of the reasons I am in favor of the Associative Model of Data and the Sentences ADBMS at LazySoft. The schema, form design, query design and results are all built into a single user interface that can be updated in real time and issues such as normalization and denormalization that plagues relational database integrity and performance do not exist.