# Laboratório de Desenho e Teste de Software

Git e Gradle, Java orientado a objetos, SOLID, testes, UML, refactoring, padrões e MVC no projeto integrador.

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

LDTS é a cadeira onde o código que escreves começa a parecer software a sério: versionado, testado, desenhado com princípios e organizado para crescer. Vens de [Programação](https://resumos.rgo.pt/cadeiras/p/) com C++ na bagagem; aqui a linguagem de trabalho é Java e o objetivo é outro. Já não basta o programa correr, é preciso que outro programador o perceba, que os testes o protejam e que uma mudança não parta tudo o resto. O projeto integrador das últimas semanas, um jogo em equipa de três, é onde estas peças se juntam.

## Como está organizado

O percurso segue a ordem das páginas. [Controlo de versões](https://resumos.rgo.pt/cadeiras/ldts/controlo-versoes/) começa pelo Git e pelo Gradle, porque tudo o resto vive dentro de um repositório com builds repetíveis. [Java orientado a objetos](https://resumos.rgo.pt/cadeiras/ldts/java-orientado-objetos/) traduz o que sabes de C++ para Java, com ênfase em composição em vez de herança. Depois vêm as duas ferramentas de qualidade: [princípios SOLID](https://resumos.rgo.pt/cadeiras/ldts/principios-solid/) para desenhar classes e [testes unitários](https://resumos.rgo.pt/cadeiras/ldts/testes-unitarios/) com JUnit e Mockito para as proteger.

A segunda metade é desenho e organização. [Diagramas UML](https://resumos.rgo.pt/cadeiras/ldts/diagramas-uml/) ensina a ler e a esboçar classes, sequências e comunicações antes de codificar. [Code smells e refactoring](https://resumos.rgo.pt/cadeiras/ldts/smells-refactoring/) mostra como reconhecer código doente e o curar sem mudar comportamento. [Padrões de desenho](https://resumos.rgo.pt/cadeiras/ldts/padroes-desenho/) aplica os dez padrões do programa a problemas do jogo. Por fim, [MVC e projeto integrador](https://resumos.rgo.pt/cadeiras/ldts/mvc-projeto/) junta tudo no padrão Model-View-Controller e na organização do projeto.

## Como estudar

LDTS aprende-se a fazer, não a ler. Em cada página, abre o IntelliJ e executa o exemplo: cria o branch, corre o teste, desenha o diagrama à mão antes de ver a solução. Nas sete semanas de exercícios, resolve cada ficha no próprio dia, porque cada semana usa a anterior. No projeto, escreve os testes à medida que crias as classes; testes escritos no fim, à pressa, não apanham os erros que interessam.

## Avaliação

A avaliação é distribuída e não tem exame final. Conta 5 por cento de participação nas práticas, 55 por cento do projeto integrado em grupos de três e 40 por cento de duas provas individuais em computador, com mínimos por componente. As regras exatas, incluindo mínimos e acesso a recurso, mudam de ano para ano: confirma na ficha da unidade curricular no SIGARRA e na página da disciplina no Moodle.

## Fontes e âmbito

Estas páginas seguem o âmbito da unidade curricular de Laboratório de Desenho e Teste de Software (L.EIC014) do 2.º ano, 1.º semestre da LEIC, ocorrência de 2025/26: Git, Gradle, Java, princípios de orientação a objetos, SOLID, testes unitários com JUnit e Mockito, UML, code smells, refactoring, padrões de desenho e MVC. O software de trabalho é o IntelliJ e a bibliografia obrigatória é Thinking in Java e Learning UML 2.0.

Material oficial da FEUP:

*   Ficha da unidade curricular de LDTS, 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=560099).
