Tutorial do Diagrama de Sequência - Guia Completo com Exemplos

Publicados: 2017-01-27

Este tutorial de diagrama de sequência é para ajudá-lo a entender melhor os diagramas de sequência; para explicar tudo o que você precisa saber, desde como desenhar um diagrama de sequência até os erros comuns que você deve evitar ao desenhar um.

Existem 3 tipos de diagramas de interação; Diagramas de sequência, diagramas de comunicação e diagramas de temporização. Esses diagramas são usados ​​para ilustrar as interações entre as partes de um sistema. Entre os três, os diagramas de sequência são preferidos por desenvolvedores e leitores por sua simplicidade.

Neste tutorial de diagrama de sequência, você aprenderá sobre;

  • O que é um diagrama de sequência
  • Notações do Diagrama de Sequência
  • Práticas recomendadas do diagrama de sequência
  • Como desenhar um diagrama de sequência
  • Erros Comuns do Diagrama de Sequência
  • Modelos e exemplos de diagrama de sequência
  • Diagrama de Sequência Apresentação SlideShare
  • Feedback sobre o Guia do Diagrama de Sequência

O que é um Diagrama de Sequência?

Diagramas de sequência, comumente usados ​​por desenvolvedores, modelam as interações entre objetos em um único caso de uso. Eles ilustram como as diferentes partes de um sistema interagem umas com as outras para realizar uma função e a ordem em que as interações ocorrem quando um caso de uso específico é executado.

Em palavras mais simples, um diagrama de sequência mostra diferentes partes de um sistema trabalhando em uma 'sequência' para fazer algo.

mostra diferentes partes de um sistema trabalhando em uma 'sequência' para fazer algo.

Notações do Diagrama de Sequência

Um diagrama de sequência é estruturado de tal forma que representa uma linha do tempo que começa no topo e desce gradualmente para marcar a sequência de interações. Cada objeto possui uma coluna e as mensagens trocadas entre eles são representadas por setas.

Uma visão geral rápida das várias partes de um diagrama de sequência

Notação de linha de vida

Diagrama de sequência - Linha de vida

Um diagrama de sequência é composto por várias dessas notações de linha de vida que devem ser organizadas horizontalmente na parte superior do diagrama. Duas notações de linha de vida não devem se sobrepor. Eles representam os diferentes objetos ou partes que interagem entre si no sistema durante a sequência.

Uma notação de linha de vida com um símbolo de elemento de ator é usada quando o diagrama de sequência específico pertence a um caso de uso.

linha de vida com um símbolo de elemento de ator

Uma linha de vida com um elemento de entidade representa os dados do sistema. Por exemplo, em um aplicativo de atendimento ao cliente, a entidade Cliente gerenciaria todos os dados relacionados a um cliente.

Linha de Vida da Entidade

Uma linha de vida com um elemento de limite indica um limite de sistema/elemento de software em um sistema; por exemplo, telas de interface do usuário, gateways de banco de dados ou menus com os quais os usuários interagem são limites.

Linha de vida do limite

E uma linha de vida com um elemento de controle indica uma entidade controladora ou gerente. Ele organiza e programa as interações entre as fronteiras e as entidades e serve como mediador entre elas.

Linha de vida de controle

Barras de ativação

A barra de ativação é a caixa colocada na linha de vida. É usado para indicar que um objeto está ativo (ou instanciado) durante uma interação entre dois objetos. O comprimento do retângulo indica a duração dos objetos que permanecem ativos.

Em um diagrama de sequência, uma interação entre dois objetos ocorre quando um objeto envia uma mensagem para outro. O uso da barra de ativação nas linhas de vida do Chamador da Mensagem (o objeto que envia a mensagem) e do Receptor da Mensagem (o objeto que recebe a mensagem) indica que ambos estão ativos/é instanciado durante a troca da mensagem.

Diagrama de Sequência - Barras de Ativação

Setas de mensagem

