Código:
15386
Ano:
2
Semestre:
S1
Créditos ECTS:
6
Carga Horária:
PL(30H)/T(30H)
Área Científica:
Sistemas e Computadores
Tipo de ensino:
Presencial.
Estágios:
Não aplicável.
Objectivos de Aprendizagem:
Knowledge: No final da unidade curricular, os estudantes deverão compreender os princípios, processos e modelos de ciclo de vida da engenharia de software; métodos Ágeis (Scrum); engenharia de requisitos; arquitetura, conceção e modelação UML; verificação, validação e testes; CI/CD; qualidade de código, revisão e refatoração; plataformas de engenharia de software; e o impacto da IA no desenvolvimento de software.
Skills: Os estudantes deverão ser capazes de elicitar, especificar e modelar requisitos; conceber soluções de software; aplicar práticas Ágeis; desenvolver modelos UML; realizar revisões de código, refatoração e testes; utilizar plataformas colaborativas, pipelines CI/CD e ferramentas de IA; e colaborar em equipas de desenvolvimento.
Competences: Os estudantes deverão demonstrar capacidade para desenvolver soluções de software de forma iterativa e colaborativa, integrar métodos e ferramentas, fundamentar decisões técnicas, utilizar IA de forma ética e responsável.
Conteúdos programáticos:
1. Introdução ao Desenvolvimento de Software e Produtos de Software
2. Processos de Software, Modelos de Ciclo de Vida, Métodos Ágeis e Scrum
3. Engenharia de Requisitos (Histórias de Utilizador, Cenários e Engenharia de Requisitos Assistida por IA)
4. Engenharia de Requisitos Orientada por Modelos
5. Arquitetura de Software e Decisões Arquiteturais
6. Princípios de Conceção de Software, UML, Padrões e Atributos de Qualidade
7. Construção de Software, Qualidade de Código, Revisão de Código e Refatoração
8. Verificação, Validação e Testes de Software
9. Integração Contínua, CI/CD e Plataformas de Engenharia de Software
10. Engenharia de Software Assistida por IA e Ferramentas Inteligentes de Desenvolvimento
Metodologias de Ensino e Critérios de Avaliação:
Metodologia de ensino:
• Aulas teóricas com exposição dos conceitos fundamentais, discussão de estudos de caso e atividades de aprendizagem ativa.
• Aulas prático-laboratoriais organizadas em torno de um projeto iterativo de engenharia de software, integrando modelação, conceção, implementação, revisão, testes e utilização responsável de ferramentas assistidas por Inteligência Artificial.
• Projeto de grupo desenvolvido ao longo do semestre utilizando metodologias Ágeis (Scrum), promovendo a integração progressiva dos conteúdos programáticos.
• Atividades individuais e colaborativas em sala de aula, incluindo desafios de engenharia, revisão por pares, resolução de problemas e reflexão sobre decisões de engenharia.
Bibliografia principal:
- Bass L., Lu Q., Weber I., and Zhu L., Engineering AI Systems: Architecture and DevOps Essentials, Pearson, 2025
- Sommerville I., Engineering Software Products: An Introduction to Modern Software Engineering, Pearson, 2020
- Fowler M., Refactoring (2nd Edition), Addison-Wesley Signature Series, 2018
- Sommerville I., Software Engineering, 9th edition, Pearson Education, 2015
Língua:
Português
Esta informação promove os seguintes Objetivos de Desenvolvimento Sustentável da ONU:
Garantir o acesso à educação inclusiva, de qualidade e equitativa, e promover oportunidades de aprendizagem ao longo da vida para todos