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
- Motivação
- Casos de estudo sobre problemas relacionados com desenvolvimento de software
- Exemplos de abordagens de desenvolvimento de software
- Processo de software
- Processo, framework, ciclo de vida
- Modelos de Processos e Avaliação
- ISO/IEC 12207, CMMI, ISO/IEC 15504
- Metodologias tradicionais
- Modelos em cascata, incrementais, evolutivos
- Metodologias ágeis
- Scrum, Extreme Programming, Kanban, Agile Unified Process, Less
- Design Thinking
- Metodologias de Data Science
- Conclusões
- Análise global
Docente(s) responsável(eis)
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