Bem não sou completamente contra a UML, acho ate uma ferramenta bastante interessante para lhe mostrar seu sistema como um todo.
Na minha opinião existe uma grande mania de cartório no Brasil, tudo tem que ser documentado, tudo com muita burocracia, sem falar na visão da indústria que existe o analista de sistemas todo poderoso e seus implementadores, que são responsáveis em pegar aquele diagrama e implementar todos os métodos ali definidos, mas desde quando a UML descreve mecanicamente como os métodos irão funcionar, até posso concordar que ela descreve os métodos, mas quem hoje programa sem os milhares do frameworks existentes EJB3, Hibernate, Castor, AOP, etc… a UML irá tratar tudo isto para você
O grande ponto que quero chegar é analista de sistemas, não e analista de negócios, na minha cabeça nem existe esse tal analista de sistemas, o que seria este cara um programador que resolve negócios, o que tenho visto na maioria das empresas onde eu passo e um cara que levanta requisitos, fica hora e horas desenvolvendo um modelo do sistema, que em muito em breve não servirá mais para nada, e passa tudo para seus estagiários e programadores Junior resolver.
Hoje visitei uma empresa, que já prestei consultoria em Java a algum tempo atrás eles estavam justamente discutindo isto em uma reunião, hora porque não conseguimos aproveitar os códigos em Java feitos no passado, se Java prover isto, hora justamente porque em nenhum momento tive um arquiteto de software para pensar como as coisas poderiam ser reaproveitadas, perdi horas e horas nos meus modelos que hoje são totalmente desatualizados mais nunca pensei em integrar, como reutilizar meu código, ai sempre escuto há mais não a tempo para pensar em tantas coisas, não da porque você está engessado em sua metodologia, por que documenta tanto que mal sobra tempo para implementação do produto, documente somente o necessário, as metodologias ágil estão ia para isto, comunicação e chave para tudo, na minha visão a UML e uma forma bacana de comunicação, mas ela não será implementada, e muito menos testada, se fosse não programaríamos em C#, Java, e sim em OCL.



