Modelagem de Variáveis Globais C++ e de Métodos em um Ambiente de Modelagem Reconciliado

É possível modelar métodos e variáveis globais em UML aplicando o estereótipo «cpp_globals» a uma classe em um modelo UML. Também é possível gerar representações UML de variáveis globais e de métodos de arquivos de cabeçalho C++.

Antes de Iniciar

Você deve estar na perspectiva Modelagem. Você deve ter os seguintes itens na área de trabalho:
  • Um modelo UML aberto que tenha um perfil de transformação C++ aplicado
  • Um projeto C++ vazio

Sobre Esta Tarefa

Esse procedimento demonstra como modelar métodos globais C++ e variáveis em UML e como transformar variáveis globais C++ em UML. O exemplo nesse tópico supõe um ambiente de modelagem reconciliado onde se inicia com um modelo UML, se executa a transformação UML para C++, se cria uma variável global no código C++ gerado e se reconcilia as mudanças entre o modelo e o código executando a transformação C++ para UML.

Procedimento

  1. Inclua uma classe ao modelo UML tenha o perfil de transformação C++ aplicado.
  2. Aplique o estereótipo «cpp_globals» à classe que você criou na etapa 1.
  3. Para cada variável global C++ ou método a ser criado inclua um tipo UML correspondente à classe que você criou na etapa 1. Nesse exemplo inclua uma operação UML chamada Operation1 e um atributo chamado MAX_LENGTH do tipo int.
  4. Cie uma configuração de transformação para a transformação UML para C++:
    1. Clique em Arquivo > Novo > Configuração de Transformação, e complete as páginas no assistente usando os valores listados nas etapas a seguir.
    2. Na página Especifique um Nome de Configuração e Transformação, a partir da lista Transformação, selecione a transformação UML para C++ e na seção Protocolo, selecione Reconciliado, e clique em Avançar.
    3. Na página Origem e Destino, na área de janela Selecionado, selecione o modelo UML que contém a classe que você incluiu na etapa 1. Na área de janela de destino Selecionado, selecione um projeto vazio C++ e clique em Avançar e clique novamente em Avançar.
    4. Na página Mapeamento, selecione a caixa de opção Ativar a funcionalidade de mapeamento para essa transformação.
    5. No campo Nome do arquivo de modelo de mapeamento, especifique um nome para o modelo de mapeamento.
    6. Clique em Editar Mapeamento, especifique um local na área de trabalho e um nome para o modelo de mapeamento e clique em OK.
    7. Clique em Editar Mapeamento.
    8. Na janela Editar os Nomes Mapeados, selecione o modelo UML que contém a classe que você incluiu na etapa 1.
    9. No campo Nome mapeado, especifique u nome que identifique esse elemento mapeado. Por exemplo, especifique mapped_model; em seguida clique em Aplicare clique em OK.
    10. Clique em Avançar, Avançar e Avançar para aceitar os valores-padrão nas próximas três páginas do assistente.
    11. Na página Comum, selecione a caixa de opção Criar relacionamentos de rastreio e clique em Concluir.
    O editor de configuração de transformação se abre e mostra o novo arquivo de configuração.
  5. Execute a transformação UML para C++: Na página Principal do editor de configuração de transformação, na seção "Transformação de encaminhamento", clique em Executar.
  6. Na visualização do Explorador de Projetos, navegue até o projeto de destino C++ e abra o arquivo de cabeçalho que tenha o mesmo nome da classe que você criou no 1. Observe que para cada método que você criou na etapa 3, a transformação gera um método global C++ correspondente ou uma variável no arquivo de cabeçalho.
  7. Inclua uma variável global ou uma operação ao arquivo de cabeçalho, conforme o exemplo a seguir: int NEW_MAXLENGTH;.
  8. Reconcilie as diferenças entre o modelo e o código: A partir da página Principal do editor de configuração de transformação, execute a transformação C++ para UML. Na janela Mesclagem, siga mudanças propostas para o modelo de UML, que inclui a variável global que você incluiu na etapa 7.
  9. Clique em OK para aceitar as mudanças propostas ao modelo UML. Após a execução da transformação, observe que a classe UML atualizada agora contém a variável global que você incluiu na etapa 7.

Feedback