Gestão de Projeto de Software

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:

  1. Descrever o desenvolvimento de software como uma disciplina de engenharia, utilizando a terminologia apropriada;
  2. Realizar um projeto de software em equipa, seguindo processos definidos e boas práticas de engenharia de software;
  3. Planear um projeto de desenvolvimento de software utilizando estimativas, calendarização de tarefas e alocação de recursos;
  4. Aplicar as melhores práticas de gestão da qualidade, gestão de riscos, gestão de equipas e gestão de stakeholders;
  5. 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;
  6. 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

  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 sprints
    – Estimativas e escalonamento de tarefas
    – Arquitetura de software
  3. 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
  4. Gestão de qualidade
    – Plano de qualidade
    – Revisões
    – Testes e planos de teste
    – Gestão de versões
    – Melhoria de processos
  5. 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 Cunha

Está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)