Read this post in: de_DEen_USes_ESfr_FRhi_INid_IDjapl_PLru_RUvizh_CNzh_TW

Tudo o que você precisa saber sobre diagramas de sequência: um guia abrangente

Introdução

UMLDiagramas de sequência 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. Diagramas de sequência são focados no tempo e mostram visualmente a ordem da interação 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 sequencial, é um diagrama de interação UML. Ele mostra a colaboração dinâmica entre múltiplos objetos descrevendo a ordem temporal em que as mensagens são enviadas entre eles.

No UML, um objeto em um diagrama de sequência é representado por um retângulo contendo o nome do objeto, sublinhado. Um objeto pode ser nomeado de uma das três maneiras:

  • O nome do objeto

  • O nome do objeto e sua classe

  • Apenas o nome da classe (objeto anônimo)

Edite este diagrama de sequência

Os objetos do diagrama de sequência

  1. Mostrar a ordem das interações entre objetos: Modelar o comportamento de interação como passagem de mensagens e mostrar a interação entre objetos dinamicamente, descrevendo como as mensagens são enviadas e recebidas entre eles.

  2. Ênfase temporal: Comparado com outros diagramas UML, um diagrama de sequência dá mais ênfase à ordem cronológica do comportamento de interação.

  3. Visualização de concorrência: Pode descrever visualmente o processo de concorrência.

Os elementos do diagrama de sequência

  1. Ator: Ator do sistema, que pode ser pessoas, máquinas, outros sistemas, sub-sistemas; usado para representar no diagrama de sequência temporal.

  2. Objeto: Existem três maneiras de nomear objetos:

    • Objeto nomeado com classe: Inclui o nome do objeto e o nome da classe, por exemplo:objeto: classe

    • Objeto anônimo: Mostra apenas o nome da classe, por exemplo::curso

    • Apenas objeto nomeado: Mostra apenas o nome do objeto, mas não o nome da classe, por exemplo: palestrante

    As três formas de nomeação estão disponíveis; escolha a que for mais fácil de entender para as pessoas que leem o diagrama.

  3. Ordem dos objetos:

    • A ordem esquerda e direita dos objetos não é importante

    • Coloque os objetos com interações frequentes o mais próximos possível

    • Coloque o objeto que inicia 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 sequência, indicando por quanto tempo o objeto existiu.

Foco de Controle (Ativação)

Também conhecido como período de ativação, este é o símbolo para o período de tempo durante o qual o objeto realizará a operação correspondente. Pode ser interpretado como um par de colchetes { } na semântica do C; representado por um pequeno retângulo. Representa o período durante o qual um elemento está realizando uma operação. O topo e a base do retângulo estão alinhados, respectivamente, com o tempo de início e o tempo de conclusão.

Mensagens

As mensagens são geralmente classificadas em três tipos:

  1. Mensagem Síncrona: O remetente de uma mensagem passa o controle para o receptor da mensagem, então interrompe a atividade e aguarda que o receptor devolva ou libere o controle, sendo usado para indicar sincronização.

  2. Mensagem Assíncrona: O remetente de uma mensagem passa o sinal ao receptor da mensagem por meio da mensagem e então continua sua atividade sem esperar que o receptor devolva a mensagem ou o controle. O receptor e o remetente de uma mensagem assíncrona estão trabalhando em paralelo.

  3. Mensagem de Retorno: Indica uma retorno de uma chamada de procedimento.

Mensagens de Criação e Destrução

Os participantes não necessariamente vivem durante toda a duração da interação em um diagrama de sequência. Os participantes podem ser criados e destruídos de acordo com as mensagens que estão sendo trocadas.

  • Mensagem de Construtor: Cria seu receptor. O remetente que já existe no início da interação é colocado na parte superior do diagrama. Os destinos criados durante a interação por uma chamada de construtor são automaticamente colocados mais para baixo no diagrama.

  • Mensagem de Destrutor: Destroi seu receptor. Existem outras formas de indicar que um destino é destruído durante uma interação. Apenas quando a destruição de um destino for definida como ‘após o destrutor’ é necessário usar um destrutor.

