Prévia do material em texto
Lista de Exercícios - Análise e Desenvolvimento de Sistemas Disciplina: Engenharia de Software e Metodologias Ágeis Tema: Scrum, Ciclo de Vida de Software, Git e TDD Questão 1 A metodologia ágil Scrum define três papéis centrais (Accountabilities) essenciais para o funcionamento da equipe. Quais são eles? Project Manager, Tech Lead e Analista de QA. Scrum Master, Product Owner (PO) e Developers (Equipe de Desenvolvimento). Stakeholder, Scrum Master e Arquiteto de Software. Agile Coach, Business Analyst e Desenvolvedores Frontend. Questão 2 No ciclo de desenvolvimento guiado por testes (TDD - Test Driven Development), o ciclo básico de trabalho do desenvolvedor segue qual ordem obrigatória? Escrever a funcionalidade -> Fazer o teste passar -> Escrever o teste -> Refatorar. Refatorar -> Escrever o teste -> Fazer o teste falhar -> Escrever a funcionalidade. Escrever um teste que falha (Red) -> Escrever o código mínimo para o teste passar (Green) -> Refatorar (Refactor). Criar a documentação -> Desenvolver a API -> Automatizar testes na nuvem -> Entregar. A. B. C. D. A. B. C. D. Questão 3 Comparando a metodologia de desenvolvimento Tradicional (Modelo Cascata/Waterfall) com as Metodologias Ágeis, qual afirmação está correta? O modelo cascata abraça a mudança constante de requisitos ao longo do projeto, enquanto o ágil trava o escopo no primeiro dia. O modelo cascata exige que uma fase (ex: Análise) seja completamente concluída antes que a próxima (ex: Design) comece. O ágil utiliza iterações curtas e incrementais. Metodologias ágeis não utilizam documentação nenhuma, focando apenas no código final. O modelo cascata é mais adequado para startups e projetos inovadores sem requisitos definidos. Questão 4 No sistema de controle de versão Git, os comandos git merge e git rebase servem para integrar alterações de uma ramificação (branch) em outra. Qual a principal diferença na ação do rebase em relação ao merge ? O rebase envia o código diretamente para o servidor (GitHub) ignorando commits locais. O rebase apaga permanentemente a branch de origem, enquanto o merge a mantém. O rebase reescreve o histórico do projeto, aplicando os commits de uma branch no topo da outra de forma linear, enquanto o merge cria um novo 'commit de mesclagem' mantendo o histórico bifurcado. O rebase é usado unicamente para reverter (desfazer) arquivos que tiveram conflitos. Questão 5 Dentro dos Eventos do Scrum, qual o objetivo principal da Sprint Retrospective (Retrospectiva da Sprint)? Inspecionar e adaptar a forma como a equipe trabalhou durante a Sprint (processos, relações e ferramentas) para buscar melhorias contínuas para a próxima Sprint. Apresentar o produto final (Incremento) funcionando para o cliente final e coletar seu feedback (Aprovação/Rejeição). Planejar detalhadamente todas as Sprints do ano calendário. Atualizar o gráfico de Burndown diário e discutir os impedimentos técnicos do dia de hoje. A. B. C. D. A. B. C. D. A. B. C. D. Gabarito Comentado (Para Conferência) 1. Resposta: B. O framework Scrum prescreve apenas estes três papéis. O Product Owner cuida do valor e prioridades (o 'quê'). O Scrum Master garante que o Scrum seja compreendido e aplicado (facilita o fluxo). Os Developers constroem o produto (o 'como'). 2. Resposta: C. A essência do TDD é o ciclo Red-Green-Refactor. Você sempre começa escrevendo um teste para uma função que ainda não existe (logo, ele falha). Depois escreve o código de produção simples, o teste passa, e então melhora o código (refatoração). 3. Resposta: B. O Waterfall (Cascata) é estritamente sequencial, muito rígido para lidar com mudanças. O Ágil resolve isso fatiando o projeto em ciclos iterativos curtos (como as Sprints), validando pequenas entregas rapidamente. 4. Resposta: C. O `git merge` junta os históricos preservando a ramificação visual (cria um commit extra de merge). O `git rebase` 'pega' os seus commits e os aplica um a um na ponta da branch alvo, deixando a árvore de histórico reta (linear) e mais limpa visualmente. 5. Resposta: A. Não confunda Review com Retrospective. A Sprint Review é para inspecionar o PRODUTO com os stakeholders. A Sprint Retrospective é para a equipe (Scrum Team) olhar para si mesma e inspecionar o PROCESSO de trabalho. Lista de Exercícios - Análise e Desenvolvimento de Sistemas Questão 1 Questão 2 Questão 3 Questão 4 Questão 5 Gabarito Comentado (Para Conferência)