IBM Rational Modeling Extension para Microsoft .NET, Versão 7.0: Notas sobre o Release

ID do Material: G517-8927-00

© Copyright International Business Machines Corporation 2007. Todos os direitos reservados. Direitos Restritos para Usuários do Governo dos Estados Unidos - Uso, duplicação e divulgação restritos pelo documento GSA ADP Schedule Contract com a IBM Corporation.

Conteúdo

1.0 Sobre este Release
2.0 Informações sobre Instalação
   2.1 Antes de instalar
   2.2 Instalação
3.0 Orientações para Modelar Aplicativos C#
   3.1 Orientações para Modelar Aplicativos .NET Usando o Perfil C#
   3.2 Como Modelar Operadores Sobrecarregados
4.0 Problemas e Limitações Conhecidos
   4.1 Não Há Sinalizadores Indicando Código Incorreto no RME
   4.2 Práticas Recomendadas e Limitações para Utilização do Rational Modeling Extension para Microsoft .NET
   4.3 Nomes de Tipos Totalmente Qualificados São Gerados para Elementos Declarados no Mesmo Arquivo de Origem que o Tipo
   4.4 Caracteres Unicode no Modelo não São Suportados
   4.5 O Tour "Transformando Elementos de Modelo de UML em C#" não Está Disponível a partir de Boas-vindas
   4.6 A Nova Execução da Transformação de UML em C# Pode Corromper o Código Gerado
   4.7 O Modelo Importado XDE Mostrará Várias Diferenças de Fusão Quando a Transformação de C# em UML for Executada
   4.8 O Tipo Correto (se o Tipo For de Montagem) Não Está Definido para Propriedades UML Estereotipadas
   4.9 O Arquivo de Modelo de Destino Referente a C# em UML Não Deve Conter #
   4.10 Exceção de Ponteiro Nulo Durante a Transformação de C# em UML com um Modelo de Destino Importado XDE com um Modelo de Mapeamento
   4.11 O Foco é Deslocado para o Modelo Recém-criado Quando o Modelo é Criado com o Uso do Botão "Criar Contêiner de Destino"
   4.12 A Execução Repetida da Transformação de UML em C# com Diferentes Modelos de Mapeamento Pode Corromper o Código Gerado.
   4.13 A Reaplicação da Transformação de UML em C# com a Tag @generated Removida Pode Incluir uma Tag URI Extra
   4.14 A Reaplicação da Transformação de UML em C# Depois de Alterar o Tipo de Atributo C# no Código e de Remover as Tags @generated Correspondentes Inclui um Configurador Extra
   4.15 Literais de Enumeração Não São Substituídos pela Transformação de UML em C# com a Opção "Substituir Elementos UML"
   4.16 O Importador de Modelos de Códigos XDE Pode Não Migrar Configuradores de Indexadores Corretamente
   4.17 A Transformação de UML em C# Não Substitui Elementos UML no Modelo Quando um Modelo de Mapeamento for Usado
   4.18 Importador de Modelos de Códigos C# XDE: Melhorar o Desempenho Excluindo os Modelos de Montagens Residuais Após a Conclusão das Importações.
   4.19 A Mesclagem no Modelo de Destino Falha no Modo Silencioso Quando Todas as Outras Opções na Configuração de Transformações são Selecionadas
   4.20 O Diálogo de Fusão Mostra Alterações Inválidas para Renomear Parâmetros referentes a Operadores Sobrecarregados
   4.21 Uso do Modelo de Mapeamento
   4.22 O Modelo de Mapeamento Ficará Corrompido se a Transformação UML2C# For Desfeita Depois de Ser Executada com "Modelo de Mapeamento" Ativado e com a Opção "Substituir Elementos UML" Marcada.
5.0 IBM Rational Software Support
6.0 Avisos e Marcas Registradas

1.0 Sobre este Release

A versão mais recente deste documento está disponível em
http://download.boulder.ibm.com/ibmdl/pub/software/rationalsdp/v7/rme/70/docs/readme/readme.html.

O IBM® Rational® Modeling Extension para Microsoft®  .NET é uma extensão de modelagem C# e CTS para produtos de modelagem Rational UML. Essa família de ferramentas de design e de desenvolvimento é construída sobre a estrutura Eclipse de software livre. O software Modeling Extension para Microsoft .NET inclui plug-ins que permitem aos arquitetos de software e aos desenvolvedores direcionados para modelos visualizarem aplicativos C# e tipos CTS, além de criarem código C# construído corretamente com a utilização da UML 2 (Unified Modeling Language). 

O Rational Modeling Extension para Microsoft .NET permite:

2.0 Informações sobre Instalação

Para obter os detalhes mais recentes sobre requisitos de instalação, consulte a versão atualizada deste arquivo leia-me em: http://download.boulder.ibm.com/ibmdl/pub/software/rationalsdp/v7/rme/70/docs/readme/readme.html.

Você também pode visualizar o guia de instalação referente ao seu produto a partir da barra de lançamento da instalação e no diretório de documentos do CD do produto.

2.1 Antes de Instalar

O Rational Modeling Extension para Microsoft .NET requer o IBM Installation Manager v1.0.0.2 ou posterior e o IBM Rational Software Architect, o IBM Rational Software Modeler ou o IBM Rational Systems Developer, versões 7.0.0.1. A instalação do software não continuará se as versões necessárias não forem instaladas.

2.2 Instalação

Para obter informações sobre a instalação do IBM Rational Modeling Extension para Microsoft .NET, Versão 7.0, consulte as instruções de instalação na Web em http://download.boulder.ibm.com/ibmdl/pub/software/rationalsdp/v7/rme/70/docs/install_instruction/install.html.

Também é possível visualizar o guia de instalação de seu produto a partir da barra de lançamento da instalação e no diretório de documentos do primeiro CD do produto.

O software de extensão de modelagem pode ser instalado no build de GA do IBM Rational Software Architect v7.0.0.1, do IBM Rational Software Modeler v7.0.0.1 ou do IBM Rational Systems Developer v7.0.0.1. O procedimento a seguir fornece uma visão geral do processo de instalação. Para obter instruções mais detalhadas, consulte o IBM Rational Modeling Extension para Microsoft .NET: Guia de Instalação.

Para instalar:

  1. Assegure-se de que um produto de modelagem Rational UML, conforme especificado anteriormente, esteja instalado.
  2. No IBM Installation Manager, selecione com qual produto host a extensão de modelagem será instalada.
    O shell de extensão de modelagem é compartilhado com o produto host e utiliza a mesma instância do Eclipse.
  3. Siga o assistente do Installation Manager para concluir a instalação da extensão de modelagem.

3.0 Orientações para Modelar Aplicativos C#

Essas notas sobre o release incluem informações que não estavam disponíveis até após a finalização da documentação do produto. Use as melhores práticas e orientações a seguir ao modelar aplicativos .NET usando o perfil C#.

3.1 Orientações para Modelar Aplicativos .NET Usando o Perfil C#

1. O Visual Studio 2005 Standard ou Professional Edition deve ser aberto sempre que o produto de modelagem Rational UML com a extensão for aberto.  

Nota: O Guia de Instalação lista o "Visual Studio 2005" como um requisito de software.  Isso foi corrigido para "Visual Studio 2005, Standard Edition ou Professional Edition." Não há suporte para as edições Express.

2. Utilização de modelos anteriormente importados do Rational XDE para o Rational Software Architect versão 6.x

Se você tiver modelos que foram anteriormente importados do Rational XDE para o Rational Software Architect versão 6.x e tiver migrado (ou planeja migrar) esses modelos para o Rational Software Architect versão 7.0.0.1 e também usar a extensão, também deverá ter instalado o recurso Rational XDE Model Import do Rational Software Architect. 

3. Ao nomear pacotes no modelo, não use o ‘.’ (ponto) em nomes de pacotes. Por exemplo, se você precisar de pacotes aninhados ‘xtools’ em ‘ibm’ em ‘com’, em vez de nomear um único pacote “com.ibm.xtools”, use a estrutura hierárquica de pacotes e crie um pacote, “com,” que aninhe o pacote “ibm”, que, por sua vez, aninhe “xtools”. Essa notação sempre tem uma representação exclusiva e ajudará a reduzir falsas alterações de união ao transformar código em modelo.

4. Aplique estereótipos C# somente quando for necessário configurar alguns valores específicos de C# por meio das propriedades de estereótipos. Caso contrário, se o código idêntico tivesse sido gerado sem a aplicação do estereótipo, a transformação de C# em UML assumirá que nenhum estereótipo foi usado durante a transformação de UML em C# anterior e a janela Reconciliar será aberta, mostrando um delta que sugere que o estereótipo deve ser removido do modelo UML.

5. No momento, o perfil C# não define restrições e, portanto, as combinações inválidas de estereótipos aplicados não são detectadas. Evite o uso inválido de estereótipos de perfis. Por exemplo, a aplicação de <<CSharpClass>> e de <<CSharpInterface>> é inválida e resultará em um comportamento de transformação imprevisível.

6. Ao modelar tipos parciais, o usuário deve usar um tipo vazio como tipo parcial no qual cada parte aparece como 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 pacote único no modelo. Desta forma, 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. Com a utilização do modelo de mapeamento, cada parte pode ser direcionada para um arquivo diferente. Durante a transformação de código em modelo, os nomes utilizados pelo usuário para cada uma das partes não são reconhecidos e, conseqüentemente, a transformação gerará os nomes como <nome_de_tipo>_<nome_do_arquivo> que aparecerão como uma diferença no diálogo de fusão.

7. Em C#, os tipos genéricos apenas poderão ser usados se especificarmos os valores para parâmetros de tipos; ou seja, devemos construir um novo tipo para um tipo genérico ligando seus parâmetros de tipo. Portanto, uma classe List com o parâmetro T pode ser usada com o uso de List<Cadeia>, etc. Na UML, esses tipos construídos serão representados como ligações de modelos e nomes desses tipos, não ao transformar código em UML, para gerar o modelo temporário. Portanto, os tipos construídos aparecerão como nomes de tipo anônimo que mostrarão como diferenças no diálogo de fusão, e o usuário precisará mapeá-los para a ligação de modelo real no modelo de destino.

3.2 Como Modelar Operadores Sobrecarregados

Os operadores sobrecarregados são modelados como operações. Por exemplo, suponha que você espere sobrecarregar os dois operadores a seguir no contexto da classe C1 e deseje modelar esta tarefa com o Modeling Extension para Microsoft .NET.