Mensagens Não Instantâneas

As mensagens são frequentemente consideradas instantâneas, portanto, o tempo necessário para chegar ao receptor é desprezível. As mensagens são desenhadas como uma seta horizontal. Para indicar que leva um certo tempo até que o receptor realmente receba uma mensagem, um usa-se uma seta inclinada.

Fragmentos de Combinação

Um fragmento de sequência é representado como uma caixa chamada fragmento combinado, que envolve uma parte da interação no gráfico de sequência. O operador de fragmento (no canto superior esquerdo) indica o tipo do fragmento.

Fragmentos interativos permitem agrupar mensagens relacionadas em um diagrama de sequência. Vários tipos de fragmentos pré-definidos estão disponíveis, permitindo especificar resultados alternativos, mensagens paralelas ou laços.

Os fragmentos 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 é referido como operador de interação na UML.

Exemplo – Cenário de Colocação de Pedido

Um membro da embarcação que deseja fazer um pedido online. Os itens pedidos serão enviados ao membro por courier ou correio regular, dependendo do seu status de membro (VIP, membro regular). Se o membro selecionar a opção de notificação no pedido, a loja enviará uma notificação de confirmação ao membro.

Edite 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 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.

  1. Passo 1 e 2: Cliente cria um pedido.

  2. Passo 3: Cliente adiciona itens ao pedido.

  3. Passo 4, 5: Cada item é verificado quanto à disponibilidade no estoque.

  4. Passo 6, 7, 8: Se o produto estiver disponível, será adicionado ao pedido.

  5. Passo 9: Retornar

  6. Passo 10, 11: Salvar e destruir pedido

Edite 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
alt Fragmentos múltiplos alternativos: apenas o que tiver a condição verdadeira será executado.
opt Opcional: o fragmento é executado apenas se a condição fornecida for verdadeira. Equivalente a um alt com apenas um traço.
par Paralelo: cada fragmento é executado em paralelo.
loop Laço: o fragmento pode ser executado múltiplas vezes, e a condição guarda indica a base da iteração.
crítico Região crítica: o fragmento pode ter apenas uma thread executando-o de cada vez.
neg 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.
dd Diagrama de sequência: usado para envolver todo um diagrama de sequência.

Observações Importantes:

  • É possível combinar quadros para capturar, por exemplo, laços ou ramificações.

  • Palavras-chave de fragmentos combinados: alt, opt, break, par, seq, strict, neg, crítico, ignore, consider, assert e loop.

  • As restrições são geralmente usadas para mostrar restrições de tempo em mensagens. Elas podem se aplicar ao tempo de uma mensagem ou aos intervalos entre mensagens.

Exemplos de Fragmentos Combinados

1. Escolha (Alt)

