tudo isso (diagramas de modelagem) é para fins de comunicação
A modelagem tem 4 usos importantes no processo de desenvolvimento de software:
Ferramenta de Design Integrado
Ferramenta de comunicação
Uma ajuda à geração de software
Uma maneira de reduzir a complexidade do problema das palavras reais (aprendi isso com a resposta de @kevin cline acima)
O processo de modelagem leva alguns designers a pensar em detalhes não considerados durante a codificação (e vice-versa). A modelagem em tempo de design permite que você considere uma imagem maior do que codificar um método ou uma classe em um idioma.
Na minha opinião, a modelagem é vital para criar bancos de dados (diagramas de ER), entender os fluxos de processos (diagramas de atividades) e entender as interações usuário-sistema (diagramas de casos de uso).
As pessoas usam a UML para fazer coisas mais sofisticadas, como geração de código ou banco de dados?
Sim, de fato. ERDs (não um diagrama UML) e diagramas de classes podem ser usados (dependendo dos recursos da sua ferramenta) para gerar:
1 - Linguagem de definição de dados (DDL)
2 - Procedimentos armazenados para diagramas de CRUD e de classe no seu idioma preferido (menos útil, pois as ferramentas ORM fazem mais sobre isso)
Entre os recursos mais valiosos das ferramentas de modelagem estão:
1 - Capacidade de manter a integridade do modelo. Se você fizer uma alteração, ela será propagada no modelo
2 - Capacidade de responder a perguntas usadas (onde a 'conta' é usada no meu modelo?)
3 - Capacidade de permitir que usuários simultâneos trabalhem no modelo
4 - Pesquisar em representações gráficas
5 - Controle de impressão
6 - Camadas (organize seus elementos do diagrama em camadas) para que você possa se concentrar em uma camada por vez
7 - Geração de código de banco de dados para vários sistemas de banco de dados
8 - Validação do modelo (verifica a consistência, falta de chaves, ciclos, etc.)
Portanto, as ferramentas de modelagem, especialmente as boas, fazem muito mais que o Paint.