Conhecimentos de Base Recomendados
Os alunos devem ter conhecimentos fundamentais e experiência prática em programação de software, incluindo modelação e design de software, usabilidade e programação em Java.
Métodos de Ensino
A unidade curricular desenrola-se em torno de um projeto de desenvolvimento de software.
As aulas teóricas têm como objetivo apresentar os temas lecionados e os respetivos materiais de estudo.
As aulas práticas destinam-se à aprendizagem de processos e ferramentas e à realização de reuniões entre professor e grupos de trabalho, incluindo reuniões de planeamento de projeto e de sprint, reuniões de revisão e retrospetiva, reuniões de refinamento do backlog, reuniões de acompanhamento do progresso, etc. Nestas reuniões são prestados esclarecimentos e recolhido feedback sobre o desenrolar dos trabalhos, os materiais produzidos e as ferramentas utilizadas.
Os alunos realizam o trabalho semanalmente, em grupo, dentro e fora da sala de aula, e recorrem aos professores ao longo da semana, presencialmente ou através de fóruns, chat e videochamada. Durante as reuniões de progresso, os grupos participam em sala de aula podendo, em situações excecionais, intervir por videochamada.
O trabalho consiste no planeamento, organização, realização e monitorização de um projeto ágil de desenvolvimento de software, que deve obrigatoriamente ser realizado ao longo do semestre e é permanentemente acompanhado.
A UC é suportada essencialmente pelas plataformas Microsoft Teams e GitLab, utilizadas para comunicação entre estudantes e professores e para suporte à gestão do projeto.
Na plataforma MS Teams são regularmente disponibilizadas:
- As tarefas a realizar por cada grupo e/ou estudante, tanto no âmbito do projeto como na preparação das aulas teóricas
- As atividades de entrega dos deliverables, bem como o feedback e avaliação de cada grupo
- Outras comunicações, através de fóruns de discussão e chat
Resultados de Aprendizagem
A unidade curricular de Gestão de Projeto de Software tem como objetivo proporcionar aos estudantes uma experiência prática e integradora no desenvolvimento de software. Nesta UC, os estudantes aplicam os conhecimentos adquiridos ao longo do curso em áreas como requisitos, arquitetura de software, usabilidade, programação e testes, trabalhando em equipa para desenvolver um projeto de software completo. O foco está na aplicação de boas práticas de engenharia de software, gestão de projetos e metodologias ágeis, promovendo a colaboração, a tomada de decisões fundamentadas e a entrega de um produto de software funcional e de qualidade.
Ao completarem esta unidade curricular, os estudantes deverão ter adquirido as seguintes competências:
- Descrever o desenvolvimento de software como uma disciplina de engenharia, utilizando a terminologia apropriada;
- Realizar um projeto de software em equipa, seguindo processos definidos e boas práticas de engenharia de software;
- Planear um projeto de desenvolvimento de software utilizando estimativas, calendarização de tarefas e alocação de recursos;
- Aplicar as melhores práticas de gestão da qualidade, gestão de riscos, gestão de equipas e gestão de stakeholders;
- Gerir um projeto de software, monitorizando e controlando o seu progresso, garantindo as entregas dentro dos prazos e custos planeados e gerindo as expectativas dos stakeholders;
- Demonstrar conhecimento dos processos e metodologias de desenvolvimento de software, bem como dos princípios e fundamentos da melhoria de processos de software a novas situações.
Programa
- Ciclo de vida de desenvolvimento de software tradicional e ágil
– Scrum
– Waterfall - Planeamento de um projeto de software
– Elaboração de um plano de desenvolvimento de software
– Requisitos de software, casos de uso, user stories
– Planeamento de entregas
– Planeamento de sprints
– Estimativas e escalonamento de tarefas
– Arquitetura de software - Gestão ágil de projetos de software
– Gestão de requisitos e backlog
– Gestão de risco
– Gestão de equipas e comunicação com stakeholders
– Revisão de sprints - Gestão de qualidade
– Plano de qualidade
– Revisões
– Testes e planos de teste
– Gestão de versões
– Melhoria de processos - Desenvolvimento ágil de software
– Cerimónias, equipa, artefactos do Scrum
– Princípios de DevOps e práticas de integração contínua
Docente(s) responsável(eis)
João Carlos Costa Faria da CunhaEstágio(s)
NAO
Bibliografia
Recomendada
- Schwaber, K., & Sutherland, J. (2020). The Scrum guide: The definitive guide to Scrum: The rules of the game. Scrum.org. https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-US.pdf, https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Portuguese-European.pdf
- Shore, J., & Warden, S. (2008). The art of agile development. O’Reilly Media. 1A-7-78 (ISEC)
- Stellman, A., & Greene, J. (2006). Applied software project management. O’Reilly Media. 1A-7-73 (ISEC)
- Sommerville, I. (2011). Software engineering (9th ed.). Pearson Education. 1A-7-107 (ISEC)
Complementar
- Project Management Institute. (2017). A guide to the project management body of knowledge (PMBOK guide) and the standard for project management (6th ed.). Project Management Institute. 2A-4-82 (ISEC)