Partilhar: Classroom Teams WhatsApp
aulify · Mini-Projecto
UC UC00619 · T. Desenv. Software
Versão · Aluno

Mini-Projeto · App Java OOP + BD

Sistema com coleções, JDBC, testes
⏱ Duração estimada: 16 horas (≈ 10 aulas) ↗ Referencial SNQ
Índice

Contexto

Cada par/trio constrói uma aplicação Java completa com OOP, persistência em base de dados (SQLite), CLI interativa, testes unitários e Maven. Cenários:

Requisitos

Funcionais

  1. Maven com pom.xml.
  2. Mínimo 3 classes com OOP (herança ou interfaces).
  3. Persistência SQLite via JDBC (DAOs).
  4. CLI com menu interativo, desenhado antes de programar (esboço do menu, fluxo entre ecrãs e mensagens).
  5. CRUD completo (criar, listar, atualizar, apagar).
  6. Validação das entradas do utilizador.
  7. Exceções próprias (mínimo 1).
  8. Testes JUnit (mínimo 5 testes).

Não-funcionais

  1. Estrutura modular (pacotes: model, dao, ui, util).
  2. PreparedStatement em todas as queries.
  3. Try-with-resources em conexões.
  4. Documentação: README, guião técnico e manual de utilizador.
  5. GitHub com commits regulares.
  6. Apresentação com demo.
  7. Fontes técnicas consultadas: lista de pelo menos duas (por exemplo a API Java, a documentação do driver SQLite, um tutorial), com o que aprendeste em cada uma.

Fases

Fase 1 · Planeamento e design (3h)

Fase 2 · Models (2h)

Fase 3 · DAOs (3h)

Fase 4 · CLI (3h)

Fase 5 · Exceções + validação (1h)

Fase 6 · Testes (2h)

Fase 7 · Documentação + GitHub (1h)

Fase 8 · Apresentação (1h)

Critérios de avaliação

Item Peso
Planeamento, design, diagrama e esboço da interface 10%
OOP + arquitetura 15%
JDBC + DAOs 15%
CLI usável 10%
Validação + exceções 10%
Testes JUnit 15%
GitHub workflow 5%
Documentação (README, guião técnico, manual de utilizador) e fontes consultadas 10%
Apresentação 10%

Reflexão

Em meia página: que conceito OOP te custou mais (herança, interfaces, polimorfismo)? Como estruturaste o projeto e o que mudarias se voltasses a começar? Gostaste de escrever JDBC à mão ou preferias ter uma ferramenta de mais alto nível? Que biblioteca ou ferramenta descobriste e achaste útil? Achas que o Spring Boot é o passo seguinte natural?