Se você usar ambos os modelos UML e Java para planejar e desenvolver um sistema, é possível usar transformações e suas transformações reversas para mesclar e sincronizar seu trabalho.
Em Produtos de Modelagem do Rational, a funcionalidade para mesclar mudanças entre Java e UML mudado na versão 7.5.4.
Por exemplo, o seguinte caso de uso mostra um fluxo de trabalho típico e os resultados da mesclagem de mudanças de desenvolvimento entre Java e UML em versões de produto que anteriores à 7.5.4.
Se você desenvolveu seu sistema em ambos os modelos, código Java e modelos UML, normalmente você esperaria que esse fluxo de trabalho mantivesse as mudanças entre os dois sincronizadas:
Se você seguiu esse fluxo de trabalho, sua tentativa de mesclar as mudanças feitas nos elementos do modelo UML que a transformação de Java em UML gerou a partir de elementos Java que você incluiu falhará. A transformação de UML em Java não pode propagar as mudanças UML para o código Java porque os elementos Java que você incluiu manualmente não possuem as tags @generated que são necessárias para a transformação de UML em Java mesclar mudanças UML em Java. A transformação de UML em Java não substituiria o código sem as tags @generated, assim, as mudanças que você fez na UML não se mesclariam no código Java. Para contornar esse problema e sincronizar o modelo com o código, é necessário incluir manualmente tags @generated em cada novo elemento de código, e depois executar a transformação de UML em Java.
Para sincronizar suas mudanças entre Java e UML, você precisaria seguir esse fluxo de trabalho, que envolve uma etapa adicional:
Exemplo após a versão 7.5.4
Na versão 7.5.4 e posterior doProdutos de Modelagem do Rational, é possível instruir a transformação de UML em Java para substituir elementos (atributos) em código Java. Esse recurso, que você invoca clicando em Vincular Java à UML, automaticamente inclui tags @generated aos elementos Java que você criou manualmente, para que a transformação de UML em Java possa propagar as mudanças de UML para Java. Essa opção também inclui outros comentários javadoc da transformaçãoJava e preserva corpos de método existentes incluindo comentários //begin-user-code e //end-user-code. Ao clicar em Vincular Java à UML, os elementos Java são vinculados aos seus elementos do modelo UML correspondente e a transformação de UML em Java pode substituir os elementos do código de origem correspondentes. Após clicar nesse botão, transformações subsequentes se mesclam conforme o esperado porque os elementos Java são vinculados aos elementos do modelo correspondente.
Na versão 7.5.4 e posterior, esse é o fluxo de trabalho que você segue para sincronizar mudanças entre Java e UML: