Documentação de Requisitos de Software¶
5.1. Características do Produto (CP)¶
Para garantir a rastreabilidade estrutural do sistema, os requisitos funcionais e não funcionais foram mapeados de acordo com os seguintes módulos ou Características do Produto (CP):
- CP1 - Segurança e Controle de Acessos: Autenticação, perfis, logs e adequação à LGPD.
- CP2 - Gestão de Instrutores: Cadastro e controle da equipe de instrução e trabalho da instituição.
- CP3 - Cadastro de Beneficiários: Informações cadastrais de beneficiários.
- CP4 - Frequência e Engajamento: Gestão de turmas, matrículas e chamadas.
- CP5 - Monitoramento de Evasão: Gatilhos, alertas e registro de intervenções sociais.
- CP6 - Relatórios e Transparência: Extração de dados, impacto social e prestação de contas.
- CP7 - Arquitetura e Performance: Requisitos de infraestrutura, usabilidade e disponibilidade.
5.2. Requisitos Funcionais (RF)¶
| ID | Requisito (Verbo + Objeto) | Ator | Descrição do Requisito | Métrica de Validação (Critério de Aceite) | Característica do Produto (CP) |
| :------- | :---------------------------------- | :------------ | :------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------- | | RF01 | Autenticar usuário | Todos | Validar credenciais para o controle de acesso primário ao sistema, bloqueando a conta após 5 tentativas falhas consecutivas. | • CA01-01: Login válido gera token de acesso JWT.
• CA01-02: Após 5 tentativas inválidas consecutivas, a conta é bloqueada e registrada no log de segurança.
• CA01-03: Formato de e-mail inválido ou campos vazios exibem erro de validação.
• CA01-04: Perfis inativos ou sem permissões de acesso são bloqueados.
• CA01-05: Erro amigável exibido se a conexão com o banco de dados falhar. | CP1 - Segurança e Controle de Acessos |
| RF02 | Redefinir senha de acesso | Todos | Enviar link seguro com token temporário que expira em 15 minutos para recuperação de senha, garantindo autonomia. | • CA02-01: E-mail enviado em até 1 minuto.
• CA02-02: Token de redefinição expira após 15 minutos.
• CA02-03: Token expirado ou inválido impede a redefinição de senha.
• CA02-04: Validação de formato de e-mail e nova senha (mínimo de 4 caracteres).
• CA02-05: Falhas na gravação no banco de dados ou erros de rede exibem um erro amigável. | CP1 - Segurança e Controle de Acessos |
| RF03 | Encerrar sessão | Todos | Invalidar o token JWT do usuário ativo para prevenir o uso não autorizado em terminais compartilhados. | • CA03-01: Token de sessão invalidado localmente e no servidor após o logout.
• CA03-02: Inatividade de 15 minutos efetua logout automático com invalidação local.
• CA03-03: Em falhas de rede com o servidor, os dados locais são limpos e o usuário é redirecionado para a tela de login. | CP1 - Segurança e Controle de Acessos |
| RF04 | Cadastrar instrutor | Gestor | Inserir os dados do membro da equipe para a gestão do corpo de instrutores, sendo obrigatória a definição do perfil de acesso (RBAC). | • CA04-01: Instrutor salvo com identificador único (ID) e dados obrigatórios.
• CA04-02: Perfil de acesso definido com base em papéis (RBAC) restringindo ações a administradores.
• CA04-03: Registro automático de log de auditoria ao cadastrar instrutor.
• CA04-04: Validação de CPF ou E-mail duplicados e formatos inválidos.
• CA04-05: Falhas de persistência com o banco mantêm os dados no formulário. | CP2 - Gestão de Instrutores |
| RF05 | Editar perfil do instrutor | Gestor | Atualizar os dados cadastrais e as permissões do instrutor para manter a base de dados atualizada. | • CA05-01: Alterações persistidas no banco garantindo a unicidade de e-mail e CPF.
• CA05-02: Novas permissões do instrutor refletidas imediatamente em seu acesso.
• CA05-03: Registro automático de log de auditoria ao alterar perfil.
• CA05-04: Exibição de erro se o instrutor selecionado for inexistente ou em falhas de conexão.
• CA05-05: Exibição de estado de lista vazia quando não houver instrutores cadastrados. | CP2 - Gestão de Instrutores |
| RF06 | Inativar instrutor | Gestor | Realizar a inativação lógica (soft delete) do instrutor para revogar acessos, mantendo a integridade referencial. | • CA06-01: Status do usuário alterado para "inativo" via soft delete.
• CA06-02: Autenticação bloqueada e sessões revogadas imediatamente após inativação.
• CA06-03: Registro automático de log de segurança. | CP2 - Gestão de Instrutores |
| RF07 | Cadastrar beneficiário | Gestor/Instr. | Registrar o beneficiário no sistema com suas informações de contato e identificação. | • CA07-01: Beneficiário criado com dados obrigatórios e CPF único se fornecido.
• CA07-02: Acesso restrito a perfis autorizados no cadastro de beneficiário.
• CA07-03: Impedimento de CPF ou E-mail duplicados ou formatos inválidos.
• CA07-04: Dados sensíveis criptografados e falhas na base de dados tratadas mantendo os dados na tela. | CP3 - Cadastro de Beneficiários |
| RF08 | Editar dados do beneficiário | Gestor/Instr. | Atualizar as informações cadastrais e de perfil do beneficiário para manter os dados atualizados. | • CA08-01: Alterações persistidas no banco garantindo unicidade de CPF e impedindo remoção de dados obrigatórios.
• CA08-02: Criptografia active nos dados sensíveis e atualização refletida em tela.
• CA08-03: Exibição de erro apropriado caso beneficiário seja inexistente ou banco falhe.
• CA08-04: Validação de CPF ou E-mail duplicados e formatos incorretos ao editar. | CP3 - Cadastro de Beneficiários |
| RF09 | Cadastrar Turma | Gestor | Registrar uma nova atividade com cronograma contendo obrigatoriamente data de início e término, e limite de vagas. | • CA09-01: Turma criada com data de início anterior ao término e horários válidos.
• CA09-02: Limite máximo de vagas definido como inteiro positivo.
• CA09-03: Alocação de instrutor ativo sem conflitos de agenda.
• CA09-04: Bloqueio de cadastro por duplicidade de turma ativa (mesmo nome, horário e semestre).
• CA09-05: Erros de banco exibidos mantendo os dados no formulário. | CP4 - Frequência e Engajamento |
| RF10 | Matricular beneficiário | Gestor/Instr. | Vincular um beneficiário ativo a uma turma, validando automaticamente a disponibilidade de vagas. | • CA10-01: Vínculo de matrícula criado e vagas atualizadas atomicamente se houver vagas disponíveis.
• CA10-02: Ambos beneficiário e turma devem estar ativos no momento da matrícula.
• CA10-03: Bloqueio de duplicidade de matrícula na mesma turma.
• CA10-04: Mensagem de lista de beneficiários vazia se não houver registros.
• CA10-05: Erro se a turma ou o beneficiário selecionado forem inexistentes ou banco falhar. | CP4 - Frequência e Engajamento |
| RF11 | Registrar presença em lote | Instrutor | Lançar de forma massiva a presença ou falta dos matriculados exclusivamente na data da ocorrência da aula. | • CA11-01: Registro de chamada permitido apenas na data em que a aula ocorre.
• CA11-02: Falta Trabalho (FT) computa como presença.
• CA11-03: Envio de e-mail de aviso automático apenas para falta (F) registrada.
• CA11-04: Operação offline suportada com sincronização automática posterior. | CP4 - Frequência e Engajamento |
| RF12 | Alterar registro de frequência | Gestor | Permitir a correção de presenças retroativamente, com limite sistêmico de 72 horas após a aula. | • CA12-01: Correção retroativa permitida em até 72 horas após a aula com bloqueio após esse prazo.
• CA12-02: Exigência obrigatória de preenchimento de justificativa de alteração.
• CA12-03: Registro automático de log de auditoria com valor anterior e novo valor.
• CA12-04: Exibição de aviso caso o histórico de chamadas da turma esteja vazio ou a aula seja inexistente.
• CA12-05: Falhas de gravação no banco de dados mantêm a tela para nova tentativa. | CP4 - Frequência e Engajamento |
| RF13 | Registrar falta justificada | Instrutor | Lançar faltas abonadas (ex: atestados) para garantir a precisão estatística. | • CA13-01: Status da falta registrado como "justificada" e ausência não contabiliza para indicadores de evasão.
• CA13-02: Upload de comprovante limitado a 5MB nos formatos PDF, JPG ou PNG.
• CA13-03: Exibição de erro se o histórico de faltas do beneficiário estiver vazio ou falha na persistência. | CP4 - Frequência e Engajamento |
| RF14 | Emitir alerta de evasão | Sistema | Sinalizar automaticamente no painel de controle os beneficiários em risco por faltas. | • CA14-01: Alerta automático de atenção gerado no painel ao atingir 2 faltas não justificadas.
• CA14-02: Alteração de status automática para "Evadido" (bloqueio/necessidade de refazer curso) ao atingir 3 ou mais faltas não justificadas.
• CA14-03: Execução do processamento de alertas em segundo plano. | CP5 - Monitoramento de Evasão |
| RF15 | Consultar histórico do beneficiário | Todos | Exibir a linha do tempo centralizada de presenças, alertas recebidos e turmas vinculadas ao indivíduo. | • CA15-01: Exibição clara e consolidada em linha do tempo de todas as turmas, faltas, justificativas e alertas emitidos. | CP5 - Monitoramento de Evasão |
| RF16 | Gerar relatório de frequência | Gestor | Consolidar e exportar em formato CSV os percentuais de engajamento segmentados por turmas ou mês, bem como gerar relatórios visuais (gráficos) de ciclo. | • CA16-01: Exportação CSV estruturada com dados pessoais mascarados/anonimizados.
• CA16-02: Relatórios gráficos exibem as métricas de fluxo de ciclo: inscritos, desistentes e aprovados. | CP6 - Relatórios e Transparência |m formato CSV os percentuais de engajamento segmentados por turmas ou mês, bem como gerar relatórios visuais (gráficos) de ciclo. | • CA16-01: Exportação CSV estruturada com dados pessoais mascarados/anonimizados.
• CA16-02: Relatórios gráficos exibem as métricas de fluxo de ciclo: inscritos, desistentes e aprovados. | CP6 - Relatórios e Transparência |
5.3. Requisitos Não Funcionais (RNF)¶
Os requisitos não funcionais definem os atributos de qualidade e restrições da solução. Eles foram desenhados para mitigar riscos técnicos diretamente ligados aos módulos de negócio (Características do Produto), garantindo que a infraestrutura atenda à reality operacional da instituição.
| ID | Nome do Requisito | Descrição Técnica e Métrica de Validação | Categoria (FURPS+) | Característica do Produto (CP) |
|---|---|---|---|---|
| RNF01 | Criptografia Sensível | Os dados sensíveis dos usuários devem ser armazenados de forma ilegível no banco de dados, como documentos e senhas. Métrica: Verificação visual (via Query/DBeaver) de que os campos estão hasheados/criptografados. | Segurança | CP3 - Cadastro de Beneficiários |
| RNF02 | Trilha de Auditoria | O sistema deve registrar logs de criação e alteração de perfis vulneráveis. Métrica: Inserção automática de um registro contendo ID do usuário, ação realizada e timestamp na tabela de logs a cada requisição POST/PUT/DELETE nesses perfis. | Segurança | CP1 - Segurança e Controle de Acessos |
| RNF03 | Mascaramento em Exportações | O sistema deve ofuscar Identificadores Pessoais em relatórios externos. Métrica: Validação manual de que planilhas geradas exibem dados sensíveis mascarados (Ex: .123.-## para CPF). | Segurança | CP6 - Relatórios e Transparência |
| RNF04 | Operação Offline (Chamada) | O aplicativo deve permitir o registro de chamadas mesmo sem conexão com a internet. Métrica: Salvamento local no IndexedDB/LocalStorage durante o modo offline e disparo automático da sincronização ao detectar o evento online do navegador. | Confiabilidade | CP4 - Frequência e Engajamento |
| RNF05 | Processamento Assíncrono | O cálculo de padrões de faltas para geração de alertas não deve bloquear as requisições principais dos usuários. Métrica: Execução do job configurada em segundo plano (Background Job / Cron Job), rodando de forma independente do servidor web principal. | Desempenho | CP5 - Monitoramento de Evasão |
| RNF06 | Prevenção de Inatividade | Sessões esquecidas abertas em computadores da instituição devem ser invalidadas por segurança. Métrica: Expiração automática do token JWT após 15 minutos de inatividade, exigindo novo login no próximo clique do usuário. | Segurança | CP1 - Segurança e Controle de Acessos |
| RNF07 | Documentação da API | O código desenvolvido deve ser de fácil entendimento para futuras turmas de voluntários de TI que assumirem o projeto. Métrica: Geração automática da interface do Swagger/OpenAPI ativa na rota /swagger ou /api-docs contendo os endpoints do sistema. | Manutenibilidade | CP7 - Arquitetura e Performance |