Máquinas de estado de protocolo de construção em 2 uml

Quando você quer mostrar a seqüência de eventos um objeto reage a - e o comportamento resultante - você usar a notação UML que cria diagramas de estados comportamentais

(também conhecido como máquinas): Esses diagramas de estado têm pares / ação do evento, ações de entrada, ações de saída, e fazer atividades. A maioria de seus diagramas de estado usar essas características-na verdade, eles são máquinas de estados comportamentais.

Video: Sistemas Digitais Aula V - Maquina de Estados

Às vezes, porém, você só quer mostrar uma seqüência específica de eventos que o objeto responde a - e quando ele pode responder - sem ter que mostrar o seu comportamento. Tal sequência especificada é chamado um protocolo evento. Na UML 2, você pode mostrar os protocolos de eventos pela diagramação máquinas de estado de protocolo. Estas diferem das máquinas de estados comportamentais e têm usos especiais.

Normalmente, você deve usar diagramas de estado regulares para mostrar seqüências internas de comportamento para todos os objetos de uma classe. Às vezes, porém, você quer mostrar um protocolo complexo (conjunto de regras que regem a comunicação) ao usar uma interface para uma classe. Por exemplo, quando você está projetando classes que acessam um banco de dados para sua aplicação você precisa usar operações comuns como abrir, fechar e consultar um banco de dados. Mas estas operações devem ser chamados na ordem certa. Não é possível consultar o banco de dados antes de abri-lo.

Uma solução para projetar uma classe de acesso de banco de dados simples é desenvolver uma classe DatabaseAccessor com uma interface dbAccess como mostrado na Figura 1. Mas a interface dbAccess tem um protocolo complexo que governa o seu uso por causa das regras que regem a comunicação entre qualquer outro objeto eo DatabaseAccessor classe que implementa a interface dbAccess. Para utilizar a interface corretamente, você tem que abrir o banco de dados e então configurar uma consulta. Você pode colocar essas regras em um diagrama de estado para indicar o protocolo que deve ser seguido quando se utiliza a interface.

Figura 1: diagrama de classe com interface de dbAccess.

diagramas de estado regulares não ajudá-lo com interfaces porque interfaces não descrever a implementação comportamento que simplesmente declarar que as operações da classe deve executar. Cabe à classe para especificar a implementação de uma interface. Por outro lado, uma máquina de estado de protocolo permite que você declare quais operações podem acontecer e a ordem em que pode acontecer sem ter que dizer nada sobre a implementação comportamento.

Video: Aula sobre Maquina de estados UFV-2013/2

A Figura 1 mostra a interface dbAccess ligado ao DatabaseAccessor classe-classe DatabaseAccessor deve estar em conformidade com a sequência de operação (isto é, o protocolo) da interface dbAccess: O abrir, fechar, consulta, buscar, cancelar, criar e matar as operações devem ser implementado na ordem especificada pelo protocolo da interface de dbAccess (mostrado na Figura 2).



Figura 2: DBaccessor máquina de estado de protocolo.

Você desenha uma máquina de estado de protocolo da mesma maneira como você chamar qualquer outra máquina de estado. Lembre-se, no entanto, seguir algumas regras especiais:

Video: Circuitos Lógicos - Aula 12 - Máquinas de Estado Finito e Síntese de Circuitos Sequenciais

  • Membros podem ter nomes, mas não pode mostrar ações de entrada, ações de saída, ações internas, ou fazer atividades.
  • Transitions mostrar ações operações, mas não ou enviar eventos (como diagramas de estado regular pode).
  • As transições podem ter condições prévias e pós apresentados em parêntesis rectos [], como no exemplo a seguir:

• [queryStatement lt; gt; nulo] consulta / [set comArea]

• UMA condição prévia afirma que deve ser verdade antes que o objeto pode fazer a transição de um estado para outro. Neste exemplo, quando um objeto que está em conformidade com a interface DBaccessor recebe a operação de consulta, o atributo queryStatement é verificado para ver se é nulo. Se o objeto está no estado aberto, e os queryStatement não é nulo, em seguida, o objeto passa para o estado consultado.

• UMA postcondition afirma que deve ser verdadeiro uma vez que o objeto completa sua transição e está agora em um novo estado. Neste exemplo, quando um objeto que está em conformidade com a interface DBaccessor faz uma transição bem sucedida para o estado consultado, isso significa que a pós-condição deve agora ser verdade - o comArea está definido.

  • Você chamar a máquina de estado de protocolo como um grupo de subestados dentro de um quadro grande.
  • Você deve nomear a máquina de estado de protocolo como o lugar such- o protocolo palavra-chave entre chaves {} ao lado do nome.

Video: Linguagens Formais - Aula 2

O diagrama na Figura 2 mostra uma máquina de estado de protocolo para a interface DBaccessor. Qualquer classe de acordo com a interface dbAccess deve implementar a máquina de estado de protocolo. Você pode mostrar a implementação da máquina de estado de protocolo como uma máquina de estado regular com todas as ações e comportamentos de atividade jogados dentro. Dessa forma, fica claro para outros desenvolvedores como você vai implementar o protocolo para uma classe específica em seu projeto.

diagramas de estado não são destinadas a mostrar o fluxo de dados a partir de um passo do processo para outro. Em vez disso, eles estão supostamente para mostrar onde o fluxo de ao controle vai quando algum comportamento acontece. Não deixe que o seu diagrama de estado se transformar em um diagrama de fluxo de dados.


Publicações relacionadas