Métodos de Desenvolvimento de Software

Horário

Terças e quintas, às 10h:00m presencial

Objetivo

Propiciar ao discente uma visão sobre diversos modelos de processo de desenvolvimento de software, com uma abordagem orientada a projetos.

A disciplina

As metodologias ágeis de desenvolvimento de software têm se mostrado bastante eficazes para o desenvolvimento de sistemas de software. Neste curso, os estudantes utilizam práticas ágeis (XP, Scrum e Kanban), sob a orientação do professor e monitores (meta-coaches), para desenvolver um sistema de software em equipe. Por meio dessa experiência prática no laboratório, se faz possível a aquisição de conhecimentos e a assimilação de práticas das metodologias ágeis que serão extremamente importantes para o estudante em sua futura carreira, seja ela acadêmica ou empresarial, como desenvolvedor de software.

A disciplina “Métodos de Desenvolvimento de Software (MDS)” tem como objetivo introduzir alunos do quarto semestre do curso de Engeharia de Software aos modelos de processo de software. Para isso, no início do semestre, os alunos formam times ágeis, ou squads, de até 8 alunos, e desenvolvem um projeto de software, desde sua concepção até a sua implementação. Além das etapas de um projeto de software, são apresentados conceitos teóricos sobre processo de desenvolvimento de software, com o foco em métodos ágeis. Os alunos executam o scrum, kanban, XP, durante todo semestre, de forma a amadurecer o entendimento e exercício das práticas. São apresentadas documentações típicas de produtos de software, como documento de visão, Termo de Abertura de Projeto (TAP), documento de arquitetura, protótipos de baixa e alta fidelidade, requisitos ágeis (Épicos, estória de usuário, tarefas/issues, bugs), entre outros. Também é introduzido políticas de contribuição (políticas de branches, gitflow, guia de contribuição, etc), processo de pull/merge requests (PR), e outras práticas de comunidades de software livre.

Os grupos fazem duas entregas formais do projeto, nas Releases 1 e Release 2, no qual são apresentados os resultados parciais/finais da execução do projeto.

Várias práticas de extreme programming são executados, tais como (não limitado a): planning poker, programação pareada (pair programming), testes unitários automatizados, testes de integração automatizados, pequenas entregas, integração contínua.

Telegram

Todo material de aula será postado no Telegram.

Organização

Todo material de aula será postado no canal de Telegram da disciplina, além da organização da disciplina.

Todos os projetos dos semestres anteriores estão disponíveis com licença livre. Cada projeto possui o código fonte da aplicação, toda a documentação técnica com templates e boas práticas de comunidades e soluções Open Source. Além disso, estão disponíveis todas as documentação sobre a concepção do produto a ser desenvolvido e da aplicação das práticas ágeis. As métricas ágeis são disponibilizadas por sprint, com o planejamento e retrospectiva/review de cada sprint. Todos os projetos devem ser desenvolvido com boas práticas da engenharia de software moderna, como containerização, integração contínua, testes automatizados, análise de qualidade estática de software.

Com isso, a cada novo início de semestre, os times/squads são estimulados a estudar, reaproveitar os artefatos e boas práticas dos semestres anteriores. Dessa forma, estabelece uma cultura de colaboração e melhora contínua da discplina.

  1. Desafios ensino de TI em tempo de pandemia — O Futuro é Colaborativo by Carla Rocha