A UML ainda é usada nas trincheiras. Mas, como sempre, as pessoas usam um subconjunto dele. Qual subconjunto está sujeito aos problemas em questão.
A UML vem em várias versões. Mas, como sempre, as pessoas usam seus símbolos de maneira informal e inconstante.
UML é como entendemos muitos dos livros de padrões existentes. É também uma das maneiras de nos comunicarmos no quadro branco. Não se foi. Mas nunca será usado formalmente como código.
Em vez de produzir estudantes que possam corrigir qualquer diagrama UML para estar em conformidade com a versão 2.5 da UML , ou o que for mais recente, produza alunos que possam entender o que o diagrama está tentando se comunicar, mesmo que não seja totalmente consistente com uma versão UML específica, porque é como a UML é usada nas trincheiras. Ele vem em dialetos locais estranhos, misturados com outros sistemas, e às vezes criamos nossos próprios símbolos.
Ensine a eles que não há problema em perguntar o que as coisas significam. Não os ensine a corrigir outros que estão quebrando algumas regras imaginadas. Estamos apenas tentando nos comunicar aqui.
O melhor uso que eu já vi foi deixar um novo programador nos mostrar seu plano de resolver um problema. Ele rapidamente nos mostrou as partes do sistema que eles negligenciaram ou não perceberam que existiam.
Também trabalhei em locais que exigiam UML, mesmo quando não necessários. Estávamos sempre usando o mesmo padrão, então era apenas uma formalidade. Chegamos ao ponto em que apenas compramos novos nomes em diagramas antigos. Não incentive esse tipo de uso.
Mas acho que todos sabemos que há uma diferença entre a ponta da flecha normal e a ponta da flecha aberta. Certo?