Projeto de Software

Conhecimentos de Base Recomendados

Os alunos devem possuir conhecimentos fundamentais e prática de programação de software.

Métodos de Ensino

A unidade curricular desenrola-se em torno de um projeto de desenvolvimento de software.

As aulas são organizadas em blocos de 4 horas, sendo que a componente teórica terá uma maior ênfase e duração no início do semestre, com apresentação e discussão sobre processos, vindo a diminuir progressivamente até final do semestre. O restante tempo é dedicado à realização de reuniões de progresso com o professor, demonstrações para a turma e outros stakeholders, e esclarecimentos sobre o desenrolar dos trabalhos, materiais desenvolvidos e ferramentas. Os grupos têm tipicamente entre 5 e 7 elementos. 

Os alunos realizam o trabalho semanalmente em grupo, dentro e fora da sala de aula, e recorrem ao professor ao longo da semana de forma presencial, ou através de ferramentas de chat e videochamada. As reuniões de progresso são realizadas presencialmente, podendo decorrer remotamente por videochamada, situação cada vez mais comum na indústria.  Da forma como as aulas estão organizadas em bloco, o modo de funcionamento das aulas teóricas é semelhante ao das práticas. 

Os alunos são avaliados ao longo da realização do projeto, quer pela qualidade do trabalho desenvolvido, quer pelo empenho e iniciativa nos papéis que lhes são atribuídos.

Resultados de Aprendizagem

Esta unidade curricular aborda processos de desenvolvimento de software e o planeamento, organização e acompanhamento de todas as fases do ciclo de vida de desenvolvimento de software.

Os alunos participam na definição, análise e melhoria de processos de software.

Os alunos desenvolvem ainda um projeto de software, seguindo os processos definidos, estando envolvidos em todas as atividades como gestão de projeto, análise de requisitos, arquitetura, desenvolvimento e garantia de qualidade. Questões relacionadas com a comunicação, dinâmica de grupo ou prática profissional também são tratadas.

O objetivo principal da unidade curricular é proporcionar conhecimento, compreensão e prática em processos de software e gestão e desenvolvimento de projetos de software como uma atividade de engenharia.

Programa

  1. Definição, avaliação e melhoria de processos de software
  2. Planeamento de projetos de software
  3. Gestão de projetos de software
  4. Estimativa e agendamento
  5. Gestão da qualidade
  6. Gestão de risco
  7. Gestão de versões e alterações
  8. Gestão de configurações
  9. Revisões e Inspeções
  10. Monitorização e controlo do projeto
  11. Requisitos de software
  12. Arquitetura
  13. Programação
  14. Testes de software
  15. Entrega e Manutenção

Docente(s) responsável(eis)

Estágio(s)

NAO

Bibliografia

Recomendada:

  • Pressman, R. S. (2009). Software Engineering A Practitioner’s Approach 7th Ed. 1A-7-94 (ISEC)
  • Stellman, A., & Greene, J. (2006). Applied software project management. O’Reilly. 1A-7-73 (ISEC)
  • Jalote, P. (2005). An integrated approach to software engineering, 3rd Edition, Springer, 1A-7-101 (ISEC)

Complementar:

  • PMBOK® Guide – Sixth Edition (2017), Project Management Institute
  • Agile Practice Guide (2017), Project Management Institute

  • Scott Ambler, Mark Lines (2020), Choose your WoW: A Disciplined Agile Delivery Handbook for Optimizing Your Way of Working
  • Mark Lines, Scott Ambler (2018), Introduction to Disciplined Agile Delivery 2nd Edition: A Small Agile Team’s Journey from Scrum to Disciplined DevOps