Tutorial de Diagrama de Sequência UML | Passo a Passo para Desenvolver Aplicações Modernas

00:28:33
https://www.youtube.com/watch?v=qaWShGkUiBo

Summary

TLDRO vídeo de Carlos Pizani ensina sobre diagramas de sequência, parte da notação UML, que são essenciais para modelar a interação entre os componentes de um sistema. Ele enumera as vantagens, como a clareza na visualização das interações e suporte na documentação das regras de negócio, e os contras, como a complexidade e o desafio de manutenção em diagramas grandes. O vídeo também detalha os elementos do diagrama, como atores, interfaces e conexões, mostrando um exemplo prático de um fluxo de login. Pizani conclui abordando como os diagramas se aplicam em arquiteturas modernas de software, como microsserviços.

Takeaways

  • 📈 Os diagramas de sequência aumentam a clareza nas interações entre componentes.
  • 🛠️ Eles facilitam a documentação e manutenção de sistemas.
  • 📚 Ajuda na especificação de sistemas de forma visual.
  • 🔄 Mensagens podem ser síncronas ou assíncronas no diagramas.
  • 🧩 Importante para a modelagem de aplicações modernas.
  • ☑️ Elementos principais incluem atores, controladores e entidades.
  • ⚙️ Os diagramas se aplicam efetivamente em arquiteturas de microsserviços.
  • 📊 Uma representação visual torna a compreensão mais acessível.
  • ✨ O uso de diagramas estimula a colaboração em equipe.
  • 🔍 Manutenção de diagramas complexos pode ser desafiadora.

Timeline

  • 00:00:00 - 00:05:00

    O vídeo aborda a importância de diagramas de sequência, que são fundamentais para a modelagem de sistemas enunciando a sequência de interações entre componentes. Carlos Pizani apresenta o conteúdo, discutindo os objetivos de aprender a criar esses diagramas, reconhecendo a relevância no ambiente atual de TI, bem como a notação UML na qual eles se inserem.

  • 00:05:00 - 00:10:00

    Diagramas de sequência, parte da notação UML, auxiliam na visualização clara das interações entre componentes de um sistema, o que promove uma melhor manutenção e opção de colaboração em equipes. O vídeo discute como esses diagramas ajudam a representar regras de negócio e a melhorar a comunicação entre os membros da equipe, destacando a clareza que um modelo visual oferece sobre um texto denso e descritivo.

  • 00:10:00 - 00:15:00

    Carlos apresenta os prós e contras dos diagramas de sequência, destacando vantagens como clareza, suporte na especificação do sistema e ajudando na colaboração. Em contraposição, ele menciona a complexidade de representar casos de uso muito elaborados, a dificuldade de manutenção quando se trata de diagramas complexos e a limitação de não servirem bem para representações de alto nível.

  • 00:15:00 - 00:20:00

    O vídeo continua com uma demonstração no iPad, onde Carlos explica os elementos que compõem um diagrama de sequência, como timelines, atores, boundary, control, entidade, e object, além de explicar a função de cada um desses elementos na representação de interações num sistema.

  • 00:20:00 - 00:28:33

    Carlos conclui mostrando como os conectores funcionam em um diagrama de sequência, como mensagens síncronas e assíncronas, e detalha um fluxo de login simples para exemplificar essas interações em um diagrama mais moderno, refletindo as arquiteturas de microsserviços contemporâneas, culminando em um convite para engajamento com o conteúdo.

Show more

Mind Map

Video Q&A

  • O que é um diagrama de sequência?

    Um diagrama de sequência é uma representação visual que ilustra as interações entre diferentes componentes de um sistema ao longo do tempo.

  • Quais são os benefícios de usar diagramas de sequência?

    Os principais benefícios incluem clareza nas interações, apoio à especificação de sistemas e facilitação da comunicação entre a equipe.

  • Quais são os desvantagens dos diagramas de sequência?

    As desvantagens incluem complexidade na leitura e manutenção, especialmente em casos de uso complexos.

  • Como funciona a notação UML?

    A notação UML (Unified Modeling Language) é uma linguagem padrão para especificar, visualizar, construir e documentar artefatos de sistemas de software.

  • Quais são os principais elementos de um diagrama de sequência?

    Os principais elementos incluem timelines, atores, controladores, entidades, mensagens síncronas e assíncronas.

  • O que são mensagens síncronas e assíncronas?

    Mensagens síncronas aguardam uma resposta imediata, enquanto mensagens assíncronas não esperam pela resposta antes de prosseguir.

  • Como os diagramas de sequência são aplicados em arquiteturas modernas?

    Eles podem ser usados para representar fluxos de interação em arquiteturas de microsserviços e outras aplicações modernas.

View more video summaries