Uma seta do Chamador da Mensagem para o Receptor da Mensagem especifica uma mensagem em um diagrama de seqüência. Uma mensagem pode fluir em qualquer direção; da esquerda para a direita, da direita para a esquerda ou de volta ao próprio Chamador da Mensagem. Enquanto você pode descrever a mensagem que está sendo enviada de um objeto para o outro na seta, com diferentes pontas de seta você pode indicar o tipo de mensagem que está sendo enviada ou recebida.

A seta de mensagem vem com uma descrição, que é conhecida como assinatura de mensagem. O formato para esta assinatura de mensagem está abaixo. Todas as partes, exceto o message_name, são opcionais.

atributo = message_name (argumentos): return_type

  • Mensagem síncrona

Conforme mostrado no exemplo das barras de ativação, uma mensagem síncrona é usada quando o remetente espera que o destinatário processe a mensagem e retorne antes de continuar com outra mensagem. A ponta de seta usada para indicar esse tipo de mensagem é sólida, como a abaixo.

Seta de mensagem síncrona
  • Mensagem assíncrona

Uma mensagem assíncrona é usada quando o chamador da mensagem não espera que o receptor processe a mensagem e retorne antes de enviar outras mensagens para outros objetos dentro do sistema. A ponta de seta usada para mostrar esse tipo de mensagem é uma seta de linha, como mostrado no exemplo abaixo.

Exemplo de mensagem assíncrona
  • Mensagem de retorno

Uma mensagem de retorno é usada para indicar que o receptor da mensagem terminou de processar a mensagem e está retornando o controle para o chamador da mensagem. As mensagens de retorno são peças de notação opcionais, pois uma barra de ativação que é acionada por uma mensagem síncrona sempre implica uma mensagem de retorno.

Exemplo de mensagem de retorno

Dica: Você pode evitar sobrecarregar seus diagramas minimizando o uso de mensagens de retorno, pois o valor de retorno pode ser especificado na própria seta da mensagem inicial.

  • Mensagem de criação do participante

Os objetos não vivem necessariamente por toda a duração da sequência de eventos. Objetos ou participantes podem ser criados de acordo com a mensagem que está sendo enviada.

A notação da caixa de participante descartado pode ser usada quando você precisar mostrar que o participante específico não existia até que a chamada de criação fosse enviada. Se o participante criado fizer algo imediatamente após sua criação, você deve adicionar uma caixa de ativação logo abaixo da caixa do participante.

Exemplo de criação de participante
  • Mensagem de destruição do participante
Mensagem de Destruição de Participação

Da mesma forma, os participantes quando não forem mais necessários também podem ser excluídos de um diagrama de sequência. Isso é feito adicionando um 'X' no final da linha de vida do referido participante.

  • Mensagem reflexiva

Quando um objeto envia uma mensagem para si mesmo, é chamado de mensagem reflexiva. É indicado com uma seta de mensagem que começa e termina na mesma linha de vida, conforme mostrado no exemplo abaixo.

Mensagem reflexiva

Comente

Os diagramas UML geralmente permitem a anotação de comentários em todos os tipos de diagramas UML. O objeto de comentário é um retângulo com um canto dobrado como mostrado abaixo. O comentário pode ser vinculado ao objeto relacionado com uma linha tracejada.

Exemplo de objeto de comentário

Observação:   Veja as práticas recomendadas do diagrama de sequência para saber mais sobre os fragmentos de sequência.

Práticas recomendadas do diagrama de sequência

  • Gerencie interações complexas com fragmentos de sequência

Um fragmento de sequência é representado como uma caixa que enquadra uma seção de interações entre objetos (como mostrado nos exemplos abaixo) em um diagrama de sequência.

Ele é usado para mostrar interações complexas como fluxos e loops alternativos de uma forma mais estruturada. No canto superior esquerdo do fragmento fica um operador. Este – o operador de fragmento – especifica que tipo de fragmento é.

Alternativas

O fragmento de combinação alternativo é usado quando uma escolha precisa ser feita entre duas ou mais sequências de mensagens. Ele modela a lógica do “se então senão”.

O fragmento alternativo é representado por um grande retângulo ou um quadro; ele é especificado mencionando 'alt' dentro da caixa de nome do quadro (também conhecido como operador de fragmento).

Para mostrar duas ou mais alternativas, o retângulo maior é então dividido no que é chamado de operandos de interação usando uma linha tracejada, conforme mostrado no exemplo de diagrama de sequência acima. Cada operando tem um guarda para testar e é colocado no canto superior esquerdo do operando.

Exemplo de fragmento alternativo - tutorial de diagrama de sequência

Opções

O fragmento de combinação de opções é usado para indicar uma sequência que só ocorrerá sob uma determinada condição, caso contrário, a sequência não ocorrerá. Ele modela a declaração “se, então”.  

Semelhante ao fragmento alternativo, o fragmento de opção também é representado com um quadro retangular onde 'opt' é colocado dentro da caixa de nome.

Ao contrário do fragmento alternativo, um fragmento de opção não é dividido em dois ou mais operandos. A guarda da opção é colocada no canto superior esquerdo.

(Encontre um exemplo de diagrama de sequência com um fragmento de opção na seção Modelos e exemplos de diagrama de sequência).

rotações

O fragmento de loop é usado para representar uma sequência repetitiva. Coloque as palavras 'loop' na caixa de nome e a condição de guarda perto do canto superior esquerdo do quadro.

Além do teste booleano, o guard em um fragmento de loop pode ter duas outras condições especiais testadas. Estas são iterações mínimas (escritas como minint = [o número] e iterações máximas (escritas como maxint = [o número]).

Se for uma guarda de iterações mínimas, o loop não deve executar menos do que o número mencionado, e se for uma guarda de iterações máximas, o loop não deve executar mais do que o número indicado.

(Encontre um exemplo de um fragmento de loop abaixo nos modelos de diagrama de sequência e na seção de exemplo)

Fragmento de referência

Você pode usar o fragmento ref para gerenciar o tamanho de diagramas de sequência grandes. Ele permite que você reutilize parte de um diagrama de sequência em outro, ou em outras palavras, você pode referenciar parte de um diagrama em outro diagrama usando o fragmento ref.

Para especificar o fragmento de referência, você deve mencionar 'ref' na caixa de nome do quadro e o nome do diagrama de sequência que está sendo referido dentro do quadro.

Exemplo de fragmento de referência

Para obter mais fragmentos de sequência, consulte Além do básico dos diagramas de sequência: Parte 1 , Parte 2 e Parte 3 .

  • Desenhe diagramas de sequência menores que capturem a essência do caso de uso

Em vez de encher seu diagrama de seqüência com vários objetos e grupos de mensagens que confundirão o leitor, desenhe alguns diagramas de seqüência menores que expliquem adequadamente o que seu sistema faz. Certifique-se de que o diagrama caiba em uma única página e também deixe espaço para notas explicativas.

Além disso, em vez de desenhar dezenas de diagramas de sequência, descubra o que é comum entre os cenários e concentre-se nisso. E se o código é expressivo e pode se sustentar sozinho, não há necessidade de desenhar um diagrama de seqüência em primeiro lugar.

Como desenhar um diagrama de sequência

Um diagrama de sequência representa o cenário ou fluxo de eventos em um único caso de uso. O fluxo de mensagens do diagrama de sequência é baseado na narrativa do caso de uso específico.

Então, antes de começar a desenhar o diagrama de sequência ou decidir quais interações devem ser incluídas nele, você precisa desenhar o diagrama de caso de uso e preparar uma descrição abrangente do que o caso de uso específico faz.

Como desenhar um diagrama de sequência Um diagrama de sequência representa o cenário ou fluxo de eventos em um único caso de uso. O fluxo de mensagens do diagrama de sequência é baseado na narrativa do caso de uso específico. Então, antes de começar a desenhar o diagrama de sequência ou decidir quais interações devem ser incluídas nele, você precisa preparar uma descrição abrangente do que o caso de uso específico faz.

A partir do exemplo de diagrama de caso de uso acima de 'Criar nova conta de biblioteca online', vamos nos concentrar no caso de uso denominado 'Criar nova conta de usuário' para desenhar nosso exemplo de diagrama de sequência.

Antes de desenhar o diagrama de sequência, é necessário identificar os objetos ou atores que estariam envolvidos na criação de uma nova conta de usuário. Estes seriam;

  • Bibliotecário
  • Sistema de gerenciamento de biblioteca on-line
  • Banco de dados de credenciais do usuário
  • Sistema de e-mail

Depois de identificar os objetos, é importante escrever uma descrição detalhada sobre o que o caso de uso faz. A partir desta descrição, você pode facilmente descobrir as interações (que deveriam estar no diagrama de sequência) que ocorreriam entre os objetos acima, uma vez que o caso de uso fosse executado.

Aqui estão as etapas que ocorrem no caso de uso chamado 'Criar nova conta de usuário da biblioteca'.

  • O bibliotecário solicita ao sistema que crie uma nova conta de biblioteca online
  • O bibliotecário então seleciona o tipo de conta de usuário da biblioteca
  • O bibliotecário insere os dados do usuário
  • Os detalhes do usuário são verificados usando o banco de dados de credenciais do usuário
  • A nova conta de usuário da biblioteca é criada
  • Um resumo dos detalhes da nova conta é enviado por e-mail ao usuário

A partir de cada uma dessas etapas, você pode especificar facilmente quais mensagens devem ser trocadas entre os objetos no diagrama de sequência. Quando estiver claro, você pode seguir em frente e começar a desenhar o diagrama de sequência.

O diagrama de sequência abaixo mostra como os objetos no sistema de gerenciamento de biblioteca online interagem entre si para executar a função 'Criar nova conta de usuário da biblioteca'.

Como desenhar um diagrama de sequência - tutorial de diagrama de sequência

Erros Comuns do Diagrama de Sequência

Ao desenhar diagramas de sequência, os designers tendem a cometer esses erros comuns. Ao evitar esses erros, você pode garantir a qualidade do seu diagrama.

  • Adicionando muitos detalhes. Isso desordena o diagrama e dificulta a leitura.
  • Diagramas de seqüência obsoletos e desatualizados que são irrelevantes quando comparados às interfaces, arquiteturas reais etc. do sistema. Não se esqueça de substituí-los ou modificá-los.
  • Não deixando espaço em branco entre o texto do caso de uso e a seta da mensagem; isso torna difícil para qualquer um ler o diagrama.
  • Não considerar cuidadosamente as origens das setas de mensagem.

Veja esses erros comuns explicados em detalhes no Guia do Diagrama de Sequência: Erros comuns a serem evitados ao desenhar diagramas de sequência.

Exemplos e modelos de diagrama de sequência

A seguir estão alguns exemplos de diagramas de sequência e modelos desenhados usando o Creately. Crie diagramas de sequência online usando a ferramenta online do Creately. Clique no modelo para abri-lo no editor.

Diagrama de Sequência de um Sistema de Exame Online

Exame Online - Modelo de Diagrama de Sequência
Clique na imagem para editá-la online

Sistema de Exame Online - Diagrama de Classes (UML)

Exemplo de Diagrama de Sequência de um Sistema de Gestão Escolar

Sistema de Gestão Escolar - Modelo de Diagrama de Sequência

Exemplo de um fragmento de combinação de opções

Exemplo de um fragmento de opção

Exemplo de uma sequência de loops

Loops - Exemplo de Diagrama de Sequência

Aqui estão mais alguns modelos e exemplos de diagramas de sequência que você pode editar imediatamente.

Tutorial do Diagrama de Sequência – Apresentação do SlideShare

Guia do diagrama de sequência Power Point (PPT) da Creately

Feedback sobre o Tutorial do Diagrama de Sequência

Este tutorial de diagrama de sequência abrange tudo o que você precisa saber sobre diagramas de sequência e como desenhá-los. Se você tiver alguma sugestão ou dúvida sobre o tutorial do diagrama de sequência, sinta-se à vontade para deixar um comentário.

Mais tutoriais de diagrama

  • Tutorial de Modelagem de Processos de Negócios (Guia BPM Explicando Recursos)
  • Guia de fluxograma final (tutorial de fluxograma completo com exemplos)
  • Tutorial de diagrama de casos de uso (guia com exemplos)