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
a. Casos de estudo sobre problemas relacionados com desenvolvimento de software
b. Exemplos de abordagens de desenvolvimento de software
2. Processo de software
a. Processo, framework, ciclo de vida
3. Modelos de Processos e Avaliação
a. ISO/IEC 12207, CMMI, ISO/IEC 15504
4. Metodologias tradicionais
a. Modelos em cascata, incrementais, evolutivos
5. Metodologias ágeis
a. Scrum, Extreme Programming, Kanban, Agile Unified Process, DevOps
6. Design Thinking
7. Conclusões
a. Análise global
Docente(s) responsável(eis)
Ricardo Ângelo dos Santos FilipeEstá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