🔀 Atividade 08: Diagrama de Sequência (UML)
🎯 Objetivo da Aula
Ao final desta atividade, você será capaz de:
- Modelar o fluxo temporal de uma funcionalidade específica (Diferente da Classes, que é estático).
- Identificar Linhas de Vida (Lifelines) de objetos e atores.
- Representar Mensagens Síncronas, Assíncronas e Respostas.
- Visualizar a interação entre as camadas do sistema (Interface, Lógica e Banco de Dados).
🏢 O Cenário Prático (Seu Desafio)
Na TecProExpress, você definiu as Classes (Atividade 07). Agora, os desenvolvedores de Frontend e Backend precisam sentar para combinar como as mensagens serão trocadas. O programador da tela pergunta: "Quando eu clicar em 'Confirmar Entrega', para quem eu mando o sinal? Quem valida se o motorista está no local certo? Quem avisa o banco de dados para salvar?".
"Seu desafio como Analista de Sistemas é desenhar o 'filme' dessa ação. Você deve criar o Diagrama de Sequência que mostra o passo a passo temporal: da tela para o servidor, do servidor para o banco, e a resposta voltando para o celular do motorista."
🧠 Fundamentos: A Teoria Traduzida
Se o Diagrama de Classes é a foto das peças de um tabuleiro de xadrez, o Diagrama de Sequência é a descrição de uma jogada específica.
Elementos Chaves
- Atores e Objetos: Ficam no topo. De cada um desce uma Linha de Vida (tracejada).
- Foco de Controle (Retângulo na linha): Indica que o objeto está "trabalhando" naquele momento.
- Seta Contínua: Chamada de método (pergunta/ordem).
- Seta Tracejada: Retorno (resposta).
📊 Visualizando a Lógica
📖 Exemplo Guiado
Abaixo, veja como planejar a sequência do "Login" no sistema da TecProExpress.
| Ordem | Quem fala com quem? | O que é dito? |
|---|---|---|
| 1 | Usuário -> Tela | Digita usuário/senha e clica em Entrar. |
| 2 | Tela -> Servidor | autenticar(user, pass) |
| 3 | Servidor -> Banco | SELECT * FROM usuarios... |
| 4 | Banco -> Servidor | Retorna os dados do usuário. |
| 5 | Servidor -> Tela | Login Autorizado. |
📊 Dinâmica de Chamadas e Foco de Controle
🛠️ Regras de Ouro do Diagrama
- Objetos nunca falam sozinhos: Uma mensagem sempre sai de uma linha de vida e vai para outra.
- Use verbos de ação: As setas representam chamadas de funções que você definiu lá na Atividade 07.
- Mantenha o foco: Não tente colocar 50 telas no mesmo diagrama. Escolha um fluxo (ex: Realizar Compra) e desenhe apenas ele.
🔍 Detalhamento do Processo:
- O Diagrama de Sequência é o melhor lugar para descobrir bugs de lógica. Se você desenhou que a "Tela" fala direto com o "Banco de Dados", você descobriu uma falha de segurança! Na engenharia profissional, a Tela sempre fala com o Servidor, e o Servidor fala com o Banco.
🛠️ Prática Obrigatória: Modelando a Jogada
Cenário: A funcionalidade principal do seu projeto semestral.
- Escolha o fluxo mais importante do seu sistema (ex: Cadastrar Cliente, Realizar Venda, Agendar Horário).
- Identifique pelo menos 3 participantes (ex: Ator, Tela, Banco de Dados).
- Desenhe o Diagrama de Sequência mostrando o fluxo completo, desde a ação do usuário até a resposta final de sucesso.
- Certifique-se de usar setas contínuas para chamadas e tracejadas para retornos.
🏁 Resultado Esperado (Para sua Referência)
Uma imagem (PNG/JPG) do diagrama de sequência limpo e lógico, descrevendo a dinâmica temporal da sua principal regra de negócio.
📤 Instruções de Entrega (Microsoft Teams)
Após validar suas documentações técnicas:
- Salve o arquivo de documentação com o nome
Atividade_08.mde a imagem do seu diagrama de sequência com o nomeAtividade_08.pngna pastaes-atv-08-sequencia/do seu repositório GitHub. - Certifique-se de fazer o commit e push para o repositório público.
- Submeta o link do seu repositório no Microsoft Teams para avaliação do professor.
💡 Checkpoint de Lógica
verificarEstoque(), mas esse método não existe na classe Estoque lá na sua Atividade 07, o que você deve fazer? (Resposta: Voltar na Atividade 07 e atualizar o Diagrama de Classes. A modelagem é um processo vivo e as atividades devem estar sempre sincronizadas). 🧠🛡️📊 Rubrica Formativa de Avaliação
| Critério de Avaliação | Insuficiente (0% - 40%) | Regular (41% - 70%) | Excelente (71% - 100%) |
|---|---|---|---|
| Diagrama de Sequência (UML) | Diagrama sem participantes claros ou misturando chamadas com retornos. | Desenha o fluxo mas sem a distinção de setas de mensagem (síncrona) e retorno (assíncrona/tracejada). | Diagrama de sequência limpo com ao menos 3 participantes (Ator, Tela, Banco), chamadas síncronas e retornos tracejados. |
| Sincronismo com o Diagrama de Classes | Utiliza objetos e métodos inventados que não existem no Diagrama de Classes (Atv 07). | Utiliza participantes coerentes mas omite retornos de dados importantes. | Sincronia impecável de métodos e entidades entre o Diagrama de Sequência e o Diagrama de Classes. |
| Entrega no GitHub | Entrega fora da pasta `es-atv-08-sequencia/`. | Entrega o texto sem a imagem do diagrama de sequência. | Submete `Atividade_08.md` e `Atividade_08.png` no repositório com validação de formato. |
🏛️ Atividade 07: Diagrama de Classes (UML)
Bem-vindo a mais uma etapa da sua jornada no curso de Gestão de TI / Desenvolvimento de Sistemas. Hoje vamos mergulhar em conceitos que conectam a teoria técnica diretamente com o padrão de excelência da arquitetura de software, criando o guia mestre para a implementação do código. 🛡️🧩
🧪 Atividade 09: Qualidade e Testes
Bem-vindo a mais uma etapa da sua jornada no curso de Gestão de TI / Desenvolvimento de Sistemas. Hoje vamos mergulhar em conceitos que conectam a teoria técnica diretamente com o padrão de excelência da qualidade, garantindo que o software seja robusto e confiável antes de chegar ao cliente final. 🛡️🧩