View on GitHub

manual-da-engenharia-para-codar

Este é o manual para compromissos de "código com" a engenharia.

Diagramas de Sequência

Propósito

Este documento tem como objetivo fornecer uma compreensão básica do que são, por que são usados e como incorporar Diagramas de Sequência como parte de um envolvimento. Quanto ao como, a seção na parte inferior fornecerá ferramentas e complementos para simplificar o máximo possível a geração de Diagramas de Sequência por meio do VSCode.

A Wikipedia define os Diagramas de Sequência UML como responsáveis por:

representar os objetos envolvidos no cenário e a sequência de mensagens trocadas entre os objetos necessários para realizar a funcionalidade do cenário

O que é um cenário? Pode ser:

O que é uma mensagem nesse contexto? Pode ser:

O que é um objeto nesse contexto? Pode ser:

Principais Pontos

Um Diagrama de Sequência deve:

É aceitável que um único Diagrama de Sequência tenha muitos cenários diferentes se tiverem algum contexto relacionado que justifique que eles sejam agrupados.

Outro ponto importante a ter em mente é que os objetos envolvidos em um Diagrama de Sequência devem se referir aos Componentes existentes de um Diagrama de Componentes.

Existem duas áreas em que a complexidade pode resultar em um Diagrama de Sequência excessivamente “lotado”, tornando-o caro de manter. São elas:

  1. Grande número de objetos/componentes envolvidos em um cenário específico.
  2. Captura de todas as possíveis situações de “falha” que um cenário pode encontrar.

Grande Número de Objetos

Um Diagrama de Sequência normalmente começa com uma persona de usuário final realizando uma ação e, em seguida, mostra todos os vários componentes e transferências de solicitações/dados envolvidos nesse cenário. No entanto, na maioria das vezes, o fluxo completo de ponta a ponta para esse cenário pode ser muito complexo para ser capturado em um único Diagrama de Sequência.

Quando esse nível de complexidade ocorrer, considere criar Diagramas de Sequência separados para subcenários e usá-los como objetos em um Diagrama de Sequência específico. Exemplos disso são “Autenticação” ou “Autorização”. Quase todos os cenários de persona de usuário terão vários objetos/componentes envolvidos em um desses subcenários, mas não é necessário incluí-los em todos os Diagramas de Sequência quando os subcenários têm um Diagrama de Sequência autônomo criado.

Certifique-se de que, ao usar essa abordagem de subcenários, eles tenham um nome que encapsule o que o subcenário está realizando e determine o “ator” apropriado e a “ação” que inicia o subcenário.

A combinação e narração de histórias entre esses Diagramas de Sequência de usuários finais e Diagramas de Sequência de subcenários podem melhorar significativamente a legibilidade, distribuindo o nível de complexidade em vários diagramas e aproveitando a reutilização de subcenários comuns.

Lidando com um Grande Número de Situações de Falha

Outro fator de alta complexidade são as possíveis situações de falha que um cenário específico pode encontrar. Cada objeto/componente envolvido em um cenário pode ter várias situações de “falha” diferentes, o que pode resultar em um Diagrama de Sequência muito confuso.

Para tornar realista a gestão de todas essas situações, tente:

Quando Criar?

Como os Diagramas de Sequência representam uma visão detalhada do comportamento do sistema, delineando as várias mensagens/solicitações enviadas dentro do sistema, é recomendável começar a criar esses diagramas desde o início de um envolvimento. Atualize-os à medida que as várias comunicações entre Componentes são introduzidas no sistema. Os riscos de não criar Diagramas de Sequência no início são:

Devido à granularidade inerente do sistema, os Diagramas de Sequência não precisarão ser atualizados com a mesma frequência que os Diagramas de Classes, mas podem exigir mais manutenção do que os Diagramas de Componentes. Coisas que podem justificar a atualização de um Diagrama de Sequência incluem:

de Sequência, como dividir um componente em vários ou consolidar muitos Componentes em um único

Exemplos

Cenário de Colocação de Pedido:

image

Cenário de Autenticação de Usuário no Facebook:

image

Versionamento

Como os Diagramas de Sequência são mais caros de manter, é recomendável “publicar” uma imagem do diagrama gerado com frequência, sempre que um novo “caso de uso” ou “cenário” for identificado como parte do comportamento ou requisitos do sistema.

O elemento mais importante desses diagramas é garantir que a versão mais recente seja precisa. Se o diagrama mais recente mostrar uma sequência de comunicação entre componentes que não são mais válidos, o diagrama causará mais prejuízo do que benefício.

A abordagem abaixo pode ser usada para ajudar a equipe a determinar com que frequência atualizar a versão publicada do diagrama:

Dependendo da ferramenta utilizada, o versionamento automático pode ser realizado sempre que uma atualização no Diagrama for feita. Caso contrário, é recomendável capturar versões distintas sempre que houver uma necessidade específica do cliente de ter um instantâneo do projeto em um determinado momento. O requisito fundamental é que o diagrama mais recente seja publicado e todos saibam como acessá-lo quando a entrega ao cliente se aproximar.

Recursos