Mentor de Ferramentas: Projeto com Objetos Ativos no Rational Rose RealTime
Este mentor de ferramenta descreve os componentes de objetos ativos e explica como projetar com objetos ativos no Rational Rose RealTime.
Ferramenta: Rational Rose RealTime
Relacionamentos
Elementos Relacionados
Descrição Principal

Visão Geral

Um objeto ativo consiste em cápsulas com protocolos e portas.

As cápsulas são objetos altamente encapsulados que utilizam a comunicação baseada em mensagens com outras cápsulas através de seus objetos de porta. As cápsulas podem agregar outras cápsulas. Uma estrutura de cápsula pode conter outras cápsulas, que são funções de cápsulas.

O conjunto de mensagens trocadas entre dois objetos está em conformidade com um padrão de comunicação denominado protocolo. Ele é basicamente um acordo contratual que define os tipos válidos de mensagens que podem ser trocadas entre os participantes no protocolo.

Um diagrama de estado é uma maneira de definir o comportamento do objeto. Ele mostra a seqüência de estados pelos quais um objeto ou uma interação passa durante sua vida em resposta a mensagens recebidas, juntamente com suas respostas e ações.

Etapas da Ferramenta

Para projetar com objetos ativos no Rational Rose RealTime, desempenhe estas etapas:

  1. Criar uma Função de Cápsula
  2. Criar Portas e Ligar a Protocolos
  3. Definir uma Máquina de Estado de Cápsula
  4. Definir Estados e Subestados
  5. Definir Transições de Estados
  6. Definir Atributos em Classes

1. Criar uma Função de Cápsula

As cápsulas são criadas na Visualização Lógica do navegador do modelo.

  1. Selecione a ferramenta Função de Cápsula na caixa de ferramentas.
  2. Posicione o cursor no local em que a função de cápsula deve ser colocada e clique com o botão esquerdo do mouse.
  3. Selecione a cápsula associada da nova função de cápsula na lista drop-down.
  4. Forneça um nome apropriado para a função de cápsula.
  5. Repita as etapas anteriores para cada função de cápsula a ser criada.

2. Criar Portas e Ligar a Protocolos

  1. Localize a cápsula no navegador do modelo ou em um diagrama de classe.
  2. Expanda os elementos sob a cápsula no navegador ou clique com o botão direito do mouse na cápsula em um diagrama de classe para abrir o diagrama de estrutura da cápsula.
  3. Utilize a ferramenta Porta na caixa de ferramentas para colocar uma porta no diagrama de estrutura da cápsula. A porta pode ser solta na moldura da cápsula ou dentro da grande área retangular.
  4. Configure o nome da porta.
  5. Selecione um protocolo na lista ou crie um novo.
  6. Clique com o botão direito do mouse na porta para selecionar o diálogo Especificação de Porta.
  7. Utilize o diálogo Especificação de Porta para alterar o protocolo, para selecionar se a porta possui, ou não, conexão física e para configurar se a porta é conjugada.

3. Definir uma Máquina de Estado de Cápsula

  1. Localize a cápsula no navegador do modelo ou em um diagrama de classe.
  2. Expanda os elementos sob a cápsula no navegador ou clique com o botão direito do mouse na cápsula em um diagrama de classe para abrir o diagrama de estado da cápsula.
  3. Utilize a caixa de ferramentas Diagrama de Estado para colocar estados e transições no diagrama de estado.

4. Definir Estados e Subestados

  1. Localize a cápsula para a qual o comportamento está sendo atualizado. As cápsulas podem ser localizadas no navegador do modelo ou em um diagrama de classe.
  2. Clique com o botão direito do mouse na cápsula para abrir o Diagrama de Estado. Isso abrirá o diagrama em um Editor de Diagrama de Estado.
  3. Utilize a ferramenta Estado na caixa de ferramentas para soltar um novo estado no diagrama. Faça isso para cada estado que você deseja criar.
  4. Forneça um nome apropriado para cada estado.
  5. Dê um clique duplo em um estado que terá subestados. Isso irá expor um novo diagrama no qual você pode incluir subestados.
  6. Utilize a guia na parte inferior da janela para escolher o nível de estado em que navegará de volta.

Nota: alternativamente, você pode incluir estados por meio da área Navigator do Editor de Diagrama de Estado.

5. Definir Transições de Estados

Incluir Transição Inicial

  1. Clique no ponto inicial no diagrama e arraste a transição sobre o estado de destino. O ponto inicial é o círculo preto que aparece no canto superior esquerdo do diagrama.
  2. Forneça um nome apropriado para a transição, se não for o padrão. A transição inicial possui o nome padrão Inicial. Você pode alterar o nome selecionando a etiqueta e digitando nela. A transição inicial será chamada automaticamente no tempo de execução quando uma instância de cápsula for criada. Qualquer código de ação associado à transição inicial será executado assim que a instância de cápsula for criada.

Incluir Transições

  1. Selecione a ferramenta de transição na caixa de ferramentas e desenhe uma transição do estado de origem para o estado de destino.
  2. Forneça um nome apropriado para a transição ou aceite o padrão.

Incluindo Código de Detalhe em Máquinas de Estados

O código C, C++ ou Java pode ser incluído como ações em transições, pontos de opções e entrada ou saída de estado em diagramas de estados de cápsula a serem executados no tempo de execução. Apenas o código incluído nos diagramas de estados de cápsula é incluído no código gerado para o modelo. Ações detalhadas em diagramas de estados de classes de protocolo ou de dados não são incluídas no código gerado para essas classes.

Incluir Acionadores

Antes de configurar um acionador para uma transição, a porta na qual o acionador será recebido deve ser definida.

  1. Dê um clique duplo na transição para abrir o diálogo Especificação de Transição. 
  2. Selecione a guia Acionador.
  3. Com o cursor na área da lista de portas, clique com o botão direito do mouse e selecione Inserir no menu.
  4. Na área Porta, selecione a porta na qual o acionador será recebido.
  5. Na área Sinal, selecione o sinal da porta que causará o evento do acionador.
  6. Clique nos botões OK para fechar os diálogos abertos.

Incluir Código em Transição

Agora que você possui todos os elementos requeridos no lugar (estado inicial, transição inicial e portas), deve incluir código de detalhe na transição inicial, bem como na transição de estado para estado. O código de detalhe será executando quando a transição inicial for executada no transição do modelo ou quando um acionador for recebido na transição de estado para estado.

  1. Dê um clique duplo na transição para abrir o diálogo Especificação de Transição.
  2. Selecione a guia Ações para exibir a janela do código.
  3. Inclua o código que será executado na transição.
  4. Selecione o botão OK para fechar o diálogo aberto.

Nota: não é necessário incluir chaves de abertura e fechamento '{`, `}'. Elas são incluídas automaticamente pelo gerador de código.

6. Definir Atributos em Classes

  1. Abra a caixa de diálogo Especificação de Cápsula, dando um clique duplo na cápsula no navegador ou selecionando a cápsula em um diagrama e selecionando Abrir Especificação no menu pop-up.
  2. Selecione a guia Atributos na Especificação de Cápsula.
  3. Com o cursor na área aberta da guia, clique com o botão direito do mouse e selecione Inserir.
  4. Altere o nome de NewAttribute1 para algum mais significativo e, em seguida, pressione ENTER.
  5. Dê um clique duplo no novo atributo para exibir o diálogo Especificação de Atributo.
  6. Utilize o diálogo Especificação de Atributo para configurar o tipo de atributo e o valor inicial.