Você pode especificar os elementos de modelo que a transformação deve converter em código C# ao criar ou editar uma configuração de transformação. Uma mensagem de erro será gerada pela transformação se você selecionar um contêiner e seus elementos de modelo ou o mesmo elemento de modelo duas vezes.
Os nomes dos elementos de origem UML podem começar com uma letra minúscula, letra maiúscula ou um sublinhado (_). Os caracteres subseqüentes podem ser letras minúsculas, letras maiúsculas ou números. A transformação prefixa um nome que começa com um número ou um caractere inválido com um sublinhado (_).
Para melhorar a capacidade de leitura do código gerado e minimizar as diferenças entre o modelo UML e o código gerado, você deve corrigir nomes inválidos no modelo UML de origem antes de aplicar a transformação.
Um destino de transformação válido é um projeto C# importado do Visual Studio. Se você criar um novo contêiner de destino, iniciará uma importação de solução do .NET. A solução do .NET deve ser aberta no Visual Studio para ser importada.
A tabela a seguir lista como a transformação UML-para-C# transforma elementos de modelo UML em código C#. Alguns elementos UML podem ser transformados em vários elementos de código com o estereótipo correto aplicado.
| Elemento de Modelo UML | Elemento de Código C# |
|---|---|
| Relacionamento de associação | Atributo de classe |
| Classe | Classe, estrutura ou delegação |
| Enumeração | Enum |
| Relacionamento de generalização | Herança de classe |
| Operação | Método ou indexador |
| Pacote | Espaço de Nomes |
| Parâmetro | Argumento de método |
| Propriedade | Atributo de classe, propriedade C# ou evento |
Os pacotes UML em um modelo UML com nomes contendo pontos ou espaços são transformados em espaços de nomes C# com nomes contendo sublinhados. Esse comportamento de transformação preserva um espaço de nomes único para os elementos contidos. Por exemplo, suponha que um pacote UML, com.ibm.samples, contenha uma classe nomeada C1. Após a aplicação da transformação UML-para-C#, um artefato C# representando a classe UML C1 é declarado no seguinte espaço de nomes:
namespace com_ibm_samples
Em instâncias nas quais você deseja criar três espaços de nomes, é necessário criar três pacotes separados no modelo UML, por exemplo: com, ibm e samples. Neste caso, com é a pasta pai contendo a pasta ibm, e ibm contém a pasta samples. O resultado após a transformação é uma série de espaços de nomes aninhados no código.
O modelo de mapeamento pode ser utilizado para gerar pastas de pacotes UML e para controlar a saída de classes e outros artefatos. Por exemplo, você pode utilizar o modelo de mapeamento para gerar várias classes C# em um único arquivo.
A transformação gera arquivos de código C# nos projetos e pastas de projetos C# que são especificados como o destino da transformação.
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.