Engenharia de Software

Código:
14341
Ano:
3
Semestre:
S1
Créditos ECTS:
6
Carga Horária:
PL(30H)/T(30H)
Área Científica:
Informática
Tipo de ensino:
Presencial.
Estágios:
Não aplicável.
Objectivos de Aprendizagem:
1) Knowledge: No final da UC, os estudantes deverão saber: Agile/Scrum; requisitos (histórias, cenários, modelação); conceção/arquitetura (UML/SysML); QA, testes e CI; impacto da IA (testes, refatoração, geração); code smells/refatoração; DevOps, pipelines e fluxos com IA.
2) Skills: Os estudantes deverão estar aptos a: recolher/especificar requisitos (histórias, modelação); aplicar Ágil para planear/acompanhar/refletir sprints; modelar sistemas (p.ex., casos de uso); implementar testes (unitários, integração, exploratórios) com apoio de IA; analisar qualidade e refatorar code smells; conceber/operar CI/CD; usar assistentes com responsabilidade; comunicar eficazmente em equipa (retros, planeamento, demos).
3) Competences: Os estudantes deverão demonstrar: Entrega iterativa em equipa (Scrum); proficiência colaborativa (GitHub/pipelines); pensamento crítico; ética/sustentabilidade (IA responsável); aprendizagem contínua.
Conteúdos programáticos:
1. Introdução ao Desenvolvimento de Software e Produtos de Software
2. Processos de Software e Desenvolvimento Ágil
3. Modelos de Ciclo de Vida: Waterfall, Iterativo, Incremental
4. Funcionalidades, Cenários e Histórias de Utilizador
5. Engenharia de Requisitos Orientada por Modelos
6. Arquitetura de Sistemas
7. Modelação de Sistemas
8. Testes de Software e Testes Assistidos por IA
9. Refatoração Automática e Code Smells com Ferramentas Inteligentes
10. Integração Contínua e Plataformas de Engenharia de Software
11. Engenharia de Software Assistida por Inteligência Artificial
Metodologias de Ensino e Critérios de Avaliação:
Aulas teóricas (T).
Aulas prático-laboratoriais (PL).
Aprendizagem baseada em projetos.

1) Em período ensino-aprendizagem:
F1: 1ª frequencia (5 valores)
F2: 2ª frequencia (6 valores)
BT: 2 badges teóricos (1 valor).
P: projecto (8 valores)

Classificação = F1 + F2 + BT + P

Definição de Badge: Realização de atividades que promovam o envolvimento e a participação do aluno em aula, promovendo-se a aquisição de hard skills e especialmente soft skills tais como, pro-actividade, capacidade de comunicação (com o professor e inter-pares), capacidade analítica, capacidade de argumentação, trabalho em equipa, e foco na resolução de problemas.

2) Em exame:
E: prova escrita (12 valores)
P: projecto (8 valores) *transita de frequência, acrescido de melhorias definidas pelos docentes

Classificação = E + P
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, 2011
- Pressman R. S. and Ince D., Software Engineering - A Practitioner’s Approach, McGraw-Hill, 2007
- Rambaugh J., Jacobson I. and Booch G., The Unified Modeling Language Reference Manual, Addison-Wesley, 2005
Língua:
Português