Metodologia de desenvolvimento de software
Metodologia de Desenvolvimento de Software para Concursos Públicos
1. Conceitos Fundamentais
Metodologia de desenvolvimento de software é um conjunto de processos, técnicas e práticas para planejar, gerenciar e executar projetos de software. Engloba modelos de ciclo de vida, abordagens ágeis e tradicionais, além de boas práticas de engenharia de software.
2. Modelos Tradicionais (Cascata, Iterativo, Espiral)
Cascata (Waterfall): Sequencial (requisitos, design, implementação, testes, manutenção). Rígido, usado em projetos com requisitos bem definidos.
Iterativo: Divide o projeto em ciclos (iterações), entregando partes funcionais incrementalmente.
Espiral: Combina prototipação e cascata, com foco em riscos. Quatro fases: planejamento, análise de riscos, desenvolvimento e avaliação.
3. Metodologias Ágeis (Scrum, XP, Kanban)
Scrum: Baseado em sprints (iterações curtas), com papéis definidos (Product Owner, Scrum Master, Time). Artefatos: Product Backlog, Sprint Backlog.
XP (Extreme Programming): Ênfase em programação em pares, testes automatizados e integração contínua.
Kanban: Visualização do fluxo de trabalho (quadro com colunas "To Do", "Doing", "Done"), limitando trabalho em progresso.
4. Outras Abordagens (RUP, DevOps)
RUP (Rational Unified Process): Framework iterativo com fases (iniciação, elaboração, construção, transição) e disciplinas (requisitos, modelagem).
DevOps: Integra desenvolvimento e operações, automatizando processos (CI/CD) para entregas rápidas e confiáveis.
5. Tópicos Relevantes para Concursos
- Diferenças entre modelos ágeis e tradicionais.
- Artefatos do Scrum (Backlog, Burndown Chart).
- Vantagens e desvantagens de cada metodologia.
- Conceitos de MVP (Minimum Viable Product) e entregas incrementais.
- Papéis em metodologias ágeis (Scrum Master, Product Owner).