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

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.

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.

É 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)