A transformação C++ converte elementos de modelo UML em código C++.
A tabela a seguir mostra como a transformação C++ converte os seguintes elementos de modelo UML em código C++.
Elemento de modelo UML | C++ |
---|---|
Pacote | Pasta |
Classe | Classe (arquivos .h e .cpp) |
Relacionamento 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, destruidores e operadores de designação. É possível especificar qual das operações padrão a transformação C++ gera. 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 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 C++ gera operações padrão para uniões incluídas explicitamente em um modelo UML.
A transformação 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.