# Engenharia de Software

Do requisito ao produto em equipa, processos, gestão, UML, construção e testes.

Página: https://resumos.rgo.pt/cadeiras/es/

Programar bem já tu sabes fazer. Engenharia de Software trata do que vem a seguir: construir software em equipa, com requisitos que mudam, prazos reais e utilizadores que não leram o teu código. A matéria segue o ciclo de vida de um produto, da ideia até à manutenção, e cada página corresponde a uma fase desse ciclo.

## Como está organizado

Começa pela [Introdução](https://resumos.rgo.pt/cadeiras/es/introducao/), que explica porque um produto com dez programadores não é dez vezes um programa individual. Depois, [Processos de software](https://resumos.rgo.pt/cadeiras/es/processos-software/) apresenta as formas de organizar o trabalho, do RUP ao Scrum, e [Gestão de projetos](https://resumos.rgo.pt/cadeiras/es/gestao-projetos/) mostra como planear, estimar e acompanhar um projeto sem adivinhar.

A segunda metade é técnica: [Requisitos](https://resumos.rgo.pt/cadeiras/es/requisitos-uml/) ensina a descobrir e especificar o que o software deve fazer, com casos de uso em UML; [Arquitetura e desenho](https://resumos.rgo.pt/cadeiras/es/arquitetura-desenho/) decide a estrutura antes de escrever código, com diagramas de classes e de sequência; [Construção e evolução](https://resumos.rgo.pt/cadeiras/es/construcao-evolucao/) cobre Git, integração contínua e manutenção; e [Verificação e validação](https://resumos.rgo.pt/cadeiras/es/verificacao-validacao/) fecha o ciclo com testes de integração, de sistema e de aceitação.

## Um exemplo corrido

Para ligar as fases, vamos seguir a mesma funcionalidade em todas as páginas: o início de sessão de uma aplicação. Nos requisitos escrevemos o que o início de sessão deve fazer e desenhamos os casos de uso. Na arquitetura decidimos as classes e a sequência de passos. Na construção o código passa por pull request e integração contínua. Na validação escrevemos os critérios de aceitação e testamos o fluxo completo. Quando chegares ao fim, terás visto a mesma funcionalidade passar por todas as fases, que é exatamente o que o projeto da cadeira te pede para fazer em equipa.

## Como estudar

Lê cada página a pensar no projeto: que artefacto desta fase já produziste e qual está em falta. Desenha os diagramas à mão antes de os passares a limpo, porque o valor está nas decisões que tomas enquanto desenhas, não no desenho final. Nos exercícios de estimação e de testes, faz as contas e escreve os casos tu próprio; ler um burndown ou um caso de aceitação feito por outra pessoa não treina nada.

## Avaliação

A avaliação é distribuída ao longo do semestre, sem exame final, e combina participação nas aulas, projeto desenvolvido em equipa e trabalhos práticos individuais. Os pesos e as regras concretas mudam de ano para ano, por isso confirma sempre a ficha da unidade curricular no SIGARRA e a página da disciplina no Moodle antes de planeares o teu semestre.

## Fontes e âmbito

Estas páginas seguem o âmbito da unidade curricular de Engenharia de Software (L.EIC017) do 2.º ano, 2.º semestre da LEIC, ocorrência de 2025/26: introdução, processos de software, gestão de projetos, requisitos, arquitetura e desenho, construção e evolução, verificação e validação. A bibliografia obrigatória da ficha é Ian Sommerville, Software Engineering (10.ª edição), e o software indicado é o Flutter SDK com o Android Studio.

Material oficial da FEUP:

*   Ficha da unidade curricular de Engenharia de Software, ocorrência de 2025/26, com objetivos, programa, bibliografia e avaliação (consultada em setembro de 2026): [SIGARRA](https://sigarra.up.pt/feup/pt/ucurr_geral.ficha_uc_view?pv_ocorrencia_id=560102).
