Pular para conteúdo

7. Requisitos de Software

7.1 Lista de Requisitos Funcionais (Especificação Suplementar)

Os requisitos funcionais estabelecem um consenso que fomenta a implementação dos objetivos planejados para o app Nativo. A seguir, é apresentado o escopo atualizado do sistema, totalizando 50 requisitos funcionais organizados de acordo com as Características do Produto (CPs) e os Objetivos Estratégicos (OEs) do projeto.

(OE1) Aumentar a retenção e o engajamento na plataforma

CP1 - Criação de Mecanismos interativos de aprendizagem e engajamento

ID Nome do requisito Descrição
RF01 Criar atividade educacional Permitir que professores criem atividades para os usuários resolverem.
RF02 Listar atividades educacionais para gerenciamento Permitir que usuários autorizados visualizem as atividades educacionais cadastradas.
RF03 Responder atividade educacional Permitir que os usuários submetam respostas às atividades publicadas.
RF04 Visualizar resultado da atividade Permitir que os usuários visualizem a correção e a pontuação obtida após responderem a uma atividade.
RF05 Editar atividade educacional Permitir que professores, administradores e moderadores editem o conteúdo de uma atividade.
RF06 Excluir atividade educacional Permitir que professores, administradores e moderadores excluam uma atividade.
RF07 Criar insígnia Permitir que administradores, professores e moderadores criem insígnias de engajamento.
RF08 Editar insígnia Permitir que administradores e moderadores alterem o nome, arte ou regras de uma insígnia.
RF09 Excluir insígnias Permitir que administradores e moderadores removam insígnias do sistema.
RF50 Listar atividades disponíveis para resolução Permitir que usuários comuns visualizem as atividades educacionais disponíveis para resolução.

CP2 - Criação de Feed Social Comunitário

ID Nome do requisito Descrição
RF10 Criar publicação Permitir que todos os usuários publiquem conteúdos na área de feed.
RF11 Editar publicação Permitir que os usuários editem suas próprias publicações no feed.
RF12 Listar publicações Permitir que os usuários visualizem o histórico de postagens no feed comunitário.
RF13 Excluir publicação Permitir que o autor da publicação e moderadores excluam uma postagem.
RF14 Interagir com a publicação Permitir que todos os usuários interajam (ex: curtir/comentar) com as publicações postadas.
RF15 Criar eventos Permitir que usuários criem eventos da comunidade na plataforma.
RF16 Editar eventos Permitir que os criadores de um evento alterem suas informações e datas.
RF17 Listar eventos Permitir que os usuários visualizem a agenda de eventos da comunidade.
RF18 Excluir eventos Permitir que o criador do evento e moderadores excluam o evento do sistema.
RF19 Compartilhar eventos Permitir que o usuário compartilhe eventos da comunidade para outras redes ou usuários.

(OE2) Assegurar a integridade e segurança do acervo cultural

CP3 - Controle de usuário

ID Nome do requisito Descrição
RF20 Banir usuário Permitir que administradores banam usuários infratores da aplicação.
RF21 Atribuir cargos de usuário Permitir que administradores atribuam permissões específicas (ex: professor, moderador) aos usuários.
RF22 Editar cargos de usuário Permitir que administradores modifiquem os níveis de acesso de um usuário existente.
RF23 Listar cargos de usuário Permitir que administradores visualizem os cargos disponíveis e quem os ocupa.
RF24 Desatribuir cargos de usuário Permitir que administradores removam um cargo atribuído a um usuário.
RF25 Candidatar-se a professor Permitir que usuários solicitem oficialmente o papel de professor no sistema.
RF26 Recuperar senha Permitir que o usuário recupere o acesso à sua conta via redefinição de senha por e-mail.

CP4 - Sistema de denúncias

