Tudo O Que Você Precisa Saber Sobre Diagramas De Sequência
Diagramas de Sequência UML são diagramas de interação que detalham como as operações são realizadas. Eles capturam a interação entre objetos no contexto de uma colaboração. Os Diagramas de Sequência são focados no tempo e mostram a ordem da interação visualmente, usando o eixo vertical do diagrama para representar o tempo, quais mensagens são enviadas e quando.
O que é um diagrama de sequência?
Um diagrama de sequência, também conhecido como diagrama de sequência, diagrama sequencial ou diagrama sequencial, é um diagrama de interação UML. Ele mostra a colaboração dinâmica entre vários objetos, descrevendo a ordem temporal na qual as mensagens são enviadas entre eles.
Na UML, um objeto em um diagrama de seqüência é desenhado como um retângulo contendo o nome do objeto sublinhado. Um objeto pode ser nomeado de três maneiras: o nome do objeto, o nome do objeto e sua classe ou apenas o nome da classe (objeto anônimo). As três maneiras de nomear um objeto são mostradas na Figura abaixo.
EDITAR ESTE DIAGRAMA DE SEQUÊNCIA
Os Objetos do Diagrama de Sequência
- Mostre a ordem das interações entre os objetos. Modele o comportamento de interação como passagem de mensagem e mostre a interação entre objetos dinamicamente, descrevendo como as mensagens são enviadas e recebidas entre eles.
- Comparado com outros diagramas UML, um diagrama de seqüência temporal coloca mais ênfase na ordem cronológica do comportamento de interação.
- Ele pode descrever visualmente o processo de simultaneidade.
Os Elementos do Diagrama de Sequência
1. Ator – Atores do sistema, que podem ser pessoas, máquinas, outros sistemas, subsistemas; usado para representar no diagrama de seqüência temporal.
2. Objeto – Existem três formas de nomear objetos:
- Inclui o nome do objeto e o nome da classe, por exemplo: live class: class, no diagrama de série temporal, com “object: class”.
- Mostra apenas o nome da classe, ou seja, é um objeto anônimo, por exemplo: :course; no diagrama de temporização, com “:class”.
- Mostra apenas o nome do objeto, mas não o nome da turma, por exemplo: professor; no diagrama de temporização, é representado por “objeto”.
Todos os três métodos de nomenclatura estão disponíveis, o que é mais fácil para as pessoas que lêem o gráfico cronológico entenderem, escolha qual deles.
3. A ordem dos objetos
- A ordem esquerda e direita dos objetos não é importante, mas para fazer um diagrama claro e organizado, os dois princípios a seguir devem ser seguidos: coloque os objetos com interações frequentes o mais próximo possível;
- Coloque o objeto que inicializa toda a atividade de interação na extremidade esquerda.
linha de vida
Uma linha tracejada que se estende para baixo a partir do ícone do objeto no diagrama de tempo, indicando há quanto tempo o objeto existe.
- Foco de controle (também conhecido como período de ativação) é o símbolo do período de tempo durante o qual o objeto executará a operação correspondente. Ele pode ser interpretado como um par de colchetes { } na semântica C; representado por um pequeno retângulo. Representa o período durante o qual um elemento está realizando uma operação. A parte superior e inferior do retângulo estão alinhadas com o tempo de início e conclusão, respectivamente.
- As mensagens são geralmente classificadas como Mensagem Síncrona, Mensagem Assíncrona e Mensagem de Retorno.
Observe que
- O remetente de uma mensagem passa o controle para o destinatário da mensagem, então para a atividade e espera que o destinatário da mensagem desista ou retorne o controle que é usado para indicar a sincronização.
- O remetente de uma mensagem passa o sinal para o destinatário da mensagem por meio da mensagem e continua sua atividade sem esperar que o destinatário retorne a mensagem ou controle. O receptor e o remetente de uma mensagem assíncrona estão trabalhando simultaneamente.
- A mensagem de retorno indica um retorno de uma chamada de procedimento.
Mensagens de Criação e Destruição
Os participantes não vivem necessariamente durante toda a duração da interação de um diagrama de sequência. Os participantes podem ser criados e destruídos de acordo com as mensagens que estão sendo passadas.
Uma mensagem do construtor cria seu receptor. Os remetentes que já existem no início da interação são colocados na parte superior do diagrama. Os destinos que são criados durante a interação por uma chamada de construtor são colocados automaticamente mais abaixo no diagrama.
Uma mensagem destruidora destrói seu receptor. Existem outras maneiras de indicar que um alvo é destruído durante uma interação. Somente quando a destruição de um alvo é definida como ‘depois do destruidor’, você precisa usar um destruidor.
mensagem não instantânea
As mensagens são frequentemente consideradas instantâneas, portanto, o tempo que leva para chegar ao receptor é insignificante. As mensagens são desenhadas como uma seta horizontal. Para indicar que leva um certo tempo até que o receptor realmente receba uma mensagem, uma seta inclinada é usada .
fragmentos de combinação
Um fragmento de sequência é representado como uma caixa chamada de fragmento combinado, que inclui uma parte da interação no grafo de sequência. O operador de fragmento (no canto superior esquerdo) indica o tipo do fragmento. Os fragmentos interativos permitem agrupar mensagens relacionadas em um diagrama de sequência. Vários tipos de fragmentos predefinidos estão disponíveis, permitindo que você especifique resultados alternativos, mensagens paralelas ou loops.
O fragmento no diagrama de sequência são quadros retangulares desenhados sobre uma parte do diagrama. Eles representam a estrutura condicional que afeta o fluxo de mensagens. Esses quadros são chamados de fragmentos combinados na especificação UML e os contêineres são chamados de operandos de interação. Os quadros são rotulados no canto superior esquerdo. Esse rótulo é chamado de operador de interação em UML.
Exemplo – colocando um cenário de pedido
Um membro do navio que deseja fazer um pedido online. Os artigos encomendados serão enviados ao sócio por correio expresso ou correio normal, consoante o seu estatuto de sócio (VIP, sócio regular). Se o membro selecionar a opção de notificação no pedido, a loja enviará uma notificação de confirmação ao membro.
EDITAR ESTE DIAGRAMA DE SEQUÊNCIA
Outro Exemplo: Fazer Pedido
Um diagrama de sequência é um diagrama bidimensional com o eixo horizontal representando objetos e o eixo vertical representando o tempo, onde as mensagens são passadas horizontalmente entre os objetos e dispostas verticalmente em ordem cronológica. O exemplo mostra um diagrama de Sequência com três objetos participantes: Cliente, Pedido e Estoque. Mesmo sem conhecer a notação formalmente, você provavelmente pode ter uma boa ideia do que está acontecendo.
- Etapa 1 e 2: o cliente cria um pedido.
- Etapa 3: o cliente adiciona itens ao pedido.
- Etapa 4, 5: Cada item é verificado quanto à disponibilidade no estoque.
- Etapa 6, 7, 8: Se o produto estiver disponível, ele será adicionado ao pedido.
- Passo 9 retorno
- Etapa 10, 11: salve e destrua a ordem
EDITAR ESTE DIAGRAMA DE SEQUÊNCIA
Fragmentos de combinação comumente usados
Os tipos de fragmentos incluem ref, assert, loop, break, alt, opt e neg, ref, sd.
Operador | Significado |
alternativo | Múltiplos fragmentos alternativos: apenas aquele cuja condição for verdadeira será executado. |
optar | Opcional : o fragmento é executado apenas se a condição fornecida for verdadeira. Equivalente a um alt apenas com um traço. |
par | Paralelo : cada fragmento é executado em paralelo. |
ciclo | Loop : o fragmento pode ser executado várias vezes e o guard indica a base da iteração. |
crítico | Região crítica : o fragmento pode ter apenas uma thread executando-o por vez. |
negativo | Negativo : o fragmento mostra uma interação inválida. |
ref | Referência : refere-se a uma interação definida em outro diagrama. O quadro é desenhado para cobrir as linhas de vida envolvidas na interação. Você pode definir parâmetros e um valor de retorno. |
SD | Diagrama de sequência : usado para cercar um diagrama de sequência inteiro. |
Observe que:
- É possível combinar quadros para capturar, por exemplo, loops ou ramificações.
- Palavras-chave de fragmentos combinados : alt, opt, break, par, seq, strict, neg, critical, ignore, consider, assert e loop.
- As restrições geralmente são usadas para mostrar as restrições de tempo nas mensagens. Eles podem se aplicar ao tempo de uma mensagem ou aos intervalos entre as mensagens.
Exemplos de Fragmentos Combinados
(1) Choice (Alt) – Um fragmento alternativo fornece vários fragmentos alternativos guardados (separados por operandos de interação), ou seja, usado para especificar escolhas mutuamente exclusivas entre duas ou mais sequências de mensagens, equivalente ao clássico if..else…:
EDITAR ESTE DIAGRAMA DE SEQUÊNCIA
(2) Opção (Opt) – Contém uma sequência de possíveis ocorrências ou não ocorrências o que significa que um fragmento opcional só é executado se alguma condição de guarda for verdadeira:
EDITAR ESTE DIAGRAMA DE SEQUÊNCIA
(3) Loop (Loop) – Um loop permite que um fragmento seja repetido até que alguma condição de guarda se torne falsa:
EDITAR ESTE DIAGRAMA DE SEQUÊNCIA
Parar
Uma quebra permite que um loop envolvente seja escapado quando algum guarda se torna verdadeiro:
EDITAR ESTE DIAGRAMA DE SEQUÊNCIA
As quebras são mais comumente usadas para modelar o tratamento de exceções. Este exemplo de diagrama de sequência usa um fragmento de combinação de quebra porque trata a condição de saldo < valor como uma exceção em vez de um fluxo alternativo. Para ler este exemplo, começamos no canto superior esquerdo da sequência e lemos para baixo. Quando a sequência chega ao valor de retorno “saldo”, ela verifica se o saldo é menor que o valor. Se o saldo não for menor que o valor, a próxima mensagem enviada é a mensagem addDebitTransaction e a sequência continua normalmente.
Paralelo
Um fragmento paralelo permite que várias interações sejam executadas em paralelo:
EDITAR ESTE DIAGRAMA DE SEQUÊNCIA
Molduras
Um quadro fornece uma maneira de encapsular um diagrama de seqüência.
EDITAR ESTE DIAGRAMA DE SEQUÊNCIA
Referência (Ref)
Um quadro pode ser referenciado em outro diagrama de sequência:
EDITAR ESTE DIAGRAMA DE SEQUÊNCIA
Protocolos
EDITAR ESTE DIAGRAMA DE SEQUÊNCIA
Colaborações
EDITAR ESTE DIAGRAMA DE SEQUÊNCIA
Cenários
EDITAR ESTE DIAGRAMA DE SEQUÊNCIA
Sinais e Recepções
Um leiloeiro transmite uma proposta de preço para um item para uma sala lotada de licitantes ansiosos. Quando um licitante ouve a proposta, ele decide aceitar o preço ou não.
Em um leilão automatizado, como o leiloeiro fará a transmissão da proposta? Um objeto pode ter operações designadas que devem ser chamadas automaticamente se certos tipos de sinais de transmissão forem recebidos. Esses métodos são chamados de recepções. Sinais são um tipo especial de classe. O nome da recepção geralmente corresponde ao nome do sinal. As recepções são mostradas em um compartimento separado:
EDITAR ESTE DIAGRAMA DE SEQUÊNCIA
Em um diagrama de sequência, podemos representar um sinal como um sinal assíncrono e a recepção como uma invocação de recepção:
EDITAR ESTE DIAGRAMA DE SEQUÊNCIA
Crítico
EDITAR ESTE DIAGRAMA DE SEQUÊNCIA
Outros tipos de fragmentos
- Rigoroso
- Afirmar
- Considerar
- Ignorar
- Região
- Neg
Resumo da Notação do Diagrama de Sequência
Descrição da notação | Representação visual |
---|---|
Ator
Observe que:
|
|
linha de vida
|
|
Ativações
|
|
Mensagem de chamada
|
|
Mensagem de retorno
|
|
Automensagem
|
|
Mensagem Recursiva
|
|
Criar mensagem
|
|
Destruir mensagem
|
|
Mensagem de duração
|
|
ObservaçãoUma nota (comentário) permite anexar vários comentários aos elementos. Um comentário não carrega força semântica, mas pode conter informações úteis para um modelador. |