UC02837 · Projectos de programação
Aulify · Componente Tecnológica

Projectos de programação

Metodologia, Git, ciclo de vida, integração final (PAP)
UC02837 · 50 horas · 4,5 pontos Nível 4 · TDS · Ano 3 · capstone
Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação

Resultados de aprendizagem

  1. Planear um projecto de software do início ao fim.
  2. Aplicar metodologias ágeis e controlo de versões.
  3. Integrar competências de todas as UCs anteriores.
  4. Apresentar e defender o trabalho (PAP).
Esta UC junta tudo: programação, BD, web, segurança, mobile. É o ensaio da PAP.
Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação
Bloco 1 · Ciclo de vida

Do problema ao produto

Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação

Fases de um projecto

  1. Levantamento — entender o problema, requisitos.
  2. Análise e desenho — modelo de dados, arquitectura.
  3. Planeamento — tarefas, estimativas, prazos.
  4. Implementação — código, em iterações.
  5. Testes — unitários, integração, aceitação.
  6. Entrega/deploy — colocar em produção.
  7. Manutenção — correcções, melhorias.
Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação

Requisitos

Funcionais — o que o sistema faz.

"O utilizador pode registar-se com email."

Não-funcionais — como o faz.

"A página carrega em < 2s." · "Suporta 1000 utilizadores."

User stories:

"Como [aluno], quero [ver as minhas notas] para [acompanhar o meu progresso]."

Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação

Estimar e planear

  • Quebrar em tarefas pequenas (< 1 dia cada).
  • Estimar (story points ou horas).
  • MVP primeiro — Minimum Viable Product.
  • Priorizar: MoSCoW (Must / Should / Could / Won't).
  • Margem para imprevistos (+30%).
Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação
Bloco 2 · Metodologias

Como organizar o trabalho

Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação

Cascata vs Ágil

Cascata (waterfall): fases sequenciais. Tudo planeado ao início. Rígido.

Ágil: iterações curtas, feedback contínuo, adaptação. Domina em 2026.

Cascata Ágil
Mudança Custosa Esperada
Entrega No fim Incremental
Risco Alto Reduzido cedo
Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação

Scrum (resumo)

  • Sprint — iteração de 1-4 semanas.
  • Backlog — lista priorizada de trabalho.
  • Sprint planning — escolher o que fazer.
  • Daily — sincronização curta diária.
  • Review — mostrar o que foi feito.
  • Retrospetiva — o que melhorar.

Papéis: Product Owner, Scrum Master, equipa.

Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação

Kanban

Quadro com colunas:

┌─────────┬──────────────┬───────────┬──────────┐
│ To Do   │ In Progress  │ Review    │ Done     │
├─────────┼──────────────┼───────────┼──────────┤
│ Tarefa4 │ Tarefa2      │ Tarefa1   │ Tarefa0  │
│ Tarefa5 │              │           │          │
└─────────┴──────────────┴───────────┴──────────┘

Limitar WIP (work in progress). Ferramentas: Trello, GitHub Projects, Jira.

Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação
Bloco 3 · Git

Controlo de versões

Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação

Git essencial

git init
git clone <url>
git status
git add .
git commit -m "feat: adiciona login"
git push origin main
git pull
git log --oneline

Commits pequenos e descritivos. Mensagem no imperativo: "adiciona", "corrige".

Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação

Branches e fluxo

git checkout -b feature/login
# ... trabalhar ...
git commit -m "feat: formulário de login"
git push -u origin feature/login
# Abrir Pull Request → revisão → merge
  • main — sempre funcional.
  • feature/x — uma funcionalidade.
  • Pull Request — revisão antes de juntar.
Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação

Boas práticas Git

  • .gitignore — não comitar venv/, .env, node_modules/.
  • Commits atómicos — uma mudança lógica por commit.
  • Conventional commitsfeat:, fix:, docs:, refactor:.
  • Nunca comitar secrets — se acontecer, revogar e limpar histórico.
  • README sempre.
  • Trabalho em equipa → branches + PRs + revisão.
Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação
Bloco 4 · Qualidade

Código que dura

Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação

Testes e CI

  • Testes — unitários, integração, aceitação.
  • CI (Integração Contínua) — testes correm a cada push.
# GitHub Actions (resumo)
on: [push]
jobs:
  test:
    steps:
      - run: pip install -r requirements.txt
      - run: pytest

Build vermelho = não fazer merge.

Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação

Qualidade de código

  • Nomes claros, funções pequenas.
  • DRY — não repetir.
  • Comentar o porquê, não o quê.
  • Linter + formatter (ruff/black, eslint/prettier).
  • Code review — segundo par de olhos.
  • Documentação — README, comentários, docstrings.
  • Segurança — validação, sem secrets, deps auditadas.
Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação
Bloco 5 · PAP

A Prova de Aptidão Profissional

Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação

O que é a PAP

Projecto transversal e individual que demonstra as competências adquiridas no curso. Apresentado e defendido perante um júri.

Componentes:

  • Projecto — software funcional.
  • Relatório — documento técnico escrito.
  • Defesa — apresentação oral + perguntas do júri.
Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação

Escolher um bom tema

Bom tema PAP:

  • Real — resolve um problema concreto.
  • Âmbito adequado — nem trivial nem impossível em 1 ano.
  • Integra várias competências (BD + web + segurança...).
  • Demonstrável — funciona ao vivo.
  • Próprio — interesse genuíno do aluno.

Exemplos: app de gestão para um negócio local, plataforma escolar, ferramenta útil.

Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação

Relatório técnico

Estrutura típica:

  1. Introdução e motivação.
  2. Análise de requisitos.
  3. Tecnologias e arquitectura.
  4. Desenvolvimento (decisões, dificuldades).
  5. Testes.
  6. Conclusões e trabalho futuro.
  7. Bibliografia + anexos.

Escrita clara, capturas, diagramas. Português cuidado.

Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação

Defesa oral

  • Preparar — ensaiar, cronometrar (~15 min).
  • Demo ao vivo — ter plano B (vídeo) se falhar.
  • Slides — limpos, pouco texto, mostrar o produto.
  • Antecipar perguntas — porquê esta tecnologia? E a segurança? E se crescer?
  • Honestidade — admitir limitações; mostrar o que aprenderia a seguir.
  • Calma — o júri quer ver-te bem.
Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação
Bloco 6 · Integração

Tudo o que aprendeste

Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação

O que a PAP integra

Competência UC
Lógica e algoritmia UC00245
Programação UC00606-00608
Base de dados UC00602, UC02830, UC02831
Frontend UC02833
Backend web UC02834
Mobile UC02835
Segurança UC02836, UC00613
Documentação UC02823
Gestão de projecto UC02837 (esta)
Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação

Conselho final

Um projecto acabado e simples vale mais que um ambicioso por terminar.

  • Define um MVP e entrega-o cedo.
  • Versiona desde o dia 1.
  • Documenta à medida, não no fim.
  • Pede feedback cedo e muitas vezes.
  • Gere o tempo — a PAP não se faz na última semana.
Aulify · Componente Tecnológica · Cursos Profissionais
UC02837 · Projectos de programação
Aulify · UC02837 · Fim do curso TDS

Constrói algo de que te orgulhes.

Boa PAP. O curso terminou — a carreira começa.
📧 geral@aulify.pt
Aulify · Componente Tecnológica · Cursos Profissionais