Conhecimentos de Base Recomendados
Os alunos devem possuir conhecimentos fundamentais e prática de 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 servem para apresentar os temas lecionados, assim como os materiais de estudo.
As aulas práticas são usadas para a aprendizagem de ferramentas e realização de reuniões entre professor e grupos de trabalho, incluindo reuniões de planeamento de projeto e sprint, reuniões de revisão e retrospetiva, reuniões de refinamento do backlog, reuniões de progresso, etc. entre os grupos de trabalho e o professor, prestando esclarecimentos e recebendo feedback sobre o desenrolar dos trabalhos, materiais desenvolvidos e ferramentas utilizadas.
Os alunos realizam o trabalho semanalmente e em grupo, dentro e fora da sala de aula, e recorrem ao professor ao longo da semana, pessoalmente, ou através de ferramentas de chat e videochamada. Durante as reuniões de progresso, os grupos estão presentes em sala podendo, em situações especiais, participar por videochamada.
O trabalho consta do planeamento, organização, realização e monitorização de um projeto ágil de desenvolvimento de software. O trabalho é obrigatoriamente realizado durante o semestre e é permanentemente acompanhado.
Resultados de Aprendizagem
Ao compIetarem esta unidade curricuIar, os aIunos deverão ser capazes de:
- Descrever o desenvolvimento de software como uma disciplina de engenharia, usando a terminologia adequada
- Desenvolver um projeto de software em equipa, seguindo processos definidos e boas práticas de engenharia de software
- Planear um projeto de desenvolvimento de software, usando estimativas, escalonamento de tarefas e atribuição de recursos
- Usar boas práticas na gestão de qualidade, gestão de risco, gestão de equipas e gestão de stakeholders
- Gerir um projeto de software, acompanhando e controlando o seu progresso, por forma propiciar uma entrega do software dentro dos prazos e custos previstos e gerir expectativas dos stakeholders
- Demonstrar conhecimento de processos e metodologias de desenvolvimento de software e dos princípios e fundamentos da melhoria do processo de software.
Programa
1. Ciclo de vida de desenvolvimento de software tradicional e ágil
• Scrum
• Waterfall
2. 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 iterações
• Estimativas e escalonamento de projetos
• Arquitetura
3. Gestão ágil de projetos de software
• Gestão de requisitos
• Gestão de risco
• Gestão de equipas
• Revisão de iteração
4. Gestão de qualidade
• Plano de qualidade
• Revisões
• Testes e planos de teste
• Gestão de versões
5. Desenvolvimento ágil de software
• Cerimónias, equipa, artefactos do Scrum
• Princípios de DevOps
Docente(s) responsável(eis)
Estágio(s)
NAO
Bibliografia
Recomendada:
- Stellman, A., & Greene, J. (2006). Applied software project management. O’Reilly. 1A-7-73 (ISEC)
- Sommerville, I. (2011), Software Engineering, 9th ed. Pearson Education. 1A-7-107 (ISEC)
- Project Management Institute, Inc, A guide to the project management body of knowledge (PMBOK Guide) and the standard for project management, Newtown Square, ISBN/ISSN: ISBN 978-1-62825-664-2, 2A-4-82 (ISEC)
Complementar:
- Ken Schwaber & Jeff Sutherland, The Scrum Guide – The Definitive Guide to Scrum: The Rules of the Game, November 2020 (https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-US.pdf; https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Portuguese-European.pdf)
- James Shore and Shane Warden, The art of agile development, O’Reilly, cop. 2008, ISBN/ISSN: ISBN 978-0-596-52767-9, 1A-7-78 (ISEC)