A origem especificada na configuração de transformação deve ser criada utilizando-se o C/C++ Development Tools (CDT).
| DCMP | objetos de origem C++ |
|---|---|
| Modelos Concretos de Valor Inicial de Modelos Conceituais | É possível selecionar um ou mais dos seguintes itens em um ou
mais projetos C++:
|
| Desenvolvimento de Unidade de Modelos Conceituais | |
| Modelagem Reconciliada | É possível selecionar os seguintes itens:
Se você selecionar um item que não seja um projeto C++, a transformação reversa, ou UML em C++, determina o projeto C++ do primeiro item que ela processa. A transformação reversa gera sua saída nesse projeto C++. |
Se você selecionar elementos C++ na visualização Explorador de Projetos em vez de usar o editor de Configuração de Transformação, os elementos de origem que você selecionar substituem o projeto de origem ou os elementos que são especificados na configuração de transformação. A configuração de transformação não é afetada e a origem especificada na página Origem e Destino do editor de configuração de transformação ou no assistente de Nova Configuração de Transformação não é alterada.
Um destino de transformação válido é um modelo UML, arquivo de modelo UML ou pacote de nível-raiz em um modelo UML.
Não é possível criar modelos de mapeamento para a transformação de C++ em UML. No entanto, se a configuração de transformação implementar o Modelagem Reconciliada DCMP, você poderá configurar a transformação reversa, ou de UML em C++, para criar modelos de mapeamento que possibilitem a especificação de nomes de arquivos alternativos para a saída gerada.
A transformação de C++ em UML utiliza os modelos de mapeamento para determinar o nome apropriado dos elementos UML gerados. Por exemplo, um modelo UML contém o PackageA, e o PackageA contém a Class1. Ao criar um modelo de mapeamento para a transformação de UML em C++, é possível especificar que Class1 tenha um nome de arquivo alternativo MappedClass1. Ao executar a transformação de UML em C++, ela gera arquivos C++ chamados PackageA.MappedClass1.cpp e PackageA.MappedClass1.h. Ao executar a transformação de C++ em UML, a transformação determina que o caminho de UML original para o elemento C++ é PackageA.Class1 e gera uma classe UML chamada Class1 em um pacote UML chamado PackageA.
Se o nome do arquivo de artefato especificado no modelo de mapeamento não for um nome de arquivo C++ válido, a transformação modificará o nome do arquivo quando criar o elemento de código C++. Por exemplo, se o modelo de mapeamento especificar um nome de arquivo alternativo "Mapped Class1", em vez de MappedClass1, a transformação gerará um arquivo C++ chamado Mapped_Class1.cpp. A transformação não mantém um registro dessas modificações, portanto, a transformação de C++ em UML não pode mapear o arquivo Mapped_Class1 para o elemento UML original. Nesse exemplo, a transformação de C++ em UML transforma o objeto de origem C++ Mapped_Class1 em uma classe UML chamada Mapped_Class1, em vez de Class1.
A transformação de C++ em UML utiliza a funcionalidade de comparação e mesclagem para determinar as diferenças entre o modelo de destino e o modelo temporário geradas pela transformação. Ao executar a transformação de C++ em UML, o editor de mesclagem exibe as diferenças entre os dois modelos. Na caixa de diálogo do editor de mesclagem, você pode selecionar as alterações mescladas pela transformação no modelo de destino.
A transformação fornece funcionalidade de integração com os sistemas de controle de versão IBM® Rational Team Concert, CVS, Rational ClearCase, e Rational ClearCase LT, que possibilita efetuar o registro de saída dos arquivos automaticamente ou incluir novos arquivos. É necessário ativar os recursos de equipe para trabalhar com os sistemas de gerenciamento de configuração.