Um nome de objeto UML válido começa com uma letra minúscula de a a z, uma letra maiúscula de A a Z ou um underscore (_). Os caracteres subsequentes de um nome válido podem ser uma letra minúscula de a a z, uma letra maiúscula de A a Z ou um número de 0 a 9. Também é possível utilizar dois pontos (:) em um nome de operação para digitar os nomes apropriados para as funções amigas.
A transformação prefixa qualquer nome que comece com um número, assim como substitui todos os caracteres inválidos com um underscore (_).
A transformação verifica a exclusividade de nomes em um espaço de nomes relevante. Os espaços de nomes podem ser indicados (por exemplo, uma classe para os atributos na classe) ou explícitos (definidos pelo estereótipo cpp_namespace).
Se a transformação detectar uma colisão de nomes, o nome duplicado recebe o sufixo "_<number>".
O seguinte aviso é exibido se a transformação localizar um nome inválido:
Elemento "..." foi renomeado para "..."
Enquanto a transformação gera o código correto para tais elementos, você deve alterar no modelo de UML quaisquer nomes inválidos que a transformação detectar para aprimorar a capacidade de leitura do código e reduzir as diferenças entre o modelo de UML e o código gerado.