UML - I know next to nothing about UML - but what I do know is the language was invented first and then people came around and tried to give semantics to the language. Well, in other words what that means is that the language was invented first and it really didn't mean anything. And then, later on, people came around to try to figure out what it meant. Well, that's not the way to design a specification language. The importance of a specification language is to specify something precisely, and therefore what you write - the specification you write - has to have a precise, rigorous meaning. - Leslie Lamport
UML as a specification language is the right tool in software architecture. I find it to be very flexible tool, helping software projects or process models. However _Enterprise_ architecture need to work with the "Business" (consider COSO, COBIT, ITIL, and why they emerged when UML foundations were already so strong).