O perfil C# contém vários estereótipos que podem ser utilizados para marcação
do modelo UML e controle de como ocorre a transformação de cada elemento de modelo em
código C#. Os estereótipos do perfil
são disponibilizados quando você aplica o perfil ao modelo de origem.
Você pode aplicar os estereótipos do perfil C# aos elementos de seu modelo de origem
para especificar como a transformação gera código C#. Por exemplo, quando você aplica o estereótipo «CSharp Method» a uma
operação no modelo e configura a propriedade de estereótipo virtual como true,
a transformação gera uma operação virtual.
Diretrizes para Modelar Aplicativos .NET Utilizando o Perfil C#
Utilize
as seguintes diretrizes quando criar modelos UML que representam aplicativos C#:
- O Microsoft®
Visual Studio 2005 ou Visual Studio 2008, Standard ou Professional Edition, deve estar
aberto sempre que o seu produto de modelagem
IBM®
Rational
com o Rational Modeling Extension for
Microsoft .NET
for aberto.
- Ao nomear pacotes no modelo, não utilize um ponto (.) nos nomes de
pacotes. Por exemplo, se você precisar aninhar pacotes "xtools" dentro de "ibm" dentro
de "com", em vez de nomear um único pacote "com.ibm.xtools", utilize uma estrutura de
pacote hierárquico e crie um pacote, "com", aninhando o pacote "ibm" e aninhando
"xtools". Essa notação sempre possui uma representação exclusiva e ajuda a reduzir
mensagens falsas na janela de fusão ao transformar código em
modelo.
- Aplique estereótipos C# apenas quando precisar configurar alguns valores específicos do C#
por meio das propriedades de estereótipos. Caso contrário, se o código idêntico for
gerado sem aplicar o estereótipo, a transformação C#-para-UML presumirá
que nenhum estereótipo foi utilizado durante a transformação UML-para-C# anterior e
a janela Reconciliar será aberta mostrando um delta que sugere que o estereótipo
deve ser removido do modelo UML.
- Combinações inválidas de estereótipos aplicados não são detectadas.
Evite o uso
inválido de estereótipos de perfil. Por exemplo, a aplicação de ambos, «CSharpClass» e «CSharpInterface»,
é inválida e isto resultará em um comportamento de transformação imprevisível.
- Ao modelar tipos parciais, utilize um tipo vazio como um tipo parcial, no
qual cada parte é mostrada como uma parte dependente. Inclua o tipo parcial vazio
modelado (a origem) e os tipos parciais definidos (com relações de dependência
com a origem) em um único pacote no modelo. Dessa maneira, todas as partes
do tipo parcial são definidas em um pacote no modelo. O nome da
origem será utilizado como o nome do tipo e o nome da outra parte não
será utilizado como o nome do tipo. Utilizando um modelo de mapeamento, cada parte parcial
pode ser direcionada para um arquivo diferente. Ao transformar de código para modelo,
os nomes que foram utilizados pelo usuário para cada uma das partes não são conhecidos e,
portanto, a transformação gera os nomes como [typename]_[filename],
que aparecerão como uma diferença na janela de fusão.
- Em C#, os tipos genéricos poderão ser utilizados apenas se os valores dos parâmetros
de tipo forem especificados. Construa um novo tipo para um tipo genérico ligando seus parâmetros
de tipo. Portanto, é possível utilizar uma classe List com parâmetro T utilizando List[string]. Em UML, esses tipos construídos são representados como ligações de modelo e os
nomes dos tipos não são utilizados ao transformar código em UML para gerar
o modelo temporário. Os tipos construídos são exibidos como nomes de tipo
anônimo, que serão mostrados como uma diferença na janela de mesclagem, e você deve
mapear os tipos para a ligação de modelo real no modelo de destino.