É 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
- Inclua uma classe ao modelo UML tenha o perfil de transformação
C++ aplicado.
- Aplique o estereótipo «cpp_globals» à classe que você criou na etapa 1.
- 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.
- Cie uma configuração de transformação para a transformação UML para C++:
- Clique em ,
e complete as páginas no assistente usando os valores listados
nas etapas a seguir.
- 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.
- 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.
- Na página Mapeamento, selecione a caixa de opção Ativar a funcionalidade de mapeamento para essa transformação.
- No campo Nome do arquivo de modelo de mapeamento,
especifique um nome para o modelo de mapeamento.
- Clique em Editar Mapeamento, especifique um local
na área de trabalho e um nome para o modelo de mapeamento e clique em OK.
- Clique em Editar Mapeamento.
- Na janela Editar os Nomes Mapeados,
selecione o modelo UML que contém a classe que você incluiu na etapa 1.
- 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.
- Clique em Avançar, Avançar
e Avançar para aceitar os valores-padrão nas próximas três páginas do assistente.
- 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.
- 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.
- 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.
- Inclua uma variável global ou uma operação
ao arquivo de cabeçalho, conforme o exemplo a seguir: int NEW_MAXLENGTH;.
- 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.
- 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.