Exercícios: Aula 01 - Introdução à Análise e Projeto de Sistemas 📝
Resolver estes exercícios ajudará na fixação dos conceitos fundamentais de APS e Ciclo de Vida de Software.
1. O Papel do Analista (Básico 1)
Contexto: No desenvolvimento de software, o analista atua como o tradutor entre o mundo dos negócios e o mundo técnico.
Pergunta: Defina o conceito de Análise e Projeto de Sistemas e cite duas vantagens de se investir tempo nesta fase antes de iniciar a codificação.
2. Cascatas vs. Sprints (Básico 2)
Contexto: Existem diferentes formas de organizar o trabalho (Modelos de Processo).
Pergunta: Diferencie brevemente o modelo Cascata (Waterfall) do modelo Ágil. Qual deles você escolheria para um projeto de uma Startup? Justifique.
3. A Importância da Abstração (Intermediário 1)
Contexto: Modelar não é desenhar, é abstrair a realidade para representá-la em um sistema.
Pergunta: Como a falta de uma fase de análise pode impactar o custo de manutenção de um sistema após 1 ano de uso?
4. Fluxo de Trabalho (Intermediário 2)
Contexto: O processo de software envolve várias etapas ligadas entre si.
Pergunta: Crie um esboço em texto (ou Mermaid) que represente o fluxo de informação desde o Levantamento de Requisitos até a Entrega do Produto.
5. Desafio: O Abismo de Comunicação (Desafio)
Contexto: Um cliente pede um "sistema de busca de produtos", mas o que ele realmente precisa é de um "recomendador de ofertas".
Pergunta: Como o uso de ferramentas de modelagem (UML, Protótipos) pode ajudar o analista a evitar que o desenvolvedor construa algo que o cliente não quer? Proponha uma estratégia prática.
---
📚 Gabarito e Soluções Comentadas
Gabarito Explicado
Nesta página, você encontra as respostas sugeridas e as explicações detalhadas para os exercícios da **Aula 01**. --- ### ✅ 1. O que é Análise e Projeto de Sistemas? (Básico) **Resposta Sugerida:** A Análise e Projeto de Sistemas (APS) é a disciplina que estuda os métodos para entender o que um software deve fazer (Análise) e como ele deve ser construído (Projeto). É o "projeto de arquitetura" que precede a "alvenaria" (código). **Vantagens:** 1. **Redução de Custos:** Identificar erros no papel é muito mais barato que corrigi-los em código pronto. 2. **Previsibilidade:** Permite estimar prazos e recursos com maior precisão. --- ### ✅ 2. Modelos de Ciclo de Vida (Básico) **Resposta Sugerida:** * **Cascata (Waterfall):** Rígido e sequencial. Ideal para projetos onde o requisito nunca muda. * **Ágil (Agile):** Iterativo e incremental. Ideal para o mercado moderno onde a mudança é constante. --- ### ✅ 3. O "Pulo do Gato" da Modelagem (Intermediário) **Explicação:** A modelagem atua como o contrato entre o cliente (quem tem o problema) e o desenvolvedor (quem tem a solução). Sem ela, o desenvolvedor pode construir algo tecnicamente perfeito, mas que não resolve o problema do negócio. --- ### ✅ 4. Fluxo de Análise (Intermediário) **Diagrama Sugerido:**graph LR
Req[Requisitos] --> An[Análise de Domínio]
An --> Proj[Projeto Arquitetural]
Proj --> Dev[Desenvolvimento]
Dev --> Test[Testes]
style Req fill:#e1f5fe
style Dev fill:#e8f5e8 --- ### ✅ 5. Estudo de Caso: E-commerce (Desafio) **Resolução Sugerida:** Para mitigar o "abismo" entre o desejo do cliente e o código: 1. **Entrevistas:** Descobrir que "estoque baixo" significa menos de 5 unidades. 2. **Casos de Uso:** Modelar o ator "Sistema de Estoque" notificando o "Gerente". 3. **Diagrama de Sequência:** Mostrar que a reserva de estoque deve ocorrer *antes* da confirmação do pagamento para evitar over-selling. ---