A transformação de UML em C++ converte elementos de modelo UML em código C++.
A tabela a seguir lista como a transformação de UML em C++ converte elementos de modelo UML em código C++.
| Elemento de modelo UML | Elemento de código C++ |
|---|---|
| Pacote | Pasta |
| Classe | Classe (arquivos .h e .cpp) |
| Relação de generalização | Herança de classe |
| Relação de associação | Atributo de classe |
| Propriedade | Atributo de classe |
| Enumeração | Enum (arquivo .h) |
| Operação | Operação |
| Parâmetro | Argumento de operação |
| Relacionamento de uso | Inclusão |
| Parâmetro de gabarito | Parâmetro para uma classe parametrizada |
| Relacionamento de Ligação de Gabarito | Classe instanciada (arquivo .h) |
As operações padrão são construtores, construtores de cópia, destrutores e operadores de designação. Você pode especificar qual das operações padrão é gerada pela transformação de UML em C++. Também é possível incluir um estereótipo, que representa uma das operações padrão, na operação de uma classe no modelo. A transformação de UML em C++ aplica a visibilidade da operação UML para as operações padrão geradas, mas ignora o nome e os parâmetros da operação UML. A transformação de UML em C++ gera operações padrão para uniões incluídas em um modelo UML.
A transformação de UML em C++ pode gerar apenas arquivos de código C++ para projetos C++ e pastas de projeto C++.
É possível utilizar o recurso de mapeamento para especificar nomes alternativos para os arquivos que a transformação gera sem modificar o modelo de origem. É possível especificar nomes de arquivos absolutos e relativos. Nomes de arquivos absolutos devem especificar um projeto existente. A transformação cria diretórios-pai que ainda não existem. A transformação substitui as extensões de nome de arquivo por extensões de nome de arquivo padrão do C++, como por exemplo .h ou .cpp.
A transformação baseia os nomes de diagramas de visualização UML no nome do pacote que os contém. Os artefatos de mapeamento não afetam diretamente a nomenclatura dos diagramas de visualização da UML.