Um fragmento alternativo fornece vários fragmentos alternativos protegidos (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…

Edite este Diagrama de Sequência

2. Opção (Opt)

Contém uma sequência de ocorrências possíveis ou não ocorrências, o que significa que um fragmento opcional é executado apenas se alguma condição de guarda for verdadeira:

Edite este Diagrama de Sequência

3. Laço (Loop)

Um laço permite que um fragmento seja repetido até que alguma condição de guarda se torne falsa:

Edite este Diagrama de Sequência

4. Quebra

Uma quebra permite escapar de um laço envolvente quando alguma condição de guarda se torna verdadeira:

Edite 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 combinado de quebra porque trata a condição saldo < valor como uma exceção em vez de como 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”, 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.

5. Paralelo

Um fragmento paralelo permite que múltiplas interações ocorram em paralelo:

Edite este Diagrama de Sequência

Quadros

Um quadro fornece uma maneira de encapsular um diagrama de sequência.

Edite este Diagrama de Sequência

Referência (Ref)

Um quadro pode ser referenciado em outro diagrama de sequência:

Edite este Diagrama de Sequência

Protocolos

Edite este Diagrama de Sequência

Colaborações

Edite este Diagrama de Sequência

Cenários

Edite este Diagrama de Sequência

Sinais e Receções

Um leiloeiro divulga um preço proposto para um item em uma sala cheia de lances ansiosos. Quando um loteiro ouve a proposta, decide aceitar o preço ou não.

Em um leilão automatizado, como o leiloeiro divulgará a 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 receções. Sinais são uma espécie especial de classe. O nome da receção geralmente corresponde ao nome do sinal. As receções são mostradas em um compartimento separado:

Edite 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:

Edite este Diagrama de Sequência

Crítico

Edite este Diagrama de Sequência

Outros Tipos de Fragmentos

  • Rígido

  • Afirmar

  • Considerar

  • Ignorar

  • Região

  • Neg

Resumo da Notação do Diagrama de Sequência

Descrição da Notação Representação Visual
Ator

  • um tipo de papel desempenhado por uma entidade que interage com o sujeito (por exemplo, trocando sinais e dados)
  • externo ao sujeito (ou seja, no sentido de que uma instância de um ator não faz parte da instância do seu sujeito correspondente).
  • representam papéis desempenhados por usuários humanos, hardware externo ou outros sujeitos.

Observe que:

  • Um ator não representa necessariamente uma entidade física específica, mas apenas um papel particular de alguma entidade
  • Uma pessoa pode desempenhar o papel de vários atores diferentes e, inversamente, um determinado ator pode ser interpretado por várias pessoas diferentes.
UML Sequence Diagram: Actor example
Linha de Vida

  • Uma linha de vida representa um participante individual na Interatividade.
UML Sequence Diagram: Lifeline example
Ativações

  • Um retângulo fino na linha de vida representa o período durante o qual um elemento está realizando uma operação.
  • O topo e a base do retângulo estão alinhados com o tempo de início e o tempo de conclusão, respectivamente
UML Sequence Diagram: Activation example
Mensagem de Chamada

  • Uma mensagem define uma comunicação específica entre linhas de vida de uma interação.
  • A mensagem de chamada é um tipo de mensagem que representa a invocação de uma operação da linha de vida-alvo.
UML Sequence Diagram: Call message example
Mensagem de Retorno

  • Uma mensagem define uma comunicação específica entre Linhas de Vida de uma Interação.
  • Uma mensagem de retorno é um tipo de mensagem que representa a passagem de informações de volta ao chamador de uma mensagem anterior correspondente.
UML Sequence Diagram: Return message example
Mensagem Auto

  • Uma mensagem define uma comunicação específica entre Linhas de Vida de uma Interação.
  • Uma mensagem auto é um tipo de mensagem que representa a invocação de uma mensagem da mesma linha de vida.
UML Sequence Diagram: Self message example
Mensagem Recursiva

  • Uma mensagem define uma comunicação específica entre Linhas de Vida de uma Interação.
  • Uma mensagem recursiva é um tipo de mensagem que representa a invocação de uma mensagem da mesma linha de vida. Seu destino aponta para uma ativação acima da ativação a partir da qual a mensagem foi invocada.
UML Sequence Diagram: Recursive message example
Mensagem de Criação

  • Uma mensagem define uma comunicação específica entre Linhas de Vida de uma Interação.
  • Uma mensagem de criação é um tipo de mensagem que representa a instanciação da linha de vida (alvo).
UML Sequence Diagram: Create message example
Mensagem de Destruição

  • Uma mensagem define uma comunicação específica entre Linhas de Vida de uma Interação.
  • Uma mensagem de destruição é um tipo de mensagem que representa o pedido de destruição do ciclo de vida da linha de vida alvo.
UML Sequence Diagram: Destroy message example
Mensagem de Duração

  • Uma mensagem define uma comunicação específica entre Linhas de Vida de uma Interação.
  • A mensagem de duração mostra a distância entre dois instantes de tempo para a invocação de uma mensagem.
UML Sequence Diagram: Duration message example
Nota
Uma nota (comentário) permite anexar várias observações a elementos. Um comentário não possui força semântica, mas pode conter informações úteis para um modelador.

Geração de Diagramas de Sequência com Inteligência Artificial

O Visual Paradigm oferece suporte robusto com inteligência artificial para Diagramas de Sequência UML, focando na transformação de descrições em linguagem natural em modelos de interação detalhados e arquitetonicamente sólidos. Seus ferramentas permitem que você pule o desenho manual, passando diretamente de um cenário baseado em texto para um diagrama profissional em segundos.

Recursos Principais de Diagramas de Sequência com IA

  • Geração de Linguagem Natural: Você pode digitar uma solicitação simples como “um usuário entra em um site”, e a IA identifica automaticamente os participantes (linhas de vida), fluxos de mensagens e sequências de ativação.

  • Automação de Lógica Complexa: A IA manipula inteligentemente notações avançadas do UML, como fragmentos alternativos (alt), fragmentos opcionais (opt) e laços com base na sua descrição textual da lógica condicional.

  • Ferramenta de Aperfeiçoamento com IA: Este aplicativo especializado converte código de interação simples ou prompts de alto nível em plantas detalhadas do MVC (Modelo-Visualização-Controlador). Ele decompõe automaticamente um cenário em camadas arquitetônicas apropriadas, como componentes de Visualização, Controlador e Modelo.

  • Edição Conversacional: Por meio do “Chatbot de IA do Visual Paradigm, você pode refinar diagramas iterativamente usando comandos como “Adicionar um estado de reinicialização” ou “Renomear Usuário para Cliente”.

  • Análise de Design Inteligente: Você pode pedir à IA para criticar seu diagrama, como identificar chamadas síncronas que deveriam ser assíncronas para melhorar o desempenho do sistema.

Ecosistema e Integração

  • Acesso Multiplataforma: Gere diagramas usando o Chatbot de IA ou Visual Paradigm Online, depois importe-os no Visual Paradigm Desktop aplicativo para modelagem avançada e engenharia de código.

  • Documentação Automatizada: A IA pode gerar resumos do projeto, modelos de comportamento detalhados e documentação da arquitetura MVC diretamente a partir dos seus diagramas de sequência.

  • Sinergia entre Modelos: A IA do Visual Paradigm pode conectar diferentes tipos de diagramas, como converter um caso de uso de alto nível em um diagrama de Atividade ou de Sequência detalhado com decomposição passo a passo guiada.


  1. Referências
  2. Diagrama de Sequência UML: Um Guia Definitivo para Modelar Interações com IA: Guia abrangente sobre o uso de IA para modelar diagramas de sequência UML e interações
  3. Como Transformar Requisitos em Diagramas com um Chatbot de IA: Aprenda como transformar requisitos textuais em diagramas visuais usando tecnologia de chatbot de IA
  4. Ferramenta Gratuita de Refinamento de Diagramas de Sequência com IA: Acesse a ferramenta com IA do Visual Paradigm para refinar e aprimorar diagramas de sequência
  5. Ferramenta de Refinamento de Diagramas de Sequência com IA – Visual Paradigm: Recursos profissionais para criação e aprimoramento de diagramas de sequência com auxílio de IA
  6. Chatbot de IA do Visual Paradigm: Chatbot de IA interativo para criar e editar diagramas UML por meio de linguagem natural
  7. Recursos do Chatbot de IA – Visual Paradigm: Visão geral das capacidades do chatbot de IA para geração e modelagem de diagramas
  8. Tutorial de Diagrama de Sequência com IA do Visual Paradigm: Tutorial em vídeo demonstrando a criação de diagramas de sequência com IA
  9. Revisão Abrangente: Recursos de Geração de Diagramas com IA do Visual Paradigm: Revisão detalhada das capacidades de geração de diagramas com IA do Visual Paradigm
  10. Demonstração dos Recursos de IA do Visual Paradigm: Vídeo de demonstração dos recursos de IA no Visual Paradigm
  11. Tutorial de IA do Visual Paradigm: Tutorial que demonstra as capacidades de IA no Visual Paradigm
  12. Como o Ecossistema com IA do Visual Paradigm Transforma o Desenvolvimento de UML: Análise de como a IA transforma os fluxos de trabalho de desenvolvimento de UML no Visual Paradigm