Diagramas de Sequência UML são diagramas de interação essenciais que detalham como as operações são realizadas dentro de um sistema. Ao capturar a interação entre objetos no contexto de uma colaboração, esses diagramas fornecem uma representação visual do tempo, mostrando a ordem específica em que as mensagens são trocadas.
Este guia abrangente cobre tudo, desde definições básicas até fragmentos de combinação complexos, ajudando você a modelar comportamentos de interação de forma eficaz.
Um diagrama de sequência (também conhecido como diagrama sequencial) é um diagrama de interação UML. Ele demonstra a colaboração dinâmica entre múltiplos objetos ao descrever a ordem temporal em que as mensagens são enviadas entre eles. Diferentemente de outros diagramas UML, um diagrama de sequência dá ênfase específica à ordem cronológica do comportamento de interação, descrevendo visualmente o processo de concorrência.
Criar diagramas de sequência complexos manualmente pode ser demorado, exigindo alinhamento preciso das linhas de vida e notação precisa para cada tipo de mensagem.Visual Paradigm AItransforma esse processo ao permitir que você gere diagramas UML de sequência profissionais por meio de prompts em linguagem natural.
Antes de mergulhar em cenários complexos, é essencial compreender os elementos fundamentais que compõem um diagrama de sequência.
Um ator representa um papel desempenhado por uma entidade que interage com o sistema, como um usuário humano, uma máquina ou um sistema externo. Observe que um ator não representa necessariamente uma entidade física específica, mas apenas um papel particular. Uma pessoa pode desempenhar o papel de vários atores, e, inversamente, um papel de ator pode ser desempenhado por várias pessoas.
Objetos são representados por retângulos que contêm o nome do objeto. Existem três formas padrão de nomear objetos no UML:
objeto: classe).:curso).professor).Dica: Coloque os objetos com interações frequentes próximos uns dos outros. O objeto que inicia a interação geralmente é colocado na extremidade mais à esquerda.
Uma linha tracejada que se estende para baixo a partir do ícone do objeto indica por quanto tempo o objeto existe. Este eixo vertical representa o tempo.
Representado por um retângulo fino na linha de vida, o Foco de Controle (ou período de ativação) indica o período de tempo durante o qual um elemento está realizando uma operação. O topo do retângulo alinha-se com o tempo de início, e a base alinha-se com o tempo de conclusão.
As mensagens definem a comunicação entre as linhas de vida. O remetente passa o controle ou sinais para o destinatário.
Os participantes nem sempre vivem durante toda a duração de um diagrama. Um mensagem construtora cria um destinatário (colocando o novo objeto mais para baixo no diagrama). Um mensagem destrutora destrói seu destinatário, encerrando sua linha de vida.
Para modelar lógica complexa como laços, ramificações e alternativas, o UML utiliza Fragmentos Combinados. São quadros retangulares que envolvem uma parte da interação.
| Operador | Significado |
|---|---|
| alt | Fragmentos múltiplos alternativos; apenas aquele cuja condição for verdadeira será executado (equivalente a if..else). |
| opt | Opcional; o fragmento é executado apenas se a condição for verdadeira. |
| loop | O fragmento é executado múltiplas vezes com base em uma condição de guarda. |
| break | Permite escapar de um loop envolvente quando uma condição de guarda se torna verdadeira (muitas vezes usado para tratamento de exceções). |
| par | Paralelo; cada fragmento é executado simultaneamente. |
| crítico | Região crítica; apenas uma thread pode executar este fragmento por vez. |
| ref | Referência; refere-se a uma interação definida em outro diagrama. |
Considere um cenário em que um cliente interage com um objeto Pedido e um objeto Estoque. O fluxo é o seguinte:
Neste cenário, criar o Pedido é um Mensagem Criar, verificar o estoque é um Mensagem Síncrona, e salvar o pedido é um Mensagem Auto ou uma chamada a um objeto de banco de dados.
Usar um Breakfragmento é ideal para modelar erros. Por exemplo, em uma transação bancária:
saldo < valor.addDebitTransactioncontinua.Para garantir que seus diagramas sejam compatíveis e legíveis, consulte esta lista rápida de verificação de notação: