Diagrama de Sequência

Primeiramente, para que se tenha uma melhor compreensão sobre Diagramas de Seqüência, primeiro é necessário entender o conceito de iteração.

Iterações

Comportamento que envolve conjunto de mensagens trocadas (troca de informação) entre objetos dentro de um determinado contexto. Esse termo se aplica a dois tipos de diagramas que enfatizam iterações entre objetos.

- Diagrama de Seqüência – Enfatizam o tempo de sequência

- Diagrama de Colaboração

O que é um Diagrama de Sequência?

Consiste em uma ferramenta UML (Linguagem Modelada Unificada), que tem o objetivo de mostrar como as mensagens entre os objetos são trocadas no decorrer do tempo para a realização de uma operação.Apresentando os objetos que participam da iteração e a seqüência de mensagens trocadas. Um diagrama de sequência descreve a maneira como os grupos de objetos colaboram em algum comportamento ao longo do tempo. Ele registra o comportamento de um único caso de uso e exibe os objetos e as mensagens passadas entre esses objetos no caso de uso.

Qual a função ?

Estabelecer os objetos que interagem e seus relacionamentos dentro de um contexto.

  • Pode ser utilizado para mostrar a evolução de uma dada situação em determinado momento do software
  • Mostrar a colaboração entre duas ou mais classes e a tradução de um Caso de Uso desde sua interação com o usuário até a finalização de um processo.
  • Pode mostrar erros não detectados no diagrama de classes. Ele melhora o diagrama de classes,permitindo que acrescentemos ou retiremos métodos e/ou atributos desnecessários de um conjunto de classes.
  • A partir do diagrama de seqüência percebe-se a seqüência de mensagens enviadas entre objetos.A intenção é dar uma demonstração visual de como o software atuará frente ao usuário.
  • Mostra objetos participando em interações de acordo com suas linhas de vida e as mensagens que trocam


Elementos Básicos

  • Objetos - Apresentados na dimensão horizontal do diagrama.
  • Linhas de Vida - Apresentada na dimensão vertical do diagrama, apresentam o tempo de vida do objeto, ativação ou desativação, criação ou destruição.
  • Mensagens - É uma comunicação entre objetos, um emissor que veicula a informação na expectativa de provocar uma resposta. Se dividem em mensagens síncromas e assíncromas.
    • Comunicação Síncrona - Quando um envio é feito, o processo remetente é bloqueado até que a recepção correspondente seja realizada, ou seja, o transmissor/receptor não consegue encaminhar um nova mensagem enquanto a resposta não chega.
    • Comunicação Assíncrona - Em uma comunicação assíncrona, cada bloco de dados inclui um bloco de informação de controle (chamado flag), para que se saiba exatamente onde começa e acaba o bloco de dados e qual a sua posição na seqüência de informação transmitida. Nesse tipo de comunicação o receptor/transmissor pode encaminhar quantas mensagens ele quiser, desde que a mensagem anterior seja entregue. Ele não necessita de uma resposta e sim da conclusão do envio da mensagem.
  • Linhas verticais representam o tempo de vida de um objeto. Estas linhas verticais são preenchidas por barras verticais que indicam exatamente quando um objeto passou a existir. Quando um objeto desaparece, existe um "X" na parte inferior da barra;
  • Linhas horizontais ou diagonais representando mensagens trocadas entre objetos. Estas linhas são acompanhadas de um rótulo que contém o nome da mensagem e, opcionalmente, os parâmetros da mesma. Observe que também podem existir mensagens enviadas para o mesmo objeto, representando uma iteração;
  • Uma condição é representada por uma mensagem cujo rótulo é envolvido por colchetes;
  • Mensagens de retorno são representadas por linhas horizontais tracejadas. Este tipo de mensagem não é freqüentemente representada nos diagramas, muitas vezes porque sua utilização leva a um grande número de setas no diagrama, atrapalhando o entendimento do mesmo. Este tipo de mensagem só deve ser mostrada quando for fundamental para a clareza do diagrama.


Tipos de ação que uma mensagem pode representar:

Call

  • Invoca uma operação sobre um objeto.

Return

  • Representa o retorno de um valor para o objeto que chamou a Operação

Create

  • Criação de um objeto

Destroy

  • Eliminação de um objeto


Modelo padrão de um diagrama de sequências


Como construir um diagrama de seqüência?

  • Escolher um caso de uso (Nada mais do que a representação de uma função do sistema.Trata-se exclusivamente de uma representação de uma ação pretendida, ou uma função executada pelo sistema, como imprimir boleto, executar ação, salvar. Posto que uma função pode ser estruturada em subfunções, um caso de uso pode ser estruturado. Se houver limites no sistema do diagrama, o caso de uso estará dentro dos limites.)
  • Identificar os objetos que fazem parte da iteração.
  • Identificar o objeto que começa a iteração.
  • Identificar mensagens trocadas entre objetos.
  • Identificar a seqüência em que estas mensagens são trocadas.


Exemplos




Referências