Ficha 01 · Ciclo de vida e metodologias
- Distinguir requisitos
- Escrever user stories
- Comparar metodologias
- Planear um projecto
Parte I · Requisitos
Exercício 1 · Funcional ou não-funcional (15 pts)
Classifica cada requisito:
a) "O utilizador pode recuperar a senha por email." ___
b) "O site carrega em menos de 2 segundos." ___
c) "O sistema suporta 1000 utilizadores simultâneos." ___
d) "O administrador exporta relatórios em PDF." ___
e) "Os dados pessoais são encriptados (RGPD)." ___
f) "É possível pesquisar produtos por nome." ___
a) Funcional — uma funcionalidade. b) Não-funcional — desempenho. c) Não-funcional — escalabilidade. d) Funcional — uma funcionalidade. e) Não-funcional — segurança/conformidade. f) Funcional — uma funcionalidade.
Regra: o que o sistema faz = funcional; como/qualidade = não-funcional.
Exercício 2 · User stories (15 pts)
Escreve 3 user stories no formato "Como… quero… para…" para um sistema de biblioteca escolar (papéis: aluno, bibliotecário).
-
Como aluno, quero pesquisar livros por título ou autor para encontrar rapidamente o que preciso.
-
Como aluno, quero ver os livros que tenho requisitados e a data de devolução para não pagar multas por atraso.
-
Como bibliotecário, quero registar a devolução de um livro para manter o inventário actualizado.
(Outras válidas: bibliotecário adicionar novos livros; aluno reservar livro indisponível; bibliotecário ver alunos com livros em atraso.)
Exercício 3 · Critérios de aceitação (10 pts)
Para a story "Como aluno, quero fazer login para aceder à minha conta", escreve 3 critérios de aceitação.
-
Dado um aluno com credenciais válidas, quando submete o formulário de login, então é redirecionado para o seu painel.
-
Dado um aluno com senha errada, quando submete o login, então vê uma mensagem de erro genérica e permanece na página de login.
-
Dado um aluno não autenticado, quando tenta aceder a
/painel, então é redirecionado para o login.
(Bónus: após 5 tentativas falhadas, a conta é temporariamente bloqueada.)
Parte II · Planeamento
Exercício 4 · MoSCoW (15 pts)
Vais fazer uma app de gestão de tarefas como PAP. Classifica em Must/Should/Could/Won't:
a) Criar e listar tarefas. ___
b) Autenticação de utilizador. ___
c) Notificações push no telemóvel. ___
d) Marcar tarefa como concluída. ___
e) Integração com Google Calendar. ___
f) Tema escuro. ___
a) Must — é o núcleo do produto. b) Must — cada utilizador tem as suas tarefas. c) Could — bom ter, não essencial. d) Must — funcionalidade base de uma to-do app. e) Won't (por agora) — complexo, fora do MVP. f) Should ou Could — melhora UX mas não é crítico.
O MVP = todos os Must. Entregar isso primeiro, funcional, antes de avançar.
Exercício 5 · Estimativa (10 pts)
Um colega estima que a PAP "fica pronta em 2 semanas". Que problemas vês nesta estimativa e como melhorá-la?
Problemas: - Estimativa global sem decompor em tarefas — pouco fiável. - Não considera imprevistos (bugs, coisas que não se sabe fazer ainda). - Programadores subestimam sistematicamente. - Não distingue MVP de funcionalidades extra.
Melhorar: - Quebrar em tarefas pequenas (< 1 dia cada) e estimar cada uma. - Somar e adicionar margem (~30%). - Definir MVP e estimar só esse primeiro. - Usar marcos intermédios para validar o ritmo. - Rever a estimativa à medida que se aprende mais.
Parte III · Metodologias
Exercício 6 · Cascata vs Ágil (10 pts)
a) Dá uma vantagem e uma desvantagem da cascata.
b) Porque é que o ágil domina hoje no desenvolvimento de software?
a) Cascata: - Vantagem: simples de entender, documentação forte, bom quando requisitos são fixos. - Desvantagem: mudança é cara; problemas só aparecem no fim; nada utilizável até ao final.
b) Ágil domina porque os requisitos de software mudam quase sempre durante o projecto. Iterações curtas permitem: feedback cedo, detectar problemas depressa, adaptar a mudanças, e entregar valor incremental em vez de esperar pelo fim. Reduz risco.
Exercício 7 · Aplicar a uma PAP individual (10 pts)
Vais fazer a PAP sozinho. Scrum completo faz sentido? Que abordagem leve recomendarias e como organizá-la?
Scrum completo (Product Owner, Scrum Master, dailies, várias cerimónias) não faz sentido para 1 pessoa — é desenhado para equipas.
Recomendação: Kanban simples + iterações leves.
- Quadro com colunas: Backlog → A fazer → Em curso → Feito (Trello, GitHub Projects).
- Limitar WIP — uma tarefa "em curso" de cada vez; terminar antes de começar outra.
- Marcos semanais — pequenas metas e auto-revisão ("o que fiz, o que bloqueia").
- Git desde o início — commits frequentes = histórico do progresso.
- Reunião regular com o orientador (faz de "review/retrospetiva").
Mantém disciplina sem o overhead de Scrum em equipa.