ID Nome do requisito Descrição
RF27 Criar denúncia Permitir que os usuários relatem publicações, comportamentos indevidos ou traduções incorretas.
RF28 Atualizar status de denúncia Permitir que moderadores e administradores alterem o status (ex: em análise, resolvida) de uma denúncia.
RF29 Listar denúncias Permitir que moderadores e administradores visualizem todas as denúncias realizadas na aplicação.
RF30 Criar categoria de denúncia Permitir que administradores criem novas classificações para organizar os tipos de denúncia.
RF31 Editar categoria de denúncia Permitir que administradores alterem o título ou descrição de uma categoria existente.
RF32 Listar categorias de denúncia Permitir que o sistema exiba as categorias disponíveis no momento do preenchimento de uma denúncia.
RF33 Excluir categoria de denúncia Permitir que administradores removam categorias de denúncias obsoletas.

(OE3) Enriquecer a experiência do usuário na aplicação

CP5 - Suporte a Multimídia nas Traduções

ID Nome do requisito Descrição
RF34 Cadastrar vídeo Permitir o cadastro de vídeos, pelos administradores e moderadores, ao sistema.
RF35 Exibir vídeo Permitir que os usuários visualizem os vídeos vinculados a uma tradução.
RF36 Excluir vídeo Permitir que os moderadores apaguem definitivamente um vídeo da base de dados.
RF37 Associar vídeo Permitir que administradores e moderadores vinculem vídeos cadastrados a uma tradução específica.
RF38 Desassociar vídeo Permitir que administradores e moderadores removam a vinculação entre um vídeo e uma tradução.
RF39 Cadastrar áudio Permitir o cadastro de arquivos de áudio, pelos administradores e moderadores, no sistema.
RF40 Reproduzir áudio Permitir que os usuários reproduzam os áudios vinculados às traduções.
RF41 Excluir áudio Permitir que os moderadores apaguem definitivamente um arquivo de áudio da base de dados.
RF42 Associar áudio Permitir que administradores e moderadores vinculem áudios cadastrados a uma tradução específica.
RF43 Desassociar áudio Permitir que administradores e moderadores removam a vinculação entre um áudio e uma tradução.

CP6 - Perfil de Usuário

ID Nome do requisito Descrição
RF44 Editar usuário Permitir que os usuários editem as informações pessoais de seus perfis.
RF45 Listar histórico de traduções Permitir que os usuários visualizem o histórico de traduções realizadas, com data e resultado.
RF46 Favoritar tradução Permitir que o usuário marque traduções específicas como favoritas.
RF47 Listar traduções favoritadas Permitir que o usuário visualize rapidamente a lista de suas traduções marcadas como favoritas.
RF48 Listar insígnias Permitir que os usuários visualizem as insígnias conquistadas em seus perfis.

CP7 - Sincronização e Acesso Offline de Traduções

ID Nome do requisito Descrição
RF49 Baixar traduções Permitir que os usuários façam o download das traduções textuais e auditivas para acesso offline.

7.2 Lista de Requisitos Não Funcionais (Especificação Suplementar)

Os requisitos não funcionais definem critérios de qualidade do sistema Nativo. A tabela a seguir apresenta os RNFs com sua categoria segundo a sigla URPS (Usabilidade, Confiabilidade, Desempenho, Segurança).

RNF01

  • Nome: Tempo de busca de tradução
  • Descrição: O sistema deve apresentar o resultado de uma tradução em até 2 segundos para 95% das requisições realizadas com conexão mínima de 5 Mbps.
  • Categoria URPS: Desempenho
Visualizar Evidências

Evidência de tempo de resposta da API

Resultado do Teste: A imagem acima demonstra um teste de requisição realizado pelo Postman na rota de busca de traduções (/api/discurso/buscar). Como é possível observar nos dados da resposta da requisição, o servidor processou e retornou a tradução em apenas 596 ms (milissegundos), o que atende com folga ao requisito estipulado de tempo máximo de 2 segundos.

RNF02

  • Nome: Navegação da tradução
  • Descrição: O usuário deve conseguir acessar a funcionalidade de tradução em no máximo 2 interações a partir da tela inicial.
  • Categoria URPS: Usabilidade
Visualizar Evidências

Tela Inicial
Tela Inicial

Interação 1
Interação 1: Inserção

Interação 2
Interação 2: Botão


