Requisitos Funcionais
8.1 Requisitos Funcionais — RFs
Os requisitos funcionais abaixo descrevem as capacidades que o sistema deve oferecer ao treinador e ao auxiliar, elicitadas a partir das reuniões de levantamento de requisitos com o cliente (Marcus Vinícius) e organizadas segundo as Características do Produto (CPs) definidas pela equipe:
- CP01 — Registro Categorizado dos Treinos
- CP02 — Estruturador de Periodização Esportiva
- CP03 — Dashboard Analítico
- CP04 — Geração Automática de Relatórios
- CP05 — Controle de Perfis de Acesso
8.1.1 Regras de Negócio para Consultas com Resultado Vazio
Esta subseção detalha o comportamento esperado do sistema nos cenários em que as consultas e filtros não retornam dados. Nessas situações de resultado vazio, o sistema não deve apontar erros, mas sim manter a estabilidade da interface, preservar os filtros aplicados e exibir uma mensagem orientadora ao usuário, conforme descrito na tabela a seguir:
| Requisito | Tipo de Consulta | Condição de Resultado Vazio | Comportamento do Sistema (Regra de Negócio) | Mensagem e Ação Sugerida ao Usuário |
|---|---|---|---|---|
| RF22 | Indicadores na tela inicial | Nenhum treino cadastrado no período selecionado. | Os indicadores quantitativos são exibidos com valor neutro (0 sessões, 0 min, 0 execuções). Não ocorrem erros de renderização. |
"Nenhum treino registrado neste período." O sistema exibe atalho para cadastrar nova sessão. |
| RF24 | Informações de atividades do treino | Filtro aplicado para o qual não existem atividades cadastradas. | A lista de atividades é substituída por um componente visual de estado vazio. | "Nenhuma atividade encontrada para os filtros aplicados." O sistema disponibiliza botão para limpar filtros. |
| RF25 | Geração de relatório em PDF | Exportação de relatório para um período sem sessões registradas. | O sistema emite notificação informativa na interface, evitando gerar arquivos vazios ou erros. | "Não há registros de treinos no período selecionado para compor o relatório." |
| RF35 a RF40 | Informações de dimensões do treino (espaço, orientação, momento, fase, comportamento, atributo) | Período filtrado não possui treinos com a dimensão selecionada. | O gráfico é renderizado com visual neutro (0 min e 0%), sem disparar exceções (ex.: evitar divisão por zero). |
"Sem atividades com [esta dimensão] no período." Mantém os filtros ativos para nova consulta. |
| RF41 | Análise comparativa por periodização | Um ou ambos os ciclos selecionados não possuem treinos. | O sistema renderiza a coluna do ciclo sem dados com indicativo neutro, alertando a impossibilidade de cálculo comparativo. | "O ciclo selecionado não possui treinos registrados para permitir o comparativo." |
8.2 Requisitos Não Funcionais - RNFs
Lista de requisitos não funcionais, contendo: Numeração do Requisito; Nome; Descrição; Classificação URPS+; Critério de Verificação.
| ID | Nome | Descrição | Classificação URPS+ | Critério de Verificação |
|---|---|---|---|---|
| RNF01 | Segurança e Proteção de Credenciais de Usuários | O sistema deve utilizar a aplicação de hash irreversível de senhas via bcrypt com salt para proteger o armazenamento das senhas dos operadores (técnico e auxiliar técnico). Em alinhamento à LGPD (Privacy by Design), o sistema restringe os dados aos operadores e não armazena dados pessoais nominais ou biométricos dos atletas menores de idade. | Segurança | Tentativas de acesso por utilizadores sem permissão devem retornar bloqueio de acesso com o código HTTP 401 (Unauthorized), verificável nos logs do backend. |
| RNF02 | Interface Responsiva e Adaptável | A interface do sistema deve ser responsiva, adaptando o layout automaticamente de acordo com a resolução do dispositivo para não prejudicar a visualização dos gráficos na tela. | Usabilidade | Ao redimensionar a janela do navegador ou abrir a aplicacao em janelas com larguras de 360px (mobile), 768px (tablet) e 1366px (desktop). O teste é considerado aprovado se nenhum gráfico ficar cortado, sobreposto ou exigir barra de rolagem horizonal na página. |
| RNF03 | Eficiência no Cadastro de Treinos | O sistema deve possuir fluxos de tela com tempo máximo de prenchimento dos dados inferior ao tempo atual de 4 minutos e meio para o preenchimento dos dados. Como objetivo, o sistema deve garantir que o processo de registro de um novo treino seja concluído pelo treinador em menos de 2 minutos. | Usabilidade | O teste inicia no momento em que o treinador clica no botão para criar um novo treino e termina no momento em que a mensagem de "Treino cadastrado com sucesso" é exibida. O critério será considerado atendido se, para um cenário de complexidade média (cadastrar um treino utilizando atividades previamente cadastradas na biblioteca), o tempo total for estritamente inferior a 2 minutos. |
| RNF04 | Atualização em Tempo Real do Dashboard | Os gráficos e indicadores do dashboard devem ser recalculados e atualizados na interface do usuário em um tempo máximo de 5 segundos após a confirmação de sucesso no cadastro, edição ou exclusão de um treino. | Performance | Durante os testes de sistema, o treinador cadastra um novo treino enquanto visualiza o dashboard. O tempo entre a confirmação do salvamento e a completa re-renderização do gráfico com os novos dados deve ser cronometrado. O critério é atendido se o tempo de atualização for estritamente menor ou igual a 5 segundos. |
8.3 Matriz Síntese de Rastreabilidade
| Contribuição principal | Contribuição secundária | CP | RFs relacionados | RNFs relacionados |
|---|---|---|---|---|
| OE1 | OE4 | CP1 | RF10, RF11, RF12, RF13, RF14, RF15, RF16, RF17, RF18, RF19, RF20, RF21, RF23, RF29, RF32, RF33, RF34 | RNF02, RNF03, RNF04 |
| OE2 | OE3 | CP2 | RF01, RF02, RF03, RF04, RF05, RF06, RF07, RF08, RF09 | RNF02 |
| OE3 | OE4 | CP3 | RF22, RF24, RF26, RF30, RF31, RF35, RF36, RF37, RF38, RF39, RF40, RF41 | RNF02, RNF03, RNF04 |
| OE4 | OE3 | CP4 | RF25 | RNF02 |
| OE1 | OE4 | CP5 | RF27, RF28 | RNF01, RNF02 |