As opções na configuração de transformação possibilitam especificar o tipo de relacionamento que a transformação gera entre um elemento de modelo e a saída da transformação. Por padrão, a transformação não cria relacionamentos rastreáveis.
Para entender como os elementos de um modelo de origem estão relacionados aos elementos em um projeto de destino, é possível permitir que uma transformação crie relacionamentos de rastreio dos elementos de modelo de origem com os elementos gerados no projeto de destino. Depois, é possível visualizar os relacionamentos de rastreio em um diagrama de tópicos, criando e executado consultas do modelo.
A criação de relacionamentos de rastreio é útil em projetos grandes que podem conter vários modelos e várias configurações de transformação. Você também pode criar e executar consultas de rastreabilidade que exibem como a saída da transformação está relacionada às especificações de software e aos elementos de modelo.
Quando você reexecutar a transformação, se necessário, a transformação utilizará o identificador no código-fonte para combinar os elementos correspondentes e, em seguida, alterará o código para refletir as mudanças no modelo. Por exemplo, se você renomear uma operação UML no modelo de origem e reexecutar a transformação, a transformação renomeará o método Java™ gerado anteriormente e preservará o corpo do método, em vez de excluir o método gerado anteriormente e incluir um novo método.
A transformação Java–para-UML, ou reversa, também pode utilizar os identificadores para combinar elementos correspondentes entre o projeto Java e o modelo UML. Se aplicáveis, as mudanças nos elementos do código-fonte Java serão tratadas como modificações ou como refatoração de código em vez de inclusões e exclusões no código gerado.
| Elemento UML | Saída da Transformação | Relacionamento de Rastreio em um Diagrama de Classes |
|---|---|---|
![]() |
|
![]() |
A transformação não altera o modelo de origem quando você especifica para a transformação gerar relacionamentos de rastreio.
É possível orientar uma transformação para criar referências diretas entre os elementos de modelo de origem e a saída da transformação. A transformação substitui os elementos de modelo de origem por ponteiros para a saída da transformação. O código-fonte gerado pela transformação torna-se o artefato de engenharia primária e os elementos no modelo tornam-se representações visuais do código. Essa prática será útil se você desejar trabalhar no domínio de destino em vez de trabalhar com o modelo UML. As mudanças feitas nas representações visuais dos objetos no modelo ficam imediatamente visíveis no código.
A execução de uma transformação que cria referências diretas entre os elementos de modelo e a saída da transformação altera o modelo de origem. Para evitar possíveis problemas, você deve colocar o modelo de origem sob o controle de versão.
Para obter os benefícios de trabalho no domínio de destino, é necessário criar referências diretas ao fazer mudanças incrementais em um modelo UML e, então, converter o modelo em representações visuais de código. Se a transformação não puder transformar elementos UML, tais como elementos aninhados, ela moverá esses elementos para o pacote mais próximo. Se a transformação não puder mover um elemento de modelo para o pacote mais próximo, ela excluirá o elemento.
Para aprender a criar referências diretas entre os elementos de modelo e a saída da transformação, consulte o tutorial relacionado a esse tópico.