Configurando Transformações de Java em UML

Para especificar as informações que a transformação utiliza para gerar a saída que você espera, utilize o Novo assistente de configuração de transformação e o editor de configuração de transformação, que o orientará através da configuração.
Por Que e Quando Desempenhar Esta Tarefa

Uma configuração de transformação possui .tc como uma extensão de nome de arquivo e contém as informações que a transformação utiliza para gerar a saída esperada. Uma configuração de transformação também contém informações específicas para um determinado tipo de transformação. Para editar uma configuração de transformação existente, em uma visualização que mostra os recursos da área de trabalho, dê um clique duplo no arquivo de configuração da transformação, que abre o editor de configuração de transformação.

Para simplificar o trabalho com o arquivo de configuração de transformação, salve o arquivo de configuração no projeto que contém os elementos para transformar.

  1. Dependendo da visualização na qual está trabalhando, execute uma das seguintes etapas:
    • Na visualização Pattern Explorer, clique com o botão direito do mouse em uma transformação; em seguida, clique em Nova Configuração.
    • Em outras visualizações, clique em Arquivo > Novo > Configuração da Transformação. Se Configuração da Transformação não for um item de menu, clique em Arquivo > Novo > Outro > Transformações > Configuração da Transformação.
  2. Especifique os detalhes da configuração. No Novo Assistente de Configuração de Transformação , na página Especifique um Nome e uma Transformação de Configuração, conclua as seguintes etapas:
    1. No campo Nome, especifique um nome para a configuração.
    2. No campo Destino do arquivo de configuração, especifique o destino do arquivo de configuração da transformação. O destino é um caminho relativo em seu espaço de trabalho atual. É possível especificar um nome de projeto ou nome de pasta completo. Se você especificar uma pasta em um projeto, deverá iniciar o nome da pasta com uma barra (/).
    3. A partir da lista Transformação , selecione uma transformação.
      Nota: Para exibir as transformações que estão instaladas, mas não ativadas, clique em Mostrar todas as transformações. Uma transformação deve ser ligada a um recurso para aparecer nesta lista.
  3. Na seção Protocolo, especifique o protocolo de modelagem, que também é chamado de design contract management protocol (DCMP). O valor selecionado determina se a origem e o destino da transformação devem ser sincronizados.
    • Se o modelo de origem for o artefato de engenharia primária, selecione Conceitual. Quaisquer alterações no modelo de origem são propagadas para o modelo de destino.
    • Se a arquitetura que os artefatos de origem representam evoluir independentemente do destino, selecione Reconciliada. Selecionar essa opção possibilita a transformação reversa, que você pode utilizar para comprara a origem e o destino e reconciliar alterações. Você também pode selecionar essa opção se diferentes equipes implementarem, desenvolverem ou mantiverem a arquitetura.
      Nota: Ao selecionar essa opção, propriedades adicionais se tornam disponíveis na seção "Transformação reversa" da páginaPrincipal. Para algumas transformações, páginas adicionais se tornam disponíveis noeditor de configuração de transformação. Para obter informações sobre como configurar a transformação reversa, consulte o link relacionado a seguir.
  4. Clique em Avançar.
  5. Especifique os elementos de origem e destino para a transformação. Para obter uma lista de elementos de origem e destino válidos, consulte o tópico de conceito relacionado para essa transformação. Na página Origem e Destino, complete as seguintes etapas:
    1. No painel Origem selecionada, selecione o elemento de origem para a transformação ser realizada.
    2. No painel Destino selecionado, selecione o destino da saída da transformação. Para criar um novo destino para a saída, clique em Criar contêiner de destino.
  6. Clique em Concluir. O editor de configuração de transformação é aberto, e o conteúdo da configuração é exibido.
  7. Opcional: Especifique valores para as propriedades de geração de código que são exclusivas para a transformação. Na página Principal, complete uma ou mais das seguintes etapas:
    • Para transformar os métodos Java™ getter e setter em operações UML, selecione Gerar operações UML para cada método Java getter e setter. Se não quiser exibir as operações UML para getters e setters Java no modelo UML de destino ao executar a transformação, não selecione essa caixa de opção.

      Esta opção modifica a mesma propriedade de transformação que a opção Gerar métodos getter e setter na transformação reversa. Se você selecionar uma das caixas de opções, será o equivalente a desmarcar a outra. Desmarque essa caixa de opção se quiser gerar getters e setters Java ao executar a transformação reversa, mas não quiser exibir as operações UML para getters e setters Java no modelo UML de destino ao executar a transformação de encaminhamento.

    • Para gerar uma estrutura simples de pacote UML no modelo UML de destino para cada pacote Java no projeto Java de origem, selecione a caixa de opção Gerar um pacote UML simples para cada pacote Java. Se você não selecionar essa caixa de opção, a transformação gera uma estrutura de pacotes hierárquica.

      Se o destino de transformação for um modelo UML existente, você deve especificar a mesma estrutura de pacote que o modelo de destino; isso reduz o número de diferenças que você deve resolver entre o modelo de destino e o modelo temporário gerados pela transformação.

      Por exemplo, suponhamos que um projeto Java de origem contenha as classes a.b.Y e a.b.c.Z. Se você selecionar a caixa de opção, a transformação gera pacotes UML a.b e a.b.c. Esses pacotes não são hieráquicos. A classe UML Y é criada no pacote UML a.b, e a classe UML Z é criada no pacote UML a.b.c. Se você desmarcar essa caixa de opção, o pacote UML a é criado; o pacote UML b é criado no pacote a; o pacote UML c é criado no pacote b; uma classe UML Z é criada no pacote c; e a classe UML Y é criada no pacote b.

    • Para gerar associações UML para atributos UML para campos Java, selecione a caixa de opção Gerar uma associação UML para cada campo Java . A transformação examina o modelo UML de destino e cria relacionamentos de associação para campos Java que fazem parte de um relacionamento de associação. Se um campo Java não faz parte de uma associação UML, a transformação cria um atributo UML. Para também mostrar tipos visualizados e tipo primitivo como associações direcionadas, selecione as caixas de opção correspondentes.
  8. Opcional: Para gerar informações sobre depuração, na página Principal, selecione a caixa de opção Gerar um log de depuração. Na próxima vez em que você executar a transformação, o arquivo de log será gerado como um arquivo XML na pasta em que você especificar nas preferências de transformações. Se você não especificar um local para os arquivos de log, a transformação gera o arquivo de log na pasta .metadata em sua área de trabalho.
    Dica: Para configurar as preferências para as transformações, clique em Janela > Preferências; em seguida, expanda Modelagem e clique em Transformações.

    O arquivo de log fornece informações sobre os elementos de origem, os elementos de destino e as regras que a transformação aplica para transformar os elementos de origem. Se a transformação transformar vários elementos, poderá ocorrer uma redução no desempenho enquanto a transformação gerar o arquivo de log; portanto, você só deverá gerar um arquivo de log para propósitos de depuração.

  9. Opcional: Para evitar que novas caixas de diálogo sejam abertas enquanto uma transformação é executada, na página Principal, selecione a caixa de opção Executar a transformação de encaminhamento silenciosamente.

    A execução de uma transformação no modo silencioso suprime todas as caixas de diálogo geradas pela transformação. A transformação aplica regras e comportamento padrão, o que pode gerar uma saída de transformação inesperada ou incorreta. Você só deve executar uma transformação no modo silencioso para validar a execução da transformação, em vez de validar a saída da transformação. Por exemplo, você poderia executar uma transformação no modo silencioso como parte de um conjunto de tarefas automatizadas ou testes automatizados.

    A configuração da transformação para executar em modo silencioso substitui as opções de substituição de arquivo que você especifica, e então sobrescreve os arquivos se necessário.

    Se a transformação UML-para-Javaestiver disponível, é possível selecionar a caixa de opção Executar a transformação reversa silenciosamente. Especificar que a transformação de UML-para-Java ou reversa seja executada no modo silencioso substitui as opções para sobrescrever especificadas na configuração da transformação. A transformação de UML-para-Java sobrescreve arquivos, se necessário.

  10. Opcional: Para criar um relacionamento rastreável entre a origem e o destino de transformação, na página Principal, selecione a caixa de opção Criar relacionamentos de rastreio. Essa caixa de opção será ativada apenas se você selecionar os protocolos Modelagem Combinada ou Modelagem Reconciliada.

    Você pode utilizar os relacionamentos de rastreio e as ferramentas de desenvolvimento visual para entender os relacionamentos entre os elementos de modelo de origem e a saída da transformação. Essa função é útil em projetos grandes que podem conter vários modelos e configurações de transformação. A transformação não altera o modelo de origem.

  11. Opcional: Especifique a documentação sobre a configuração de transformação. Esse campo é útil para comunicar informações sobre uma configuração compartilhada por vários usuários. Na página Principal, no campo Documentação , especifique as informações adicionais sobre a configuração da transformação.
  12. Opcional: Especifique as extensões de transformação a serem ativadas ou desativadas.
    • Na página Extensões, selecione ou desmarque as caixas de opção das extensões de transformação para ativar ou desativar.

      Para gerar enumerações de UML que preservam o nome e os valores dos literais de enumeração, selecione a caixa de opção com.ibm.xtools.transform.java.enumext.j2u.transform. As propriedades da enumeração Java customizada são preservadas quando ela é transformada em UML.

  13. Opcional: Especifique como a transformação transforma os tipos de coletas Java selecionados a partir do projeto Java de origem em tipos de coleta UML.
    • Na página Coleções, a partir de cada lista de tipos de coleção UML, selecione um tipo de coleção Java. Para especificar um valor customizado, digite o valor no campo de coleta.

      Para cada tipo de coleta Java no projeto de origem, é possível especificar o tipo de coleta UML que a transformação gera. Você pode mapear um tipo de coleta Java para um tipo de coleta UML. As seleções padrão mapeiam as classes de Coleta Java, de Conjunto Classificado, de Lista e de Conjunto para os tipos de coleta de Repositório de UML, de Conjunto Ordenado, Seqüência e Conjunto. Ao executar a transformação, se puder identificar as coletas ou matrizes Java no código e identificar o tipo de coletas ou matrizes, a transformação aplica o estereótipo «JavaCollection» ou «JavaArray» ao elemento UML gerado e preeche os valores das propriedades do estereótipo. Caso contrário, a transformação gera uma referência adaptável e não aplica um estereótipo ao elemento UML gerado.

      Por exemplo, para transformar classes de vetor Java em seqüencias UML, selecione java.util.Vector na lista Sequência em vez de as classes de Lista Java. Para cada classe de Lista Java no projeto Java de origem, a transformação gera uma referência adaptável no modelo UML de destino e configura as propriedades É Ordenado e É Exclusivo do elemento UML gerado para falso. Neste exemplo, a transformação configura essas propriedades para falso, pois não transforma o tipo de coleta de Lista Java em um tipo de coleta UML.

      Cnsulte o tópico de referência relacionado abaixo para obter informações adicionais sobre como a transformação preenche as propriedades de coleta UML quando transforma as coletas Java.

  14. Opcional: Para criar um arquivo que define as interdependências de elementos Java e elementos UML de destino, crie um arquivo de associação de Java em UML. Essa funcionalidade é útil para definir os relacionamentos entre elementos Java e UML cujo escopo está fora da transformação configurada e que pode estar localizado em diferentes projetos. Para criar um arquivo de associação, na página Associações de Java em UML, execute as seguintes etapas:
    1. No campo Nome do arquivo de associação de Java em UML, especifique um nome de arquivo.
    2. Na seção Associações de Java em UML, ao lado da tabela, clique nos botões para incluir ou remover uma associação do arquivo.
    Para obter informações adicionais sobre suporte para diversos projetos e suas interdependências, consulte o tópico de conceito de transformação de Java em UML relacionado abaixo.
  15. Opcional: Se você ativar o DCMPModelagem Reconciliada, na páginaMapeamento, é possível selecionar e configurar modelos de mapeamento que você criou para outras transformações reversas. Ao usar modelos de mapeamento, é possível especificar nomes de arquivos alternativos para saída que a transformaçãoUML-para-Java gera. O modelo de mapeamento especificado deve existir no espaço de trabalho atual.

    A transformação de Java em UML utiliza os modelos de mapeamento para determinar o nome apropriado para os elementos de UML gerados. Por exemplo, um modelo UML contém PackageA, e PackageA contém Class1. Ao criar um modelo de mapeamento para a transformação de UML-para-Java, você pode especificar que Class1 tem um nome de arquivo alternativo MappedClass1. Ao executar a transformaçãoUML-para-Java, ela gera arquivos Java denominados PackageA.MappedClass1.java. Ao executar a transformação de Java em UML, a transformação determina que o caminho UML original para o elemento Java é PackageA.Class1 e gera uma classe UML denominada Class1 em um pacote UML denominado PackageA.

    Se o nome do arquivo de artefato especificado no modelo de mapeamento não for um nome de arquivo Java válido, então, a transformação modifica o nome do arquivo ao criar o elemento de código Java. Por exemplo, se o modelo de mapeamento especifica um nome de arquivo alternativo "Mapped Class1", en vez de MappedClass1, a transformação gera um arquivo Java denominado Mapped_Class1.java. A transformação não mantém um registro dessas publicações; portanto, a transformação de Java em UML não pode mapear o arquivo Mapped_Class1 para o elemento UML original. Neste exemplo, a transformação de Java em UML transforma o objeto de origem Mapped_Class1 Java em uma classe UML denominada Mapped_Class1, em vez de Class1.

  16. Clique em Arquivo > Salvar.
Resultados
As opções serão aplicadas na próxima vez em que você executar a transformação.

Feedback