Resultado do Teste: As capturas de tela demonstram o fluxo principal de uso a partir da tela inicial do aplicativo, que por padrão já carrega a aba de traduções. Para obter o resultado, o fluxo exige exatamente duas interações: (1) Um toque no campo de entrada de texto "Discurso" para acionar o teclado e inserir a palavra; (2) Um toque no botão "Traduzir". A terceira imagem comprova que a tradução e a mídia correspondente são exibidas logo após esse segundo clique, atendendo perfeitamente à métrica de usabilidade exigida.

RNF03

  • Nome: Navegação da rede social
  • Descrição: O usuário deve conseguir acessar publicações da comunidade em no máximo 3 cliques a partir da tela inicial.
  • Categoria URPS: Usabilidade
  • Fora do escopo

RNF04

  • Nome: Suporte simultâneo geral
  • Descrição: O sistema deve suportar no mínimo 100 usuários simultâneos nas funcionalidades assíncronas mantendo tempo médio de resposta de até 5 segundos.
  • Categoria URPS: Desempenho
Visualizar Evidências

Evidência de tempo de resposta da API

Resultado do Teste: A captura de tela acima apresenta um teste de estresse (load test) realizado utilizando a ferramenta Locust. O painel superior e os logs do terminal confirmam a simulação exata de 100 usuários simultâneos (Users: 100) realizando requisições na rota de busca (/api/discurso/buscar). Conforme indicado na coluna "Average (ms)", o tempo médio de resposta do servidor para sustentar essa carga foi de 2180.81 ms (aproximadamente 2,18 segundos), cumprindo com sucesso a exigência de manter a média inferior a 5 segundos.

RNF05

  • Nome: Tempo de carregamento
  • Descrição: Todas as telas do aplicativo devem carregar em até 4 segundos em dispositivos Android a partir da versão 10 .
  • Categoria URPS: Desempenho
Visualizar Evidências

Tela de Tradução Tela de Tradução

Tela de Atividades Tela de Atividades

Tela de Perfil Tela de Perfil

Resultado do Teste: As imagens acima apresentam o profiling de desempenho e renderização das telas principais do aplicativo (Tradução, Atividade e Perfil, respectivamente). Conforme destacado na aba "Commit information" (métrica Committed at no painel direito), os tempos totais de carregamento e montagem das telas foram de 2.7s, 3.3s e 1.8s. Todos os resultados demonstram o cumprimento do requisito, mantendo o carregamento inferior ao teto exigido de 4 segundos.

RNF06

  • Nome: Funcionamento offline
  • Descrição: O aplicativo deve permitir acesso às traduções previamente salvas mesmo sem conexão com a internet.
  • Categoria URPS: Confiabilidade
Visualizar Evidências

UC13

Evidências: as evidências estão comprovadas na entrega da Iteração 8

RNF07

  • Nome: Backup de dados
  • Descrição: O sistema deve realizar backup automático da base de dados ao menos uma vez a cada 7 dias.
  • Categoria URPS: Confiabilidade
Visualizar Evidências

Evidência de tempo de resposta da API Evidência de tempo de resposta da API

Resultado do Teste: As imagens exibem as configurações de BACKUP do banco de dados (Cloud Firestore) acessadas tanto pelo painel do Google Cloud quanto pelo console do Firebase. A seção "Backups programados" comprova que a rotina de backups semanais está ativada, configurada para ser executada automaticamente toda segunda-feira (com retenção de 14 dias).

RNF08

  • Nome: Compatibilidade Android
  • Descrição: O aplicativo deve ser compatível com dispositivos Android a partir da versão 10.0.
  • Categoria URPS: Confiabilidade
Visualizar Evidências

Evidência de tempo de resposta da API Evidência de tempo de resposta da API

Resultado do Teste: As capturas de tela acima evidenciam testes de execução realizados no Android Studio. A primeira imagem demonstra as configurações do emulador rodando sob a API 29, que corresponde à versão exata do Android 10. A segunda imagem comprova o aplicativo compilado, instalado e executando suas interfaces (tela de "Atividades") perfeitamente dentro desse mesmo ambiente, atestando a compatibilidade mínima exigida pelo requisito.

