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, desenvolvimento web front-end com React e programação em Java.

Métodos de Ensino

A unidade curricular desenrola-se em torno de um projeto de desenvolvimento de software, realizado em articulação com a unidade curricular de Programação Distribuída (PD): as equipas de GPS desenvolvem uma aplicação web construída em React, que consome serviços REST desenvolvidos pelas equipas de PD.

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. Cada equipa mantém o seu próprio repositório GitLab para a documentação, o código e os testes do projeto.

O uso de ferramentas de Inteligência Artificial generativa é permitido e incentivado ao longo do projeto (documentação, código e testes), estando sujeito a princípios de uso responsável – verificação, compreensão, divulgação e uso eficiente.

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, em articulação com equipas de back-end externas. 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;
  7. Aplicar de forma responsável e reflexiva ferramentas de Inteligência Artificial generativa no desenvolvimento de software, mantendo a compreensão e a responsabilidade sobre o código e a documentação produzidos.

Programa

  1. Ciclo de vida de desenvolvimento de software tradicional e ágil
    • Scrum, Waterfall, modelos híbridos
  2. Planeamento de projetos de software
    • Visão e âmbito, requisitos, user stories, planeamento de entregas e sprints, estimativas
  3. Gestão ágil de projetos de software
    • gestão do backlog, gestão de riscos, gestão de equipas e stakeholders, revisões de sprint
  4. Gestão de qualidade
    • plano de qualidade, revisões, testes, gestão de versões, melhoria de processos, CI/CD
  5. Arquitetura e design de software
    • modelação de domínio, design de APIs, padrões de integração de serviços
  6. Integração com serviços externos
    • consumo de REST APIs, integração de APIs de LLM, definição de contratos de API
  7. Uso responsável e eficaz de IA em engenharia de software
    • prompt engineering, agentes de IA, verificação de outputs, avaliação crítica, considerações éticas

Docente(s) responsável(eis)

João Carlos Costa Faria da Cunha

Métodos de Avaliação

A classificação final resulta de duas componentes:

  • Projeto - 12 valores
  • Avaliação teórica - 8 valores

A nota do Projeto tem por base a classificação atribuída ao grupo, ajustada por um fator individual que considera o desempenho do estudante ao longo do semestre e a avaliação pelos pares, resultando numa nota individual.

A classificação do grupo é atribuída de forma contínua, distribuída pelos seguintes 7 momentos de avaliação:

  • KOM (Kick-Off Meeting) - 20%
  • 5 sprints - 5x12% = 60%
  • Apresentação final - 20%

A avaliação do Projeto é exclusivamente contínua, não havendo possibilidade de melhoria de nota.

Adicionalmente, existe um bónus individual não obrigatório: um aluno, ou pequeno grupo, pode apresentar uma prática ou solução técnica relevante para o projeto, podendo valer até 0,5 valores na nota individual, sem afetar a nota de grupo nem substituir entregáveis.

A nota da componente Teórica corresponderá à melhor entre:

  • Nota obtida no exame
  • Atividades realizadas nas aulas teóricas (25%) + nota de exame (75%)

Os estudantes poderão melhorar a nota da componente teórica em Exame de Recurso ou Exame Especial, caso tenham acesso a estas épocas, podendo manter as classificações obtidas nas atividades em aula teórica.

A realização de provas orais complementares poderá constituir um instrumento de avaliação adicional, sempre que se considere necessária para dissipar dúvidas ou esclarecer situações suspeitas de fraude ou plágio.

É obrigatória a obtenção de 40% ou mais em cada componente para aprovação na unidade curricular.


    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)
    • White, J., Fu, Q., Hays, S., Sandborn, M., Olea, C., Gilbert, H., Elnashar, A., Spencer-Smith, J., & Schmidt, D. C. (2023). A prompt pattern catalog to enhance prompt engineering with ChatGPT. arXiv:2302.11382.
    • Mircea, M., Schmid, E., Droste, J., & Schneider, K. (2026). How do software engineering students use generative AI in real-world capstone projects? An empirical baseline study. EASE 2026, Glasgow, Scotland, UK.