Get instant access to free YouTube video summaries powered by AI!
Subtitles
pt
Auto Scroll:
  • 00:00:00
    fala ar tudo 100% com você no conteúdo
  • 00:00:03
    de hoje nós vamos falar sobre diagramas
  • 00:00:05
    de sequência e você vai sair daqui
  • 00:00:07
    aprendendo os pró os contras Por que que
  • 00:00:09
    você precisa saber fazer um diagrama de
  • 00:00:12
    sequência hoje em dia mais do que isso
  • 00:00:14
    você vai aprender todos os conectores de
  • 00:00:16
    um diagrama de sequência vai aprender
  • 00:00:18
    também como fazer um diagrama de
  • 00:00:20
    sequência naqueles modelos um pouquinho
  • 00:00:22
    mais tradicionais que a gente aprende lá
  • 00:00:23
    na faculdade e o modelo mais voltado
  • 00:00:26
    pros projetos pras aplicações dos dias
  • 00:00:29
    de hoje hoje Bacana Então bora pro
  • 00:00:42
    conteúdo aqui caso você ainda não me
  • 00:00:44
    conheça muito prazer eu me chamo Carlos
  • 00:00:45
    pizani E este aqui é o seu canal de
  • 00:00:48
    arquitetura de ti e caso você ainda não
  • 00:00:49
    seja inscrito aqui no nosso canal fica o
  • 00:00:52
    convite de você se inscrever por aqui
  • 00:00:54
    porque eu lanço conteúdo como esses com
  • 00:00:55
    uma grande frequência e você não pode
  • 00:00:57
    ficar de fora bacana bem então vamos
  • 00:01:00
    começar a falar sobre diagramas de
  • 00:01:02
    sequência aqui um diagrama de sequência
  • 00:01:04
    ele pertence à notação
  • 00:01:07
    uml caso você não tenha visto o nosso
  • 00:01:10
    conteúdo sobre o ML ou não saiba o que é
  • 00:01:12
    o ML nós fizemos Ok um vídeo já desta
  • 00:01:16
    série sobre diagramas da uml explicando
  • 00:01:18
    um pouquinho mais sobre o que que é uma
  • 00:01:20
    anotação tá bom fica o convite de você
  • 00:01:22
    assistir depois desse conteúdo vou
  • 00:01:24
    deixar o link tanto na descrição como
  • 00:01:26
    aqui no no card deste vídeo tá bom para
  • 00:01:29
    você assistir posteriormente a este
  • 00:01:31
    vídeo e só para você ter clareza o ML é
  • 00:01:34
    a anotação mais conhecida que existe ela
  • 00:01:37
    é muito popular ela foi muito
  • 00:01:38
    disseminada nos últimos 30 anos ensinada
  • 00:01:42
    em todas as Universidades e é muito
  • 00:01:44
    comum no dia a dia a gente ver ali
  • 00:01:46
    diagramas da uml sendo utilizadas pra
  • 00:01:49
    explicação de negócio pra explicação de
  • 00:01:52
    como funciona uma aplicação e de cara é
  • 00:01:55
    por isso que é importante você conhecer
  • 00:01:56
    diagramas de sequência os diagramas de
  • 00:01:59
    sequência eles servem fundamentalmente
  • 00:02:01
    para E adivinha ilustrar
  • 00:02:05
    sequências e o que que eu estou querendo
  • 00:02:07
    dizer com
  • 00:02:09
    isso ele ajuda na modelagem dos sistemas
  • 00:02:12
    tá e identificando mostrando pro pro pro
  • 00:02:16
    desenvolvedor ou para quem quer que
  • 00:02:18
    venha fazer ali uma aplicação Qual que é
  • 00:02:20
    a ordem Qual que é a sequência a
  • 00:02:22
    passagem de bastão entre uma caixinha e
  • 00:02:24
    outra tudo bem então era muito comum a
  • 00:02:27
    gente representar um caso de uso né a
  • 00:02:30
    gente tinha o desenho de um diagrama de
  • 00:02:31
    caso de uso em cima do diagrama de caso
  • 00:02:34
    de uso era feito ali por exemplo a
  • 00:02:36
    sequência da passagem de bastão dentro
  • 00:02:38
    do sistema entre as camadas do sistema
  • 00:02:41
    até chegar por exemplo lá no banco de
  • 00:02:44
    dados Então se tinha ali a visão do
  • 00:02:46
    processamento todo acontecendo aonde que
  • 00:02:49
    ficava cada regra de negócio né Em que
  • 00:02:50
    parte e também se tinha ali uma visão
  • 00:02:53
    Clara dos componentes que eram
  • 00:02:55
    utilizados então se eu utilizava ali um
  • 00:02:57
    banco de dados se eu utilizava um uma
  • 00:02:59
    ferramenta por exemplo onde eu tinha ali
  • 00:03:01
    persistência de arquivos um F server um
  • 00:03:04
    FTP por exemplo né ou outro componente
  • 00:03:07
    desse tipo tá então era muito comum se
  • 00:03:10
    usar para isso e hoje em dia a gente tem
  • 00:03:12
    mais complexidade mais caixinhas O que
  • 00:03:15
    faz o diagrama de sequência em alto
  • 00:03:17
    nível né Um pouquinho mais alto nível
  • 00:03:19
    ser muito útil também e antes de irmos
  • 00:03:22
    lá pro meu iPad onde nós vamos ver um
  • 00:03:24
    diagrama de sequência entender todos os
  • 00:03:26
    conectores entender como funcionava
  • 00:03:28
    Antigamente os desenhos de diagrama de
  • 00:03:30
    sequência e como funcionam hoje em dia
  • 00:03:33
    vamos falar um pouquinho sobre os prós e
  • 00:03:35
    os contras de você entender conhecer e
  • 00:03:37
    trabalhar também com diagramas de
  • 00:03:39
    sequência o primeiro ponto pro é que nós
  • 00:03:42
    temos clareza de como vai funcionar a
  • 00:03:45
    sequência das coisas a visualização da
  • 00:03:47
    interação entre todos os componentes que
  • 00:03:50
    é o grande propósito do diagrama de
  • 00:03:52
    sequência então nós temos essa visão
  • 00:03:54
    muito clara o que facilita e facilita
  • 00:03:56
    muito depois no futuro em uma manutenção
  • 00:03:58
    ou até mesmo no momento da construção
  • 00:04:00
    para entender como vai funcionar a
  • 00:04:02
    interação entre os objetos a segunda
  • 00:04:05
    grande vantagem é que ele apoia e apoia
  • 00:04:07
    demais na especificação de um sistema na
  • 00:04:11
    modelagem de um sistema então quando o
  • 00:04:13
    nosso analista de de sistemas ou
  • 00:04:16
    analista ali de negócio representa o
  • 00:04:19
    negócio em um diagrama de sequência fica
  • 00:04:22
    muito mais claro para quem vai
  • 00:04:23
    implementar como funciona a regra de
  • 00:04:25
    negócio a sequência da regra de negócio
  • 00:04:28
    acontecendo nos mais diversos
  • 00:04:30
    componentes que nós temos dentro de um
  • 00:04:32
    sistema e o terceiro grande ponto
  • 00:04:34
    positivo é que um Diagrama como este
  • 00:04:36
    ajuda na colaboração e na comunicação
  • 00:04:39
    entre os integrantes de um time por
  • 00:04:41
    exemplo isso porque fica bem claro né
  • 00:04:43
    como a gente já falou toda a regra de
  • 00:04:45
    negócio a sequência em que o negócio
  • 00:04:47
    acontece e em uma visão gráfica tudo
  • 00:04:49
    fica mais fácil quando a gente desenha
  • 00:04:51
    né como já tem aquele velho editado né
  • 00:04:54
    não está claro desenha e um desenho fica
  • 00:04:57
    muito mais fácil e fica mais divertido o
  • 00:04:58
    trabalho em beleza porque você consegue
  • 00:05:01
    entender melhor fica mais suave ali a a
  • 00:05:04
    o entendimento do software a
  • 00:05:06
    documentação do software quando está
  • 00:05:08
    tudo só escrito texto texto texto muitas
  • 00:05:11
    vezes desencoraja as outras pessoas os
  • 00:05:13
    desenvolvedores os colaboradores a ler e
  • 00:05:15
    entender e um diagrama tudo fica mais
  • 00:05:18
    intuitivo né o diagrama ele Convida os
  • 00:05:21
    profissionais ali A interpretá-lo então
  • 00:05:23
    por isso é uma grande vantagem trabalhar
  • 00:05:26
    sempre com diagramas e o diagrama como
  • 00:05:28
    esse que é super conhecido mais ainda e
  • 00:05:30
    quais são os contrapontos de se
  • 00:05:32
    trabalhar com um Diagrama como esse o
  • 00:05:33
    primeiro deles é a complexidade Por que
  • 00:05:36
    que a complexidade pizani embora o
  • 00:05:38
    diagrama ele seja relativamente simples
  • 00:05:40
    à medida que eu tenha um caso de uso ali
  • 00:05:42
    complexo para ser representado vão
  • 00:05:44
    ficando muitos elementos e acaba ficando
  • 00:05:46
    até um pouquinho difícil de você ler se
  • 00:05:49
    você não tiver ali impresso o seu
  • 00:05:51
    diagrama em uma folha ali a zero por
  • 00:05:54
    exemplo Tá eu já vi diagramas de
  • 00:05:56
    sequência precisar ser impressos
  • 00:05:58
    literalmente em uma folha a zero bem
  • 00:06:00
    grande colocado ali numa parede para
  • 00:06:02
    ficar claro era no caso um motor de
  • 00:06:05
    regras e era muito complexo tinha muito
  • 00:06:07
    interações e aí foi necessário colocar
  • 00:06:10
    em um em um em uma folha né a zero
  • 00:06:13
    colado em uma parede Então esse acaba
  • 00:06:15
    sendo um grande problema desse tipo de
  • 00:06:17
    diagrama porque você precisa ter uma
  • 00:06:20
    visão do topo do diagrama para você
  • 00:06:22
    conseguir entender o que tá está
  • 00:06:24
    acontecendo lá embaixo muitas vezes lá
  • 00:06:26
    nas últimas linhas dele lá no finalzinho
  • 00:06:28
    dele tá bom ele é lido sempre da
  • 00:06:30
    esquerda paraa direita e de cima para
  • 00:06:32
    baixo então por isso eh e como ele tem
  • 00:06:35
    trabalha com timelines a gente já vai
  • 00:06:37
    ver isso também lá no meu iPad Acaba
  • 00:06:39
    ficando um Pouquinho complicado mesmo a
  • 00:06:41
    leitura Se você não conseguir dar um
  • 00:06:43
    zoom ali toda hora ficar dando Zoom né
  • 00:06:45
    para ver o começo e o final do diagrama
  • 00:06:47
    Beleza o segundo ponto negativo é a
  • 00:06:49
    manutenção um Diagrama como esse pode
  • 00:06:51
    ficar muito complexo para ser mantido
  • 00:06:54
    isso porque como nós falamos se ele
  • 00:06:55
    tiver muitos elementos ali tiver muitas
  • 00:06:58
    passagens de bastão então fica realmente
  • 00:07:00
    complicado depois no futuro à medida que
  • 00:07:03
    você evolui o seu sistema por exemplo
  • 00:07:05
    alterar o seu diagrama de sequência
  • 00:07:07
    alteração dele por si só já é um
  • 00:07:09
    pouquinho complicada tá bom porque
  • 00:07:11
    imagina que eu preciso colocar um passo
  • 00:07:12
    ali no Meio do meu diagrama de sequência
  • 00:07:14
    de um grande diagrama de sequência Poxa
  • 00:07:16
    ter que puxar tudo para baixo colocar
  • 00:07:19
    ali no meio fazer os links é complicado
  • 00:07:22
    fazer manutenção em um diagrama simples
  • 00:07:25
    não mas em um diagrama complexo grande é
  • 00:07:27
    complicado e o terceiro ponto cont desse
  • 00:07:29
    tipo de diagrama é que ele é muito bom
  • 00:07:32
    para detalhar ali uma uma iteração
  • 00:07:34
    específica a sequência de acontecimentos
  • 00:07:37
    específica pequenininha mas ele não é
  • 00:07:39
    bom para você detalhar uma visão de alto
  • 00:07:41
    nível por exemplo de como funciona uma
  • 00:07:43
    arquitetura como um todo ele não é ideal
  • 00:07:46
    para isso beleza legal então agora
  • 00:07:47
    chegou a hora de irmos lá pro meu
  • 00:07:49
    computador onde eu vou mostrar para você
  • 00:07:50
    os conectores e como funciona esse
  • 00:07:52
    diagrama Bacana Então bora lá legal
  • 00:07:55
    então agora aqui no meu iPad vamos falar
  • 00:07:56
    sobre os conectores e os elementos do
  • 00:07:58
    diagrama de sequência bacana bom o
  • 00:08:02
    diagrama de sequência ele é composto
  • 00:08:04
    fundamentalmente por timelines que são
  • 00:08:07
    esses risquinhos aqui que a gente tá
  • 00:08:09
    vendo tá bom e por elementos como esse
  • 00:08:11
    aqui na ponta do do da nossa timeline Tá
  • 00:08:15
    bom então a gente tem a timeline aqui e
  • 00:08:17
    nós temos aqui na ponta o grande
  • 00:08:20
    elemento que nós temos o o o ator o
  • 00:08:23
    objeto e por aí vai tá bom o primeiro
  • 00:08:25
    elemento é esse aqui que nós estamos
  • 00:08:27
    mostrando que é o o nosso user aqui
  • 00:08:31
    beleza o user aqui ele serve para
  • 00:08:33
    representar o nosso ator do caso de uso
  • 00:08:37
    beleza é alguém que vai fazer algum tipo
  • 00:08:39
    de interação com o nosso sistema esse é
  • 00:08:41
    o nosso eh usuário user aqui ou ator
  • 00:08:45
    Beleza então sempre que tivermos aqui o
  • 00:08:47
    papel a figura do usuário né ou do ator
  • 00:08:49
    lá do caso de uso é assim que a gente
  • 00:08:51
    representa aqui no diagrama de sequência
  • 00:08:54
    beleza Lembrando que sempre precisa ter
  • 00:08:56
    aqui e eh essa linha riscadinha que é a
  • 00:08:59
    timeline ela vai né até onde o usuário
  • 00:09:02
    tiver eh interações ali com o sistema
  • 00:09:04
    até onde tiver comandos desse usuário no
  • 00:09:07
    sistema daqui a pouquinho a gente fala
  • 00:09:09
    como funciona tá essa parte de comandos
  • 00:09:11
    do nosso usuário por hora é importante
  • 00:09:13
    entender que tem a timeline aqui né a a
  • 00:09:16
    linha da vida nossa aqui e a gente tem
  • 00:09:18
    os elementos na ponta o primeiro deles é
  • 00:09:20
    o nosso usuário na sequência nós temos
  • 00:09:22
    aqui a nossa boundary e o que que é a
  • 00:09:25
    boundary a boundary ela é um elemento
  • 00:09:27
    que serve para representar interfaces
  • 00:09:30
    por exemplo tudo bem interação direta
  • 00:09:32
    ali com o nosso usuário é para isso que
  • 00:09:35
    ela serve basicamente é um elemento que
  • 00:09:37
    representa telas ap apis a gente pode
  • 00:09:40
    representar hoje em dia tá E por aí vai
  • 00:09:42
    tudo que tiver eh interface com atores e
  • 00:09:46
    também pode ser ali com outros sistemas
  • 00:09:48
    beleza na sequência nós temos o o
  • 00:09:52
    control tá eh muito utilizado para
  • 00:09:54
    Controller esse carinha aqui ele serve
  • 00:09:57
    para representar a interação dentro de
  • 00:09:59
    um sistema o nosso Core tá a parte
  • 00:10:03
    interior ali De repente de um sistema
  • 00:10:05
    como o elemento anterior era interface
  • 00:10:07
    esse aqui que poderia ser a tela tá
  • 00:10:09
    literalmente esse aqui representa o
  • 00:10:11
    núcleo daquela aplicação o centro aonde
  • 00:10:14
    o vai ser processada a informação ali
  • 00:10:17
    dentro do nosso sistema dentro dele aqui
  • 00:10:19
    nós temos um exemplo de um elemento aqui
  • 00:10:22
    que representa literalmente o o tempo de
  • 00:10:26
    execução dentro do nosso da nossa time
  • 00:10:29
    Line tá e nós temos aqui também a self
  • 00:10:32
    Call essa self Call ela serve aqui para
  • 00:10:35
    representar o nosso uma mensagem que
  • 00:10:38
    acontece dentro dessa timeline uma
  • 00:10:40
    interação entre a a timeline Nossa aqui
  • 00:10:43
    né O que está acontecendo aqui nesse
  • 00:10:45
    espaço de de tempo eh com ele mesmo as
  • 00:10:48
    interações que estão acontecendo aqui
  • 00:10:50
    dentro então lógico isso aqui você vai
  • 00:10:51
    colocar em Alto Nível não é cada linha
  • 00:10:53
    de código que a gente representa mas a
  • 00:10:55
    gente consegue colocar o que é mais
  • 00:10:57
    importante ah faça uma validação eh de
  • 00:10:59
    senha validação do usuário eh validação
  • 00:11:03
    enfim de alguma regra de negócio que
  • 00:11:04
    seja muito relevante tá a gente
  • 00:11:06
    representa assim dentro da nossa própria
  • 00:11:09
    eh timeline tá com uma mensagem que é
  • 00:11:12
    apontando aqui dela para ela mesma né E
  • 00:11:15
    aí a gente tem esse segundo carinha aqui
  • 00:11:18
    que é literalmente né uma segunda
  • 00:11:20
    timeline Zinha ali um segundo obje tenho
  • 00:11:23
    de de de espaço de tempo né em cima do
  • 00:11:26
    outro aqui tá bom bem daí na sequência
  • 00:11:30
    nós temos aqui o elemento entity Para
  • 00:11:33
    que serve esse elemento entity aqui esse
  • 00:11:36
    elemento ele serve para representar o
  • 00:11:38
    que é persistido no banco de dados então
  • 00:11:40
    ele representa ali uma tabela uma
  • 00:11:43
    coleção tá um elemento de dados um
  • 00:11:46
    objeto de dados é isso que esse elemento
  • 00:11:48
    representa tá bom e por fim mas não
  • 00:11:50
    menos importante que é mais utilizado em
  • 00:11:52
    um diagrama de sequência nós temos aqui
  • 00:11:54
    e o nosso elemento Object para que que
  • 00:11:58
    serve esse carinha aí esse carinha que
  • 00:11:59
    ele serve para representar todo e
  • 00:12:01
    qualquer objeto que eu tenha dentro do
  • 00:12:03
    meu sistema é possível também
  • 00:12:05
    representar outras coisas que sejam por
  • 00:12:07
    exemplo eh elementos que eu tenha fora
  • 00:12:10
    do meu sistema diretamente como por
  • 00:12:13
    exemplo uma ferramenta de fila ou uma
  • 00:12:15
    outra ferramenta um outro componente
  • 00:12:17
    arquitetural né que compõe ali o nosso
  • 00:12:20
    desenho e que faça parte dessa sequência
  • 00:12:22
    de de ações que acontec ali para
  • 00:12:25
    resolver um negócio por exemplo tá bom
  • 00:12:27
    Um caso de uso beleza bem então passamos
  • 00:12:29
    aqui pelos nossos elementos Vamos falar
  • 00:12:31
    agora sobre os conectores ar que os
  • 00:12:33
    conectores eles vão servir para fazer a
  • 00:12:35
    interação entre os elementos entre as
  • 00:12:38
    timelines que a gente mostrou tá E
  • 00:12:40
    também deixar claro como essa
  • 00:12:42
    comunicação vai acontecer tá bom se ela
  • 00:12:44
    vai ser síncrona síncrona C retorno
  • 00:12:47
    beleza é para isso que os conectores
  • 00:12:49
    basicamente servem nesse tipo de
  • 00:12:51
    diagrama bem o nosso primeiro conector
  • 00:12:53
    aqui é a mensagem tá e a mensagem ela
  • 00:12:58
    serve literalmente para dizer que
  • 00:13:00
    aconteceu a comunicação entre um
  • 00:13:03
    elemento e outra de forma síncrona
  • 00:13:05
    beleza esse elemento com esse risquinho
  • 00:13:08
    contínuo que está aqui ele indica isso
  • 00:13:11
    tá é esse risquinho com essa setinha
  • 00:13:14
    aqui inteira tá 100% preenchida indica
  • 00:13:18
    isso indica que a gente fez a passagem
  • 00:13:20
    de bastão de um lado pro outro entre um
  • 00:13:22
    elemento e outro isso pode acontecer na
  • 00:13:24
    direção contrária da direita paraa
  • 00:13:26
    esquerda pode tá bom eu posso estar
  • 00:13:29
    tendo a mensagem disparada da esquerda
  • 00:13:31
    pra direita ou da direita pra esquerda
  • 00:13:33
    sem problema nenhum é ida ou volta né de
  • 00:13:36
    requisição Se isso for verdade ok isso
  • 00:13:39
    que é importante que eu tenha a
  • 00:13:41
    requisição efetivamente acontecendo o
  • 00:13:43
    que não é muito típico né normalmente eu
  • 00:13:46
    tenho o elemento da esquerda fazendo a
  • 00:13:49
    requisição pro elemento da direita e
  • 00:13:50
    assim por diante Esse é o é o o fluxo
  • 00:13:53
    natural Mas pode acontecer o que pudesse
  • 00:13:56
    talvez até mesmo representar um problema
  • 00:13:58
    de depend circular essa ida e volta tá
  • 00:14:01
    bom de um elemento chamando diretamente
  • 00:14:04
    o outro normalmente é com outro conector
  • 00:14:06
    que a gente coloca ali essa volta essa
  • 00:14:09
    resposta da mensagem bem mas como eu
  • 00:14:11
    disse é amplamente possível que tenhamos
  • 00:14:14
    esse tipo de de conector ele funcionando
  • 00:14:18
    dessa maneira bom vamos pro segundo
  • 00:14:20
    conector agora nós temos aqui o o nosso
  • 00:14:24
    conector de mensagem assíncrona tá que é
  • 00:14:27
    este aqui no caso Ele é igualzinho o
  • 00:14:31
    nosso elemento anterior só que o que
  • 00:14:33
    muda Aqui nós temos aqui uma pontinha ó
  • 00:14:36
    que é aberta ela não é preenchida tá nós
  • 00:14:39
    temos a pontinha aberta do nosso do
  • 00:14:41
    nosso conector isso indica que é uma
  • 00:14:45
    conexão é uma mensagem assíncrona Ou
  • 00:14:48
    seja que eu não vou ficar esperando ter
  • 00:14:50
    a resposta Então nesse caso a nossa eh
  • 00:14:53
    nosso obje temho ali de time né de
  • 00:14:56
    Lifetime ele ele é reduzido tá eu eu
  • 00:14:59
    demonstro que o tempo meu foi só na
  • 00:15:01
    requisição e eu não tenho que ficar
  • 00:15:03
    esperando ali vir a resposta então eu
  • 00:15:05
    diminuo esse tempo de de espera tá bom o
  • 00:15:09
    tempo de espera nosso ele morre
  • 00:15:11
    praticamente na requisição Ok então é
  • 00:15:14
    para isso que serve esse elemento para
  • 00:15:16
    indicar uma requisição assíncrona chamei
  • 00:15:19
    e deixo para lá né Daqui a pouco eu vou
  • 00:15:22
    lá e vejo se eu tenho uma resposta né ou
  • 00:15:25
    então espero essa resposta acontecer de
  • 00:15:27
    alguma maneira talvez eh através de
  • 00:15:29
    alguma coisa no banco de dados é algo
  • 00:15:31
    que eu não preciso ficar esperando eu
  • 00:15:33
    fiz a requisição e solto a resposta
  • 00:15:36
    depois se deu certo ou não não é algo
  • 00:15:38
    que eu vou me preocupar agora beleza bem
  • 00:15:41
    e aí por fim nós temos aqui o nosso
  • 00:15:44
    objeto o nosso conector de retorno o
  • 00:15:48
    nosso objeto de retorno aqui né o nosso
  • 00:15:49
    conector de retorno ele serve
  • 00:15:52
    literalmente para responder uma
  • 00:15:54
    requisição tá e funciona para síncrono
  • 00:15:57
    ou assíncrono a resposta assíncrona
  • 00:15:59
    também ah estaria Ok faltou falar tá que
  • 00:16:03
    muitas vezes no caso da mensagem
  • 00:16:05
    assíncrona aqui faltou explicar isso
  • 00:16:08
    aqui nós temos essa setinha pela metade
  • 00:16:11
    é comum ver isso também tá a setinha só
  • 00:16:13
    com a parte de cima sem a parte de baixo
  • 00:16:15
    então só com a parte de cima ou seja
  • 00:16:18
    assim né Deixa eu colocar aqui uma
  • 00:16:20
    representação de como ela ficaria mais
  • 00:16:21
    ou menos assim tá bom a a setinha dessa
  • 00:16:24
    forma aqui também representa eh um
  • 00:16:27
    conector assíncrono faltou V falar isso
  • 00:16:29
  • 00:16:30
    eh e aí no caso do retorno como nós
  • 00:16:33
    estamos falando ele é traçadinho né E
  • 00:16:37
    tem aqui a nossa ponta aberta tá é dos
  • 00:16:40
    dois lados é em cima e embaixo né se
  • 00:16:41
    colocar só em cima eh vai ter ali a
  • 00:16:44
    conotação de que é assíncrono e fica
  • 00:16:46
    incorreto no caso de eh mensagem de
  • 00:16:48
    resposta tá porque a mensagem de
  • 00:16:50
    resposta ela é síncrona e acabou não tem
  • 00:16:52
    como ela ser diferente tá bom então
  • 00:16:55
    esses são os conectores que nós temos
  • 00:16:58
    bem simples e agora chegou a hora de
  • 00:17:01
    falarmos de vermos né E esse Diagrama
  • 00:17:05
    como que ele funciona ele em Ação Bora
  • 00:17:07
    lá bacana Aqui nós temos então um
  • 00:17:09
    diagrama que representa um fluxo de
  • 00:17:11
    login beleza é um fluxo bem simples mas
  • 00:17:15
    vai ficar claro como funciona o nosso
  • 00:17:17
    diagrama de sequência então Observe que
  • 00:17:20
    antes de mais nada nós temos aqui o
  • 00:17:22
    nosso usuário esse aqui é o nosso ator
  • 00:17:24
    tá é a pessoa que vai fazer uso do nosso
  • 00:17:27
    sistema e como nós falamos nós temos
  • 00:17:30
    aqui por baixo né uma timeline tá bom
  • 00:17:33
    que é essa linha
  • 00:17:34
    pontilhados elemento aqui que indica o
  • 00:17:37
    tempo de espera do nosso da nossa
  • 00:17:40
    requisição da mensagem e da sequência
  • 00:17:43
    toda que acontece a partir dela limpando
  • 00:17:45
    essa nossa baguncinha aqui vamos lá
  • 00:17:47
    vamos falar então do que que acontece
  • 00:17:50
    entre o nosso usuário e as partes do
  • 00:17:53
    nosso sistema primeiramente nós temos
  • 00:17:55
    depois do nosso usuário aqui a interface
  • 00:17:57
    de login e Aqui nós temos o que acontece
  • 00:18:01
    entre a nossa interface de login e aí
  • 00:18:03
    nós temos aqui uma comunicação né uma
  • 00:18:05
    mensagem que acontece entre o nosso
  • 00:18:08
    usuário e a nossa interface de login e o
  • 00:18:10
    que que eu tenho aqui dentro Eu estou
  • 00:18:12
    falando né tenho uma mensagem que
  • 00:18:14
    ilustra aqui que o nosso usuário está
  • 00:18:17
    informando o username Né o login dele e
  • 00:18:20
    a senha tá usuário e a senha dele beleza
  • 00:18:25
    bom daí entra a nossa interface aqui de
  • 00:18:29
    de login e a parte central o Core do
  • 00:18:32
    nosso sistema o backend do nosso sistema
  • 00:18:34
    que é o nosso controlador aqui eu tenho
  • 00:18:37
    uma validação de credenciais tá então
  • 00:18:39
    acontece aqui a validação da senha eu
  • 00:18:42
    peço pro meu backend validar usuário e
  • 00:18:45
    ass as credenciais de acesso daí o que
  • 00:18:47
    que acontece na sequência nós temos aqui
  • 00:18:49
    o o processo de validação de verificação
  • 00:18:54
    lá no nosso banco de dados tá E para eu
  • 00:18:56
    representar isso eu uso esse el aqui a
  • 00:18:59
    entidade login né então eu tenho o meu
  • 00:19:02
    controlador indo lá no meu na minha
  • 00:19:04
    entidade login fazer essa validação E
  • 00:19:06
    isso acontece a partir desse processo
  • 00:19:09
    aqui onde nós temos basicamente a a
  • 00:19:13
    requisição de ida né então tenho a
  • 00:19:16
    mensagem fazendo ali a consulta das
  • 00:19:19
    credenciais e a nossa resposta aqui o
  • 00:19:21
    nosso retorno Observe que aqui nós temos
  • 00:19:23
    o elemento de retorno né que é
  • 00:19:25
    traçadinho e Aqui nós temos o elemento a
  • 00:19:27
    mensagem de ida que é a linha contínua
  • 00:19:30
    com a nossa setinha totalmente aqui
  • 00:19:32
    preenchida Tá bom então tem a mensagem
  • 00:19:35
    de ida e o retorno E aí uma outra coisa
  • 00:19:38
    que é importante salientar aqui que nós
  • 00:19:39
    temos aqui esse espaço de tempo esse
  • 00:19:42
    intervalo de tempo bem menor do que os
  • 00:19:44
    outros pode ver aqui né Ele é bem menor
  • 00:19:46
    do que os outros porque literalmente o
  • 00:19:48
    nosso tempo aqui do nosso banco de dados
  • 00:19:50
    tá é o tempo que ele tem aqui de de ir
  • 00:19:53
    ir no banco fazer ali o get das
  • 00:19:56
    informações para fazer a comparação
  • 00:19:58
    desses dados tá então aqui a mensagem é
  • 00:20:01
    consulta credenciais eu vou lá no banco
  • 00:20:04
    e consulto busco usuário e senha
  • 00:20:07
    passando né as credenciais que eu recebi
  • 00:20:09
    do meu usuário ou seja Talvez o meu
  • 00:20:12
    e-mail ali né ou o meu username e a
  • 00:20:14
    senha efetivamente para que que eu vou
  • 00:20:16
    fazer isso para depois validar se a
  • 00:20:18
    senha está correta ou incorreta tá bom
  • 00:20:21
    muitas vezes eu nem passo a senha eu vou
  • 00:20:23
    passar ali somente o meu usuário né a
  • 00:20:25
    senha talvez ela esteja encriptada e e
  • 00:20:28
    eu não vou usar ela como parâmetro aqui
  • 00:20:31
    de busca nem é uma boa prática na
  • 00:20:33
    verdade é que alguns sistemas no passado
  • 00:20:35
    não utilizavam criptografia das
  • 00:20:37
    informações de senha por exemplo era
  • 00:20:39
    comum você salvar a senha totalmente
  • 00:20:41
    descriptografado ali é quem tinha acesso
  • 00:20:43
    ao banco tinha acesso também a a a senha
  • 00:20:46
    de todo mundo mas isso no passado bem
  • 00:20:48
    longe tá tem muito tempo que a gente já
  • 00:20:50
    tem boas práticas de de criptografia bom
  • 00:20:53
    eh falando então do que acontece na
  • 00:20:56
    sequência do nosso retorno aqui após a
  • 00:20:59
    gente retornar do nosso da nossa
  • 00:21:01
    sequência tá voltou aqui do nosso
  • 00:21:03
    retorno eu tenho aqui a validação das
  • 00:21:06
    credenciais tá E essa validação ela
  • 00:21:08
    acontece aqui ó nesse pequeno espaço
  • 00:21:10
    aqui de tempo tá bom é esse pequeno
  • 00:21:13
    espaço aqui que ilustra esse retorno
  • 00:21:17
    essa essa validação do que retornou da
  • 00:21:20
    nossa entidade de dados E observa que
  • 00:21:22
    nós temos eh aqui por exemplo a soma do
  • 00:21:26
    tamanho da requisição anterior que veio
  • 00:21:28
    lá de trás tá com esse tempo aqui ó a
  • 00:21:31
    gente tem ele aqui né E aí nós temos
  • 00:21:35
    mais esse tempo aqui dessa validação e
  • 00:21:37
    por fim nós temos o tempo de retorno
  • 00:21:39
    então essa timeline aqui do controlador
  • 00:21:42
    ela acaba sendo bem grande bem maior do
  • 00:21:45
    que essa aqui da nossa entidade de login
  • 00:21:48
    tá E lembra que eu falei do problema de
  • 00:21:51
    de um diagrama desse aqui precisar você
  • 00:21:54
    subir né para ver a parte de cima ficar
  • 00:21:56
    rolando né se esse aqui fosse um dia uma
  • 00:21:58
    complexo tivesse muitos elementos e eu
  • 00:22:00
    estivesse lá embaixo aqui né e falasse
  • 00:22:02
    assim poxa eu quero saber que elemento é
  • 00:22:04
    esse aqui dessa timeline aqui eu não sei
  • 00:22:06
    eu preciso vir aqui para cima para ver
  • 00:22:08
    vou ter que rolar né E se tivesse num
  • 00:22:11
    diagrama na parede até que não fica tão
  • 00:22:13
    difícil mas se as caixinhas forem muito
  • 00:22:15
    pequenininhas precisa de uma lupa ali
  • 00:22:18
    correr até o topo né para ver ali quem
  • 00:22:20
    Qual é o elemento tá e a lupa É
  • 00:22:23
    brincadeira mas fica realmente difícil
  • 00:22:25
    vai ficando mais complexo a o
  • 00:22:27
    entendimento e a manutenção deixa eu
  • 00:22:29
    limpar essa minha bagunça aqui e vamos
  • 00:22:31
    lá vamos dar continuidade à explicação E
  • 00:22:33
    aí Aqui nós temos o nosso retorno Não é
  • 00:22:36
    esse retorno ele volta aqui pra nossa
  • 00:22:38
    interface de login beleza que é essa
  • 00:22:41
    timeline aqui e daqui a gente tem mais
  • 00:22:43
    um retorno que veio aqui pro nosso
  • 00:22:46
    usuário perceba que novamente né como a
  • 00:22:49
    gente estava falando nós temos aqui um o
  • 00:22:52
    maior tempo de todos do nosso usuário tá
  • 00:22:55
    a timeline do nosso usuário Olha o
  • 00:22:57
    tamanho dela aqui
  • 00:22:59
    em comparação com essa aqui né que é a
  • 00:23:01
    Menorzinha é a conexão lá com o nosso
  • 00:23:03
    banco de dados tá então vou tendo essa
  • 00:23:05
    timeline Ela Vai somando né aqui eu
  • 00:23:08
    tenho a somatória de todas as
  • 00:23:09
    requisições que aconteceram aqui de
  • 00:23:11
    todas né Aí eu tenho mais o tempo de
  • 00:23:13
    resposta mais a validação mais essa
  • 00:23:16
    resposta mais essa fica todo esse
  • 00:23:18
    carinho aqui ele fica grande né então
  • 00:23:20
    ilustra todo o meu tempo de ida e volto
  • 00:23:22
    é o tempo computacional não
  • 00:23:24
    necessariamente o tempo isso aqui não
  • 00:23:26
    representa segundos né mas enta o tempo
  • 00:23:29
    computacional então tem toda a latência
  • 00:23:31
    aqui dá para ter uma visão de que é onde
  • 00:23:34
    eu tenho maior espera se vai ser grande
  • 00:23:36
    ou pequena né pro nosso usuário talvez
  • 00:23:38
    sejam milésimos de segundo isso aqui mas
  • 00:23:41
    computacionalmente falando é onde eu
  • 00:23:43
    tenho mais esforço Bacana Então deu pra
  • 00:23:45
    gente ver aqui um diagrama de sequência
  • 00:23:49
    né com todo o processo aqui falando de
  • 00:23:52
    todas as camadas a gente falou aqui do
  • 00:23:54
    nosso usuário falamos da nossa interface
  • 00:23:56
    de login do nosso cont trolador do
  • 00:23:58
    backend né que é o front aqui é o back e
  • 00:24:00
    a nossa camada de dados Era bem comum
  • 00:24:03
    representar sistemas assim antigamente e
  • 00:24:05
    até mesmo na época que se adotou a
  • 00:24:08
    arquitetura mvc né que não era só para
  • 00:24:10
    frontend antigamente o mvc era completo
  • 00:24:12
    néha viu sendo a camada de frontend
  • 00:24:15
    Windows forms por exemplo né um o forms
  • 00:24:18
    o formulário Ali era a nossa View né a
  • 00:24:21
    Controller era a parte de backend de
  • 00:24:24
    dentro de um sistema que era ali
  • 00:24:26
    basicamente eh client server né e a
  • 00:24:28
    gente tinha a camada de dados que também
  • 00:24:30
    ficava dentro dela e fazer comunicação
  • 00:24:33
    diretamente ali com o banco de dados bem
  • 00:24:35
    e como é que fica uma visão como essa
  • 00:24:37
    nos dias atuais eu falo para você que
  • 00:24:40
    hoje no em um mundo onde nós temos
  • 00:24:42
    microsserviços e uma visão mais
  • 00:24:44
    assíncrona o que que acaba acontecendo
  • 00:24:46
    nós temos aqui o nosso usuário aí ao
  • 00:24:49
    invés de utilizar aqu aqueles elementos
  • 00:24:52
    né de de boundary de Controller e etc
  • 00:24:56
    aqui eu estou um pouquinho mais alto
  • 00:24:57
    nível representando por exemplo o meu
  • 00:25:00
    App Mobile né que eu tenho aqui o Arc
  • 00:25:02
    app aí eu tenho aqui um BFF de login e
  • 00:25:06
    aí aqui eu tenho um idp tenho um koke
  • 00:25:08
    por exemplo tá que é o nosso identity
  • 00:25:10
    provider que vai fazer a autenticação
  • 00:25:12
    então não tenho mais aqui o meu banco de
  • 00:25:15
    dados a interação com o meu banco de
  • 00:25:16
    dados fazendo a consulta ali para fazer
  • 00:25:18
    a validação de usuário e senha isso
  • 00:25:20
    acontece pelo meu kloke tá bom vamos lá
  • 00:25:22
    vamos detalhar aqui como que acontece e
  • 00:25:25
    esse fluxo antes de mais nada perceba
  • 00:25:27
    que aqui nós temos temos uma timeline
  • 00:25:29
    menor Por que que essa timeline é menor
  • 00:25:31
    porque essa requisição aqui ela é
  • 00:25:34
    assíncrona percebe que ela é aberta aqui
  • 00:25:36
    na ponta ó essa pontinha aqui ela é
  • 00:25:38
    aberta tá então ela é assíncrona daí na
  • 00:25:42
    sequência nós temos aqui uma outra
  • 00:25:44
    requisição que é também assíncrona
  • 00:25:46
    percebe aqui né que é é essa setinha
  • 00:25:50
    também é aberta né que é a validação de
  • 00:25:53
    credenciais aí na sequência nós temos
  • 00:25:56
    aqui a através do nosso BFF ele faz a
  • 00:25:59
    consulta de credenciais E aí aqui ó é
  • 00:26:02
    síncrono beleza não é síncrona a setinha
  • 00:26:05
    tá completa aqui eh e depois disso eu
  • 00:26:08
    espero a resposta Ó veio a resposta do
  • 00:26:10
    nosso kloke a a resposta como sempre é
  • 00:26:14
    uma linhazinha traçada né e a pontinha
  • 00:26:16
    dela aqui aberta como a gente falou
  • 00:26:19
    então aqui eu tenho a soma né do da
  • 00:26:21
    timeline deixa eu mudar a cor desse
  • 00:26:22
    carinha para ficar um pouquinho mais
  • 00:26:24
    fácil de ficar ficar mais visível aqui a
  • 00:26:27
    nossa timeline né a timeline ficou maior
  • 00:26:30
    né E aí aqui eu tenho uma segunda parte
  • 00:26:32
    do nosso timeline que é aqui a validação
  • 00:26:35
    das da credencial né das credenciais
  • 00:26:37
    aqui do usuário e senha tá eh essa
  • 00:26:40
    validação na verdade ela poderia
  • 00:26:42
    acontecer aqui no no nosso k clo tá o
  • 00:26:44
    ideal seria ela acontecer aqui tá e não
  • 00:26:48
    aqui nesse desenho nessa ilustração e
  • 00:26:50
    Embora esteja tudo bem Tá talvez eu
  • 00:26:52
    tenha aqui ah algum tipo de dispositivo
  • 00:26:55
    para fazer essa validação o ideal é que
  • 00:26:57
    acontecesse aqui no do que clo e ele
  • 00:26:59
    fosse maior tá bom daí nós temos aqui o
  • 00:27:01
    nosso retorno né que é a devolutiva aqui
  • 00:27:04
    pro meu usuário percebe que aqui de novo
  • 00:27:08
    né eu tenho
  • 00:27:09
    eh essa resposta aqui acontecendo em em
  • 00:27:12
    um espaço de tempo pequenininho que é só
  • 00:27:14
    o tempo de resposta mesmo a volta aqui
  • 00:27:16
    pro nosso usuário e tudo aconteceu de
  • 00:27:18
    uma maneira assíncrona então não fiquei
  • 00:27:21
    segurando o meu usuário solto o meu
  • 00:27:22
    usuário para fazer outras coisas é
  • 00:27:25
    lógico que no login eu vou precisar
  • 00:27:27
    esperar para poder entrar no sistema mas
  • 00:27:29
    uma outra coisa é muito comum que esse
  • 00:27:32
    tipo de processo né processamento
  • 00:27:34
    assíncrono eh faça sentido tá paraas
  • 00:27:37
    aplicações atuais paraas aplicações
  • 00:27:39
    modernas onde a gente tem bffs apis
  • 00:27:43
    microsserviços tudo acontecendo de forma
  • 00:27:45
    assíncrona então ar Deu para perceber
  • 00:27:47
    que um Diagrama como esse pode ser
  • 00:27:49
    aplicado nos dias atuais também para uma
  • 00:27:52
    aplicação que seja microcomponente zada
  • 00:27:55
    né orientada a microsserviços com bffs
  • 00:27:57
    Apis virtualiza micro databases é
  • 00:28:00
    possível representar em um diagrama de
  • 00:28:02
    sequência e você ar conhecia esse
  • 00:28:04
    diagrama já tinha utilizado conta aqui
  • 00:28:07
    nos comentários porque eu quero saber e
  • 00:28:09
    ar você que é top PR caramba se você
  • 00:28:11
    gostou desse conteúdo não esquece de
  • 00:28:13
    deixar um like pra gente porque isso
  • 00:28:15
    ajuda o nosso conteúdo a chegar para
  • 00:28:16
    mais pessoas e assim como você quer se
  • 00:28:19
    tornar um profissional diferenciado no
  • 00:28:21
    mercado um ar Expert Bacana Então eu vou
  • 00:28:24
    ficando por aqui ar um super abraço e
  • 00:28:26
    até a próxima m
Tags
  • Diagrama de Sequência
  • UML
  • Modelagem de Sistemas
  • Microserviços
  • Interação
  • Clareza Visual
  • Sistemas
  • Documentação
  • Desenho de Software
  • Arquitetura de TI