Metodologias de Desenvolvimento de Software

Conhecimentos de Base Recomendados

Experiência em programação.

Métodos de Ensino

Os temas lecionados e os materiais de estudo são apresentados e discutidos, sendo dada ênfase à análise e discussão de casos de estudo. São ainda efetuadas análises direcionadas, realização de atividades e apresentação e defesa dos trabalhos.

Os trabalhos constam essencialmente da escrita de pequenos relatórios relacionados, que são apresentados e discutidos pela turma.

Algumas aulas servem para a realização de atividades práticas, como o planeamento e execução de tarefas relacionadas com o desenvolvimento de um pequeno projeto.

Resultados de Aprendizagem

Nesta unidade curricular são abordadas diversas metodologias de desenvolvimento de software, incluindo tradicionais e ágeis. Os alunos serão capazes de planear e aplicar planos simples para desenvolvimento de aplicações e sistemas. Ao completarem esta unidade curricular, os alunos deverão ser capazes de:

  • Identificar as diferentes fases do ciclo de vida de software.
  • Conhecer metodologias ágeis e tradicionais de desenvolvimento de software.
  • Compreender os objetivos e níveis de maturidade de software.
  • Desenvolver pequenas aplicações recorrendo a metodologias ágeis.
  • Justificar a aplicação de diferentes metodologias a projetos concretos.
  • Analisar projetos reais de desenvolvimento de software e sistemas de informação.
  • Escrever artefactos claros, concisos e tangíveis.

Programa

  1. Motivação
    • Casos de estudo sobre problemas relacionados com desenvolvimento de software
    • Exemplos de abordagens de desenvolvimento de software
  2. Processo de software
    • Processo, framework, ciclo de vida
  3. Modelos de Processos e Avaliação
    • ISO/IEC 12207, CMMI, ISO/IEC 15504
  4. Metodologias tradicionais
    • Modelos em cascata, incrementais, evolutivos
  5. Metodologias ágeis
    • Scrum, Extreme Programming, Kanban, Agile Unified Process, Less
  6. Design Thinking
  7. Spec Driven Development
  8. Conclusões
    • Análise global

Docente(s) responsável(eis)

Ricardo Ângelo dos Santos Filipe

Métodos de Avaliação

Os alunos realizam os seguintes trabalhos práticos:

  1. Comparação de abordagens por metodologias ágeis e tradicionais
  2. Prática de Scrum
  3. Escalar Scrum em Organizações
  4. Práticas ágeis de desenvolvimento de software (realizado em grupo)
  5. Spec Driven Development vs Vibe Coding

Os trabalhos práticos somam 65% na nota final.

Será ainda realizado um exame teórico com 35% de peso. É exigido um mínimo de 30% na nota de exame.

É aceite a ressubmissão de até 2 trabalhos até à ultima aula do semestre (total de 2 ressubmissões no máximo).


    Estágio(s)

    NAO

    Bibliografia

    Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J. (2002). Agile software development methods: Review and analysis. Finland: VTT Publications.

    Pressman, R. S. (2005). Software engineering: A practitioner’s approach (6th ed.). New York, NY: McGraw-Hill.

    Shore, J., & Warden, S. (2007). The art of agile development. O’Reilly.

    Tsui, F., & Karam, O. (2007). Essentials of software engineering. Sudbury, MA: Jones and Bartlett Publishers.

    Vários artigos e casos de estudo