RNF09

  • Nome: Escalabilidade de mídia
  • Descrição: O sistema deve suportar upload de arquivos de mídia de até 30 MB.
  • Categoria URPS: Desempenho
Visualizar Evidências

Evidência de tempo de resposta da API

Resultado do Teste: A imagem acima exibe o painel de regras de segurança do Firebase Storage configurado para o ambiente do aplicativo. A condição inserida na linha 6 do código (allow read, write: if request.resource.size < 30 * 1024 * 1024;) parametriza o servidor para aceitar operações de gravação (upload) estritamente se o tamanho do arquivo for inferior a 30 MB (calculado em bytes).

7.3 Lista de Regras de Negócio

As regras de negócio consolidam restrições, condições e políticas do domínio que orientam a execução dos requisitos e dos casos de uso.

ID Regra de negócio
RN01 Apenas usuários com perfil de Professor criam atividades educacionais, as visualizam, editam e excluem.
RN02 A criação de atividade exige título e no mínimo uma questão estruturada com enunciado, no mínimo duas alternativas e exatamente uma alternativa correta vinculada às opções.
RN03 Atividades sem questões válidas são inativadas para listagem e resolução.
RN04 A alternativa correta é ocultada da interface.
RN05 O processamento da pontuação das atividades é realizado após a submissão de todas as questões obrigatórias.
RN06 O registro de entidades exige preenchimento de campos obrigatórios: nome, objetivo e imagem para insígnias; título, data futura, horário, local e descrição para eventos; e texto ou mídia para publicações.
RN07 As insígnias referentes à taxa de acertos de uma atividade possuem dependência direta, devendo ser excluídas caso a respectiva atividade seja removida do sistema.
RN08 A edição e exclusão de publicações no feed e de eventos são permitidas ao usuário autor do registro e ao moderador.
RN09 O sistema aplica o marcador textual Editado em publicações que sofreram alteração após o envio original.
RN10 A ordenação exibe publicações e históricos de tradução em ordem cronológica decrescente, e eventos comunitários em ordem cronológica crescente.
RN11 A alteração de nível de acesso entra em vigor imediatamente nas regras de sessão, e o banimento inativa as credenciais do usuário, o que é reversível.
RN12 O sistema bloqueia a autoexclusão ou o autobanimento de um Administrador caso não exista outro perfil de mesma permissão ativo na plataforma.
RN13 A recuperação de senha exibe mensagens genéricas para evitar enumeração de contas, exige intervalo de 3 minutos para reenvio e invalida códigos anteriores associados ao usuário.
RN14 A alteração de perfil restringe-se aos dados da própria conta e exige correspondência exata nos caracteres dos campos de nova senha e confirmação.
RN15 A denúncia exige a seleção de categoria existente, inicia com status Aberta, e sua alteração para Resolvida ou Improcedente é exclusiva de Administradores.
RN16 O sistema aborta o registro da denúncia se o conteúdo alvo for excluído da plataforma antes da confirmação da submissão.
RN17 Apenas Administradores gerenciam categorias de denúncia.
RN18 Apenas Administradores e Professores gerenciam mídias de vídeo e áudio.
RN19 O upload restringe vídeos a formatos MP4, MOV, AVI até 30MB, e áudios a formatos MP3, WAV, OGG até 10MB.
RN20 O cadastro de mídias exige vinculação a uma tradução existente; a desassociação remove apenas esse vínculo, mantendo o arquivo preservado no acervo.
RN21 O sistema bloqueia a inclusão duplicada na lista de favoritos e oculta traduções inativadas ou removidas da base de dados.
RN22 O pacote de sincronização offline omite as mídias audiovisuais e exige armazenamento livre no dispositivo.
RN23 A candidatura a Professor exige justificativa, é restrita a usuários sem este perfil e registrada com status Pendente, bloqueando novos envios do mesmo usuário simultaneamente.
RN24 A alteração de status da solicitação de candidatura para aprovação ou rejeição é de execução exclusiva dos Administradores.