Igual (==)
Diferente (!=)

As etapas a seguir descrevem como o sobrecarregamento de operadores pode ser modelado utilizando esse exemplo.

Pré-requisitos:
Um modelo UML deve ter sido criado ou aberto.

Para modelar os operadores sobrecarregados:

  1. Crie uma nova classe no modelo UML denominada C1.
  2. Inclua uma nova operação na classe C1 e denomine-a de operador !=. Esse operador conterá a implementação para o operador sobrecarregado !=.
  3. Defina o operador da seguinte forma.
    a.  Configure a visibilidade da operação recém-criada para Pública.
    b.  Configure os qualificadores da operação recém-criada para Estático.
    c.  Configure o tipo de retorno da operação recém-criada para <Tipo Primitivo>booleano.
    d.  Inclua dois parâmetros do tipo C1 na operação recém-criada e denomine-os c1 e c2.
  4. Inclua outra operação na classe C1 e denomine-a de operador ==. Esse operador conterá a implementação para o operador sobrecarregado ==.
  5. Defina o operador como na etapa 3.

A modelagem do operador sobrecarregado != e == no contexto da classe C1 está concluída.

4.0 Limitações, Problemas e Soluções Alternativas Conhecidos

Essas notas sobre o release incluem informações específicas do release, como problemas e limitações que foram disponibilizados após a finalização da documentação do produto.

4.1 Não Há Sinalizadores Indicando Código Incorreto no RME

O usuário não recebe notificação do software de extensão de modelagem de que o código importado não foi compilado corretamente. Se o projeto C# importado contiver código com erros de sintaxe, o sinalizador que indica erros no software de extensão de modelagem não será exibido no Explorador de Projetos ou nos diagramas do visualizador.

Solução Alternativa: Certifique-se de que o código C# seja compilado com êxito no Visual Studio .NET antes de qualquer transformação e antes de importá-lo para o Modeling Extension para o Microsoft .NET.

4.2 Práticas Recomendadas e Limitações para o Uso do Rational Modeling Extension para Microsoft .NET

  1. Verifique se o Sistema Operacional, os Service Packs e o Visual Studio 2005 Standard ou Professional Edition corretos estão instalados no sistema antes de instalar ou de executar o Modeling Extension para Microsoft .NET.
  2. O Modeling Extension para Microsoft .NET apenas reconhece e se comunica com a primeira instância do Visual Studio 2005 aberta.  Apenas execute uma instância do Visual Studio por vez em uma máquina em que o Modeling Extension para Microsoft .NET esteja sendo usado. 
  3. Nunca feche ou abra uma solução diferente (a não ser a importada) no Visual Studio quando o Modeling Extension para Microsoft .NET estiver em execução.
  4. Sempre mantenha uma instância do Visual Studio 2005 aberta; o Modeling Extension para Microsoft .NET apenas identificará e se comunicará com a primeira instância do Visual Studio 2005.
  5. Quando uma solução for importada para o Modeling Extension para Microsoft .NET, ela criará projetos Eclipse no espaço de trabalho do Eclipse para cada projeto C# correspondente que estiver presente na solução. O projeto criado no Eclipse terá o mesmo nome que o projeto C# na solução Visual Studio 2005. A seguir, pontos importantes a serem observados sobre os projetos:
    1. Os projetos criados no Eclipse terão links para os arquivos C# e as Montagens .NET usadas pelos projetos C# correspondentes na solução Visual Studio 2005. Esses links são a única maneira de o Modeling Extension para Microsoft .NET recuperar, atualizar e mostrar informações sobre os projetos Visual Studio 2005 e seu conteúdo no Eclipse. De fato, eles agem como uma visualização para os projetos C# no Eclipse.
    2. Com exceção de usar as transformações UML-C#, evite usar mecanismos do Eclipse para modificar os projetos importados. O uso de mecanismos do Eclipse para renomear esses projetos ou modificar seu conteúdo pode gerar resultados imprevisíveis. Em específico, evite criar ou incluir modelos UML (.emx) ou arquivos de diagrama (.dnx) nos projetos. Em vez disso, crie projetos separados (como o Projeto UML) no Eclipse para essas finalidades. Certo cuidado é necessário para evitar a criação de arquivos de diagrama (.dnx) dentro dos projetos importados, pois, à medida que novos diagramas forem criados, a estrutura de visualização assumirá como padrão seus locais para ser os projetos em que residem os elementos visualizados.
    3. É possível fechar e reabrir com segurança os projetos importados. Também é possível excluí-los com segurança, mas não “remova o conteúdo subjacente” (se for realmente necessário excluir um projeto do Visual Studio e todo o seu conteúdo, faça isso a partir do Visual Studio).
  6. Depois que a solução Visual Studio 2005 for importada no Eclipse, evite renomear os projetos C# no Visual Studio 2005. Se for necessário renomear um projeto , siga estas etapas:
    1. Exclua o projeto Eclipse correspondente (importado) (mas não “remova o conteúdo subjacente”).
    2. Renomeie o projeto no Visual Studio.
    3. Reimporte a solução Visual Studio (a solução Modeling Extension para Microsoft .NET pode importar incrementalmente a solução; esse recurso também é útil ao importar projetos C# recém-incluídos na solução Visual Studio 2005.
  7. Antes de desempenhar ações no Modeling Extension para Microsoft .NET, certifique-se de que os projetos C# não contenham erros de sintaxe e de que sejam compilados com êxito no Visual Studio 2005. O Modeling Extension para Microsoft .NET usa as APIs de Modelo de Código do Visual Studio para analisar os arquivos C#. Essas APIs retornarão resultados incorretos e valores NULL se houver erros nos arquivos C#. Por exemplo, se você alterar um arquivo C# no Visual Studio, em seguida, atualize seu projeto no Eclipse e você verá que o arquivo não pode ser expandido no Project Explorer. Isso poderá acontecer porque erros de sintaxe C# foram introduzidos pela alteração.

    A solução recomendada é alternar para o Visual Studio 2005, corrigir todos os erros de sintaxe, reconstruir a solução e atualizar o projeto importado no Eclipse para obter as alterações. É particularmente importante que as soluções Visual Studio estejam em um estado evidente e construído ao aplicar transformações.
  8. O Modeling Extension para Microsoft .NET usa um mecanismo COM para sincronização com o Visual Studio 2005.  As chamadas COM podem falhar ou podem ser rejeitadas quando o Visual Studio estiver ocupado.  Não trabalhe no Visual Studio 2005 nem o torne ativo ao desempenhar as seguintes operações no Modeling Extension para Microsoft .NET:
    • Importar soluções .NET
    • Atualizar projetos
    • Expandir projetos ou arquivos no Project Explorer (por exemplo, expandir a visualização em árvore)
    • Inicializar o Modeling Extension para Microsoft .NET em um espaço de trabalho no qual uma solução Visual Studio 2005 foi anteriormente importada
    • Compor um diagrama de visualização .NET
    • Executar uma transformação de UML em C# ou de C# em UML
  9. Se você não planeja explorar o conteúdo de tipos definidos nas montagens de estruturas .NET (por exemplo, para descobrir quais operações ou campos contidas no tipo), use a opção "Ao analisar as montagens .Net, obter apenas tipos", ao importar a solução Visual Studio 2005 para o espaço de trabalho Eclipse. Essa opção está disponível na primeira página do .NET Solution Import Wizard. Isso acelera a importação da solução e também acelera a  visualização de tipos C# e .NET.
  10. No Visual Studio 2005, sempre ative a opção para carregar automaticamente as alterações. Marcar a caixa “Carregar Alterações Automaticamente", disponível na página Ambiente-> Documentos da janela Opções, ativa essa opção. Ela pode ser aberta por meio de “Ferramentas-Opções->Ambiente->Documentos->Detectar quando um arquivo tiver sido alterado fora do ambiente ->Carregar Alterações Automaticamente, se salvas”.
  11. É possível alterar a codificação de projetos C# por meio do Eclipse selecionando-se a opção Propriedades no menu de contexto dos projetos importados. Observe que essa codificação levará mais tempo do que o normal, uma vez que projetos Visual Studio são maiores.

4.3 Nomes de Tipos Totalmente Qualificados São Gerados para Elementos Declarados no Mesmo Arquivo de Origem que o Tipo

Quando uma classe/estrutura/interface aninhada for utilizada para definir o tipo de um elemento em uma classe/estrutura/interface externa, o nome do tipo incluirá o nome dos tipos externos, embora o tipo e o elemento estejam definidos na mesma classe.   Não há solução alternativa conhecida neste momento.  O problema será resolvido em uma versão futura.

Por exemplo, o seguinte modelo:

- OuterClass
    + InnerClass
         + attribute1 : InnerClass

Gerará o seguinte como parte do código gerado para InnerClass, dentro de OuterClass.cs:

private OuterClass.InnerClass attribute1;

4.4 Caracteres Unicode no Modelo Não São Suportados

Após a transformação de caracteres Unicode presente em um modelo UML, como nomes de classes, a documentação, etc, não é suportada neste release. Todos os caracteres Unicode serão gerados como '?' nos arquivos C# correspondentes.

4.5 O Tour "Transformando Elementos de Modelo de UML em C#" Não Está Disponível a partir de Boas-vindas

Quando o Modeling Extension para Microsoft .NET é instalado com o IBM Rational Software Modeler, o tour de viewlet que demonstra os recursos do Modeling Extension para Microsoft .NET não está disponível em Boas-vindas clicando-se em Visão Geral > Abordagens de modelagem diferentes... > Mais sobre transformações de modelos. O tour está disponível na Galeria de Tutoriais.

Para visualizar o tour no Rational Software Modeler, clique em Ajuda > Tutoriais, expanda Tours e clique em Transformando modelos UML em código C#. Clique em Iniciar tour para ativar o viewlet.

4.6 A Nova Execução da Transformação de UML em C# Pode Corromper o Código Gerado

Em alguns casos, ao executar novamente uma transformação de UML em C# com as opções de mapeamento e criação de relacionamentos de origem para destino, o código gerado é corrompido. Por exemplo, pode haver um "/" ausente em comentários de código e outros erros de códigos.

Isso ocorre quando o relacionamento de manifesto está se movendo entre artefatos, de forma que o uso possa combinar o código em um arquivo .cs ou o código separado em dois arquivos.

Esse problema será corrigido em um release futuro.

4.7 O Modelo Importado XDE Mostrará Várias Diferenças de Fusão Quando a Transformação de C# em UML for Executada

Na primeira vez que uma transformação de C# em UML for executada em um modelo de código XDE importado, a caixa de diálogo de reconciliação mostrará várias diferenças relacionadas a estereótipos. Isso ocorre porque os estereótipos relacionados ao XDE no modelo importado não são reconhecidos pela transformação de C# em UML.  Esse problema será corrigido em um release futuro.

Solução Alternativa: 
Desempenhe uma transformação de "limpeza" ocasional logo depois de importar o modelo de código XDE (antes de fazer qualquer alteração no modelo ou no código).  Execute a transformação de C# em UML.  Quando o diálogo de reconciliação aparecer, aceite todas as alterações sugeridas em favor do modelo temporário (o modelo mostrado na área de janela esquerda). Isso resultará na remoção de estereótipos do modelo preservado de forma que as execuções subseqüentes da transformação de C# em UML deixem de relatar as diferença.

4.8 O Tipo Correto (se o Tipo For de Montagem) Não Está Definido para Propriedades UML Estereotipadas

Considere um modelo que contém propriedades UML estereotipadas como <<CSharpProperty>>, <<CSharpField>>, etc cujo tipo não esteja definido e cujo código de origem especifique tipos a partir de montagens como tipos de dados para esses elementos. Se a transformação de C# em UML for executada nesse código e nesse modelo de destino, em seguida, a fusão mostrará corretamente o tipo de dados (que será um vizref UML) que será configurado para o elemento; mas, após a conclusão da operação, o tipo de dados estará ausente para esses elementos (nulo). Esse é um problema conhecido e será corrigido em um release futuro.

4.9 O Arquivo de Modelo de Destino Referente a C# em UML Não Deve Conter "#"

Se o nome de um arquivo de modelo contiver um símbolo # e for especificado como o destino de uma transformação para C# em UML, a caixa de diálogo de fusão não conseguirá mostrar as 2 áreas de janela com o modelo temporário e de destino para mesclar as diferenças. Esse problema será corrigido em um release futuro.

4.10 Exceção de Ponteiro Nulo Durante a Transformação de C# em UML com um Modelo de Destino Importado XDE com um Modelo de Mapeamento

Se um modelo importado XDE for especificado como destino de uma transformação de C# em UML e também o modelo de Mapeamento for especificado na configuração de transformação, a transformação de C# em UML falhará com uma Exceção de Ponteiro Nulo. Esse problema é percebido apenas para modelos importados XDE com o modelo de mapeamento.

Solução alternativa:
Exclua o pacote <<Artefatos>> do modelo importado e execute a transformação. A exclusão do pacote de artefatos não causa a perda de informações, pois o modelo de mapeamento terá informações sobre vários arquivos, etc. O problema será corrigido em um release futuro. 

4.11 O Foco é Deslocado para o Modelo Recém-criado com o Uso do Botão "Criar Contêiner de Destino"

Se um modelo de destino for criado com o uso do botão Criar Novo Contêiner de Destino no editor de configurações de transformação, em certas ocasiões, o foco será transferido para o modelo recém-criado e o novo modelo não será selecionado na área de janela de destino (em que a transformação de C# em UML é a transformação progressiva).

Solução alternativa:
Alterne manualmente para o editor de configuração e selecione o modelo de destino. Esse é um problema conhecido e será corrigido em um release futuro. 

4.12 A Execução Repetida da Transformação de UML em C# com Diferentes Modelos de Mapeamento Pode Corromper o Código Gerado.

Se uma transformação de UML em C# for executada com um modelo de mapeamento modificado de forma que resultar na exclusão de um arquivo e se o usuário optar por excluir o arquivo na caixa de diálogo Exclusão de Arquivo, esse arquivo não será realmente excluído. Ele apenas será removido do projeto, para preservar o conteúdo.

Posteriormente, se a transformação de UML em C# for executada novamente de forma que resultar na recriação do arquivo excluído (removido do projeto) na etapa anterior, esse arquivo (recriado) terá o conteúdo antigo (original) em vez do novo conteúdo.

Solução alternativa:
A solução alternativa atual para esse problema é excluir esses arquivos do sistema de arquivos após a etapa 1. A lista desses arquivos pode ser obtida em:

4.13 A Reaplicação da Transformação de UML em C# com a Tag @generated Removida Pode Incluir uma Tag URI Extra

A reaplicação da transformação de UML em C# com a opção Criar relacionamentos entre origem e destino selecionada na página Comum da configuração da transformação após a remoção da tag @generated do código C# resulta na geração de uma tag URI extra no código. Isso tem sido observado apenas com variáveis.

A tag URI tem o formato:

//@C#_transform [
// _URI=platform:/resource/UML%20project/Blank%20Model%20t1.emx#_cd19cKJhEdurjYIa4vhLGA

//]

A execução da reaplicação várias vezes faz com que mais tags URI sejam geradas no arquivo C#.

Solução alternativa:
Não há uma solução alternativa para esse problema.

4.14 A Reaplicação da Transformação de UML em C# Depois de Alterar o Tipo de Atributo C# no Código e de Remover as Tags @generated Correspondentes Inclui um Configurador Extra

 Se a tag @generated para um configurador gerado for removida e seu tipo for alterado no código antes da nova execução da transformação de UML em C#, um configurador extra será gerado.

A solução alternativa é alterar o tipo no modelo.

4.15 Literais de Enumeração Não São Substituídos pela Transformação de UML em C# com a Opção "Substituir Elementos UML"

Quando a transformação de UML em C# é executada com a opção Substituir Elementos UML escolha, os literais de enumeração presentes no modelo UML não são substituídos. Se uma enumeração E tiver dois literais, L1 e L2, e E estiver contida pelo pacote p, após a execução da transformação, a enumeração E será corretamente substituída por um atalho para a enumeração C# gerada no código; mas os literais L1 e L2 parecerão estar contidos no pacote p após a transformação.

Solução alternativa:
Não há uma solução alternativa para esse problema.

4.16 O Importador de Modelos de Códigos XDE Pode Não Migrar Configuradores de Indexadores Corretamente

O Importador de Modelos de Códigos XDE C# (Arquivo -> Importar -> Outros -> Solução XDE .Net) não migra os configuradores de indexadores C# corretamente em alguns casos. A importação de um projeto C# contido em uma solução XDE .NET por meio da especificação do modelo UML correspondente (arquivo .emx; importado com o uso do XDE Base Model Importer) e, em seguida, da execução da transformação de UML em C# com o modelo migrado como origem e do projeto migrado como destino pode não resultar nos mesmos configuradores que existiam no código antes do processo. Em alguns casos, o configurador não é gerado e, em outros, ele é gerado com um parâmetro extra (com valor de nome), o que resulta em um erro de compilação, já que C# não permite que o valor de nome seja usado para um parâmetro explícito do configurador.

Solução alternativa:
Não há uma solução alternativa para esse problema.

4.17 A Transformação de UML em C# Não Substitui Elementos UML no Modelo Quando um Modelo de Mapeamento for Usado

Quando uma transformação de UML em C# for executada com a opção Substituir elementos UML na página Comum do editor de configurações de transformação e um modelo de mapeamento for usado, a transformação não substituirá os elementos UML no modelo de origem para o qual os arquivos de origem são gerados em pastas. Apenas os elementos UML para os quais o código é gerado na pasta raiz do projeto C# de destino são substituídos por atalhos para os elementos correspondentes no código.

Solução alternativa:
Depois de executar a transformação de UML em C# pela primeira vez, o modelo UML e o modelo de mapeamento serão marcados como sujos. Execute a transformação mais uma vez, sem fazer alterações na configuração da transformação ou no modelo de mapeamento. Agora, todos os elementos UML do modelo serão substituídos por atalhos.

4.18 Importador de Modelos de Códigos C# XDE: Melhorar o Desempenho Excluindo os Modelos de Montagens Residuais Após a Conclusão das Importações.

Quando os modelos de códigos do Rational XDE são importados, quaisquer "modelos de montagem" (também chamados de "modelos do sistema" ou "modelos de referência") referenciados pelos modelos de código também são importados e referenciados no ambiente com base em Eclipse. Como resultado, a abertura do modelo de código importado poderá ser bastante demorada.

Solução alternativa:  
Exclua os modelos de montagem importados após a importação bem-sucedida dos modelos de código. Essa solução alternativa pode ser usada independentemente de você optar por substituir os elementos UML do modelo de código importado por referências de código diretas e usar a teoria de operações de "modelagem mista" ou de você optar por preservar os elementos UML do modelo de código e usar a teoria de operações “RTE (True Round-trip Engineering)” (transformações iterativas progressivas e reversas e reconciliação).

Efeitos da Solução Alternativa: 
1. A exclusão dos modelos de montagem tornará muito mais rápidas a abertura e a edição do(s) modelo(s) de código importado(s).

2. O produto poderá exibir avisos ou “erros” sobre modelos referenciados “ausentes” quando o modelo de código importado for aberto.  Esses avisos podem ser ignorados.

3. O produto pode exibir avisos ou “erros” sobre modelos referenciados "ausentes" quando a validação for executada com base no modelo de código importado.  Esses avisos podem ser ignorados.

Exemplo:
Suponha que tenhamos um projeto Visual Studio 2003 C# denominado Project1 com seus modelos base XDE correspondentes, "Project1.mdx".  Assuma que esse modelo faça referência aos cinco modelos de sistema a seguir: System.mdx, mscorlib.mdx, System.Data.mdx, System.Web.mdx e System.Drawing.mdx. 

-  Comece migrando o projeto VS 2003 para o VS 2005, usando o utilitário de migração VS 2005
Importe o modelo de projeto Project1.mdx, usando a importação de modelo XDE  (Arquivo > Importar > Outros > Modelo Rational XDE).  Você optará pela importação de todos os seus modelos referenciados (o importador requer isso para garantir a integridade do modelo durante o processo de importação).

-  Isso resulta na criação de seus arquivos .emx no espaço de trabalho Eclipse, que são “Project1.emx,” “System.emx mscorlib.emx,” “System.Data.emx,” “System.Web.emx,” e “System.Drawing.emx.” 

-  Em seguida, importe a Solução Visual Studio 2005 (Arquivo > Importar > Outros > Solução .NET). O modelo .mdx legado será detectado nessa solução e você será solicitado a fornecer o nome dos modelos centrais importados, nesse caso, “Project1.emx.”. Nesse ponto, também haverá a opção de substituir os elementos UML de Project1.emx por referências ao código na solução importada. Use essa opção se quiser praticar a “modelagem mista”, mas não a use se quiser praticar o “RTE real”.

-  O processo de importação estará concluído.  Da próxima vez que você abrir o modelo “Project1.emx”, a estrutura UML tentará carregar todos os cinco modelos referenciados e resolver as referências a partir dos elementos em "Project1.emx" para os elementos nesses modelos referenciados. Essa é a causa do atraso na abertura e no trabalho com o modelo XDE importado.
 
-  Para aliviar o ônus de desempenho, basta selecionar e excluir cada um dos cinco modelos de montagem.  Conforme observado acima, isso melhorará o desempenho e resultará na aparição de avisos ou de “erros” ao abrir e validar “Project1.emx”, mas não afetará negativamente nenhuma das operações de modelagem e transformação que você queira desempenhar com “Project1.emx”

4.19 A Mesclagem no Modelo de Destino Falha no Modo Silencioso Quando Todas as Outras Opções na Configuração de Transformações são Selecionadas

Se uma transformação de C# em UML for executada no modo silencioso e todas as outras opções forem selecionadas no editor de configurações de transformação, a transformação falhará. Especificamente, isso acontecerá quando as novas alterações no modelo de destino contiverem elementos estereotipados (por exemplo, <<CSharpStruct>>) que precisem ser mesclados no modo silencioso. Esse problema será corrigido em um release futuro.

4.20 O Diálogo de Fusão Mostra Alterações Inválidas para Renomear Parâmetros referentes a Operadores Sobrecarregados

Se uma transformação de C# em UML for executada em um arquivo de origem contendo operadores sobrecarregados como != ou == para obter esses operadores no modelo de destino, na execução subseqüente da transformação sem nenhuma alteração no código, a caixa de diálogo de fusão não deve mostrar nenhuma alteração. Entretanto, a caixa de diálogo de fusão mostra incorretamente as alterações relacionadas à renomeação de parâmetros.

Esse problema será corrigido em um release futuro.

4.21 Uso do Modelo de Mapeamento

Para transformações C#, um modelo de mapeamento deve ser usado para especificar apenas a hierarquia do sistema de arquivos de como o código deve ser organizado. A renomeação de classes, interfaces, etc., por meio do modelo de mapeamento ainda não é suportada. O design de um aplicativo C# pode ser feito em 2 perspectivas:
1. Design de sistema lógico
2 Design de sistema físico (será especificado como modelo de mapeamento)

O modelo de design lógico normalmente conterá os variados espaços de nomes, os tipos diferentes e o relacionamento, os atributos e as funções de herança, entre outros.

A perspectiva de design físico com o uso de um modelo de mapeamento inclui as informações de implantação para a transformação C#. Isso significa que você pode controlar a maneira como deseja que a transformação coloque as diferentes construções lógicas em diferentes arquivos. Por padrão, sem um modelo de mapeamento, a transformação de UML em C# gerará cada tipo, por exemplo, uma classe ou uma interface, em um arquivo cujo nome é o mesmo que o nome do tipo, mas colocado na pasta raiz do projeto Visual Studio. Por exemplo, a classe "MyClass" será gerada em um arquivo chamado de "MyClass.cs" na ausência de um modelo de mapeamento. Entretanto, se o usuário quiser que o código seja gerado em um arquivo chamado "Test.cs", ele deve especificar isso no modelo de mapeamento por meio de um artefato que manifesta essa classe "MyClass".

O modelo de mapeamento é usado apenas para especificar a hierarquia de pastas ou arquivos para geração do código. Nenhuma renomeação poderá ocorrer com o uso de um modelo de mapeamento.

Observe que tanto o design lógico (modelo de origem da transformação) quanto o design físico (modelo de mapeamento da transformação) são apenas modelos UML. A única diferença é que:
  - Os pacotes UML no modelo de origem lógico representam espaços de nomes C#.
  - Os pacotes UML no modelo de mapeamento representam pastas no sistema de arquivos. 

4.22 O Modelo de Mapeamento Ficará Corrompido se a Transformação UML2C# For Desfeita Depois de Ser Executada com "Modelo de Mapeamento" Ativado e com a Opção "Substituir Elementos UML" Marcada.

Se a transformação de UML em C# for desfeita após a execução da transformação com uma opção de modelo de Mapeamento ativada e com a opção Substituir elementos UML marcada, o modelo de mapeamento estará em um estado incorreto. Se a transformação de UML em C# for executada novamente com o modelo de mapeamento incorreto, os arquivos C# serão gerados em um local incorreto.

Solução alternativa:
O usuário precisa desfazer manualmente as alterações no modelo de mapeamento antes de executar novamente a transformação de UML em C#. Uma forma de fazer isso é fechando o modelo de mapeamento e optando por não salvar as alterações.

5.0 IBM Rational Software Support

O IBM Rational Software Support fornece assistência técnica.

Para obter informações de contato e orientações ou materiais de referência que serão necessários quando você solicitar suporte, leia o IBM Software Support Handbook.

Para FAQs, listas de problemas e correções conhecidos e outras informações de suporte, visite o Web site IBM Rational Software Support.

Para notícias, eventos, suporte e outras informações sobre o produto Rational Software, visite o Web site IBM Rational Software.

Antes de entrar em contato com o IBM Rational Software Support, reúna as informações que serão necessárias para descrever o problema. Ao descrever um problema para um especialista de suporte a software IBM, seja o mais específico possível e inclua informações relevantes para que o especialista possa ajudá-lo a resolver o problema de forma eficiente. Para economizar tempo, saiba as respostas para essas perguntas:

6.0 Avisos e Marcas Registradas

© Copyright IBM Corporation 2007. Todos os Direitos Reservados.

Estas informações foram desenvolvidas para produtos e serviços oferecidos nos Estados Unidos. É possível que a IBM não ofereça os produtos, serviços e recursos discutidos nesta publicação em outros países. Consulte um representante IBM local para obter informações sobre produtos e serviços disponíveis atualmente em sua área. Qualquer referência a um produto, programa ou serviço IBM não significa que apenas esse produto, programa ou serviço IBM possa ser utilizado. Qualquer produto, programa ou serviço funcionalmente equivalente, que não infrinja nenhum direito de propriedade intelectual da IBM, poderá ser utilizado em substituição a esse produto, programa ou serviço. Entretanto, a avaliação e verificação da operação de qualquer produto, programa ou serviço não-IBM são de responsabilidade do Cliente.

A IBM pode ter patentes ou solicitações de patentes pendentes relativas a assuntos tratados nesta publicação. O fornecimento desta publicação não garante ao Cliente nenhum direito sobre tais patentes. Pedidos de licenças devem ser enviados, por escrito, para:

Gerência de Relações Comerciais e Industriais da IBM Brasil
Av. Pasteur, 138-146
Botafogo
Rio de Janeiro, RJ
CEP: 22290-240

Para pedidos de licenças com relação a informações sobre DBCS (Conjunto de Caracteres de Byte Duplo), entre em contato com o Departamento de Propriedade Intelectual da IBM em seu país ou envie pedidos, por escrito, para:

IBM World Trade Asia Corporation
Licensing
2-31 Roppongi 3-chome, Minato-ku
Tokyo 106, Japan

O parágrafo a seguir não se aplica a nenhum país em que tais disposições não estejam de acordo com a legislação local: A INTERNATIONAL BUSINESS MACHINES CORPORATION FORNECE ESTA PUBLICAÇÃO "NO ESTADO EM QUE SE ENCONTRA" SEM GARANTIA DE NENHUM TIPO, SEJA EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS IMPLÍCITAS DE MERCADO OU DE ADEQUAÇÃO A UM DETERMINADO PROPÓSITO. Alguns países não permitem a exclusão de garantias expressas ou implícitas em certas transações; portanto, essa disposição pode não se aplicar ao Cliente.

Estas informações podem incluir imprecisões técnicas ou erros tipográficos. Periodicamente, são feitas alterações nas informações aqui contidas; tais alterações serão incorporadas em futuras edições desta publicação. A IBM pode, a qualquer momento, aperfeiçoar e/ou alterar os produtos e/ou programas descritos nesta publicação, sem aviso prévio.

Licenciados deste programa que desejam obter informações sobre este assunto com objetivo de permitir: (i) a troca de informações entre programas criados independentemente e outros programas (incluindo este) e (ii) a utilização mútua das informações trocadas, devem entrar em contato com:

Gerência de Relações Comerciais e Industriais da IBM Brasil
Av. Pasteur, 138-146
Botafogo
Rio de Janeiro, RJ
CEP: 22290-240

Tais informações podem estar disponíveis, sujeitas a termos e condições apropriadas, incluindo em alguns casos, o pagamento de uma taxa.

O programa licenciado descrito nesta publicação e todo o material licenciado disponível são fornecidos pela IBM sob os termos do Contrato com o Cliente IBM, do Contrato de Licença do Programa Internacional IBM ou de qualquer outro contrato equivalente. 

As informações sobre produtos não-IBM foram obtidas junto aos fornecedores dos respectivos produtos, de seus anúncios publicados ou de outras fontes disponíveis publicamente. A IBM não testou estes produtos e não pode confirmar a precisão do desempenho, compatibilidade nem qualquer outra reivindicação relacionada a produtos não-IBM. Dúvidas sobre os recursos de produtos não-IBM devem ser encaminhadas diretamente a seus fornecedores.

Todas as declarações relacionadas aos objetivos e intenções futuras da IBM estão sujeitas a alterações ou cancelamento sem aviso prévio e representam apenas metas e objetivos.

Marcas Registradas e Marcas de Serviço

Os termos a seguir são marcas registradas da International Business Machines Corporation nos Estados Unidos e/ou em outros países:

Java e todas as marcas registradas baseadas em Java são marcas registradas da Sun Microsystems, Inc. nos Estados Unidos e/ou em outros países.

Microsoft, Windows e Windows NT são marcas registradas da Microsoft Corporation nos Estados Unidos e/ou em outros países.

Intel e Pentium são marcas ou marcas registradas da Intel Corporation ou de suas subsidiárias nos Estados Unidos e/ou em outros países.

UNIX é uma marca registrada da The Open Group nos Estados Unidos e/ou em outros países.

Linux é uma marca registrada de Linus Torvalds nos Estados Unidos e/ou em outros países.

Outros nomes de empresas, produtos ou serviços podem ser marcas registradas ou marcas de serviço de terceiros.