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

Mini-Projecto · App C++ moderno

STL, smart pointers, threads, CMake, testes
⏱ Duração estimada: 16 horas (≈ 10 aulas) ↗ Referencial SNQ
Índice

Contexto

Cada par/trio constrói uma aplicação C++ moderna completa que demonstre as features avançadas: templates, STL, smart pointers, exceptions, threads, CMake, testes. Cenários:

Requisitos

Funcionais

  1. C++20 mínimo (-std=c++20).
  2. CMake como build system.
  3. Mínimo 2 classes com templates ou herança.
  4. Smart pointers sempre (zero new/delete raw).
  5. STL containers e algorithms.
  6. Lambdas em pelo menos 3 sítios.
  7. Exceptions custom (mínimo 1).
  8. Concorrência (threads ou async).
  9. Testes Catch2 (mínimo 8).

Não-funcionais

  1. Sem memory leaks — AddressSanitizer ou Valgrind clean.
  2. Warnings clean com -Wall -Wextra -Werror.
  3. README completo com setup, comandos, screenshots.
  4. GitHub com commits regulares.
  5. CI com GitHub Actions (compila + testa em push).
  6. Apresentação com demo + análise de performance.

Fases

Fase 1 · Design + setup (2h)

Fase 2 · Core data structures (3h)

Fase 3 · Lógica de negócio (4h)

Fase 4 · Concorrência (2h)

Fase 5 · Tratamento de erros (1h)

Fase 6 · Testes (2h)

Fase 7 · CI + README (1h)

Fase 8 · Apresentação (1h)

Critérios de avaliação

Item Peso
C++ moderno idiomático 15%
Smart pointers + RAII 10%
Templates + STL 15%
Lambdas + algorithms 10%
Concorrência funcional 15%
Testes Catch2 10%
CMake + CI 10%
Sem leaks / warnings 5%
README + apresentação 10%

Reflexão

Em meia página: que feature C++ moderna te impressionou mais? Como smart pointers mudaram o teu mindset vs raw pointers? Templates intuitivos ou difíceis de raciocinar? Concorrência correr no teu hardware deu speedup real? C++ vs Rust — explorarias Rust a seguir?