TG3 ‐ Levantamento e especificação de requisitos - luisfelipesdn12/3-sem-desenvolvimento-de-sistemas GitHub Wiki

Especificação Suplementar

Histórico de Revisões

Versão Data

TG3

Autor

Minuta da concepção 19/09/2024 Levantamento e especificação de Requisitos Graziely Severo
Marcos Minhano
Luis Felipe Nascimento
Matheus Fernandes

Introdução

Este documento descreve os Requisitos Funcionais, Requisitos Não Funcionais e Regras de Negócio para um sistema de pedidos de uma empresa de espetinhos.

O sistema permite que os clientes realizem pedidos, acompanhem o status, visualizem o cardápio, efetuem pagamentos e cancelem pedidos.

Do lado do vendedor, o sistema oferece funcionalidades para cadastrar produtos, visualizar e gerenciar pedidos, gerar relatórios de vendas e configurar opções do sistema, garantindo uma operação eficiente, segura e fácil de usar para todos os usuários envolvidos.

Segurança

  • Toda utilização requer autenticação do usuário;

  • As informações dos clientes e as transações financeiras devem ser protegidas de forma adequada;

  • Pagamentos Online: Uma preocupação central é a segurança dos dados financeiros, tanto do cliente quanto da empresa. O aplicativo deve garantir criptografia nas transações e no armazenamento de dados, evitando fraudes e vazamento de informações sensíveis;

  • Autenticação Simples: Como o funcionário precisa acessar o sistema rapidamente, o método de autenticação deve ser seguro, mas também rápido. A utilização de autenticação de dois fatores pode melhorar a segurança sem comprometer a usabilidade, mas deve ser feita de maneira eficiente para não sobrecarregar o funcionário;

  • Proteção Contra Invasões: Um sistema vulnerável pode ser alvo de ataques, como DDoS ou acesso não autorizado. Caso o aplicativo seja comprometido, o negócio inteiro fica exposto, pois o funcionário depende exclusivamente do app para receber pedidos e processar pagamentos.

Usabilidade

Fatores Humanos

  • O sistema deve ser intuitivo e fácil de usar tanto para os clientes quanto para o vendedor;

  • O texto deve ser facilmente visível a uma distância de um metro;

  • Interface Intuitiva: O aplicativo precisa ser fácil de usar, principalmente porque o único funcionário está multitarefas. A interface deve ser limpa, simples e eficiente, com botões vivos, notificações visíveis e a mínima necessidade de navegação entre telas. O funcionário precisa acessar rapidamente os pedidos e processar os pagamentos sem perder tempo tentando entender o funcionamento do app;

  • Acessibilidade: Se o funcionário precisar usar o aplicativo enquanto prepara os espetinhos, a usabilidade móvel deve ser eficaz. Um design responsivo, que funcione bem em modelos diferentes de celulares;

  • Facilidade de Treinamento: Como há apenas um funcionário, o tempo para aprender a usar o aplicativo deve ser mínimo. O sistema precisa ser intuitivo o suficiente para que qualquer pessoa possa entender rapidamente sem a necessidade de longos treinamentos ou manuais complexos.

Velocidade, facilidade e processamento isento de erros são de importância primordial no processamento de vendas, pois o comprador deseja ir embora rapidamente, senão ele perceberá, de forma menos positiva a experiência de compra (bem como quem está vendendo).

Confiabilidade

Facilidade de recuperação

Se ocorrer uma falha no uso de um serviço externo (autorização de pagamentos, sistema de contabilidade, etc.) tente resolver o problema com uma solução local (por exemplo, armazenar e seguir em frente), de modo a poder completar uma venda. Aqui, é necessário muito mais análise. O sistema deve ser estável e disponível para uso quando necessário.

• Erros e Quedas do Sistema: Se o aplicativo apresentar falhas, como travamentos ou queda de sistema. A confiabilidade do aplicativo é crucial para o fluxo contínuo das operações. Pequenos bugs, como a falha na sincronização de pedidos ou na confirmação de pagamento, podem prejudicar a empresa e frustrar os clientes;

• Atualizações: O aplicativo precisa ser mantido atualizado com regularidade para corrigir falhas, melhorar a eficiência e garantir que novas funcionalidades de segurança sejam incorporadas. O único funcionário pode não ter o conhecimento ou o tempo para lidar com atualizações manuais, o que torna a necessidade de automação ainda mais importante.

Desempenho

Conforme mencionado em fatores humanos, os compradores querem completar o processamento de uma venda muito rapidamente. Um gargalo em potencial é a autorização externa de pagamento. O objetivo é ter um sistema deve ser rápido e responsivo, garantindo uma boa experiência do usuário.

• Cargas de Trabalho e Fadiga: O único funcionário faz múltiplas tarefas ao mesmo tempo (cozinhar, administrar o caixa, lidar com pedidos), o que pode causar sobrecarga mental e física, impactando diretamente no desempenho. Ele pode acabar cometendo erros, seja no preparo dos pedidos ou na operação do aplicativo;

• Tempo de Resposta: O desempenho do aplicativo deve ser ágil para não aumentar a carga de trabalho do funcionário. Um sistema lento, por exemplo, pode gerar atrasos na confirmação dos pedidos e no pagamento, sobrecarregando o processo e tornando a operação mais estressante;

• Gestão de Pedidos em Horários de Pico: Se o aplicativo não facilitar a organização dos pedidos (por exemplo, destacando prioridades ou agrupando solicitações por ordem de chegada), o funcionário pode ter dificuldade em gerenciar os pedidos de forma eficiente. Durante períodos de pico, a performance tende a cair.

Requisitos Funcionais

• Logar no Sistema: O usuário deve inserir suas credenciais (login e senha). O sistema deve validar as credenciais e, se corretas, permitir o acesso ao ambiente;

• Realizar Pedido: O cliente deve poder selecionar os produtos do cardápio. O cliente deve finalizar o pedido informando a quantidade e confirmando o total;

• Visualizar Cardápio: O cliente deve poder visualizar a lista de produtos disponíveis no cardápio com seus respectivos preços;

• Realizar Pagamento: O sistema deve permitir que o cliente escolha entre os métodos de pagamento disponíveis e utilize um gateway de pagamento integrado para finalizar a transação;

• Acompanhar Status do Pedido: O cliente deve poder verificar o status atualizado do seu pedido, com etapas como "Em preparação", "Pronto para retirada" ou "Entregue";

• Cadastrar Produtos: O vendedor deve poder adicionar novos produtos ao cardápio, incluindo nome, descrição, preço, foto e categoria;

• Visualizar Pedidos: O vendedor deve ter acesso a uma lista de todos os pedidos realizados, podendo filtrá-los por status ou data;

• Alterar Status do Pedido: O vendedor deve poder alterar o status do pedido conforme ele progride (por exemplo, de "Em preparação" para "Pronto para retirada");

• Gerar Relatórios de Vendas: O sistema deve permitir ao vendedor gerar relatórios detalhados sobre as vendas, filtrando por períodos, tipos de produto e totais;

• Configurar Sistema: O vendedor deve poder configurar o sistema ajustando os preços dos produtos, definindo formas de pagamento aceitas e outras opções operacionais.

Requisitos Não Funcionais

• Desempenho: O sistema deve processar e atualizar pedidos em tempo real, com resposta às ações do usuário em poucos segundos;

• Segurança: O sistema deve garantir a segurança dos dados do usuário e das transações por meio de criptografia SSL e autenticação segura;

• Escalabilidade: O sistema deve ser capaz de suportar um aumento de 100% no número de usuários durante horários de pico;

• Compatibilidade: O sistema deve ser compatível com as versões mais recentes de navegadores populares e plataformas móveis (Android e iOS);

• Usabilidade: A interface deve ser intuitiva, com fácil navegação para ambos os perfis de usuários (cliente e vendedor).

Regras de Negócio

• Política de Cancelamento: O cliente pode cancelar o pedido somente antes que ele mude para o status "Em preparação". Após essa mudança, o pedido não poderá mais ser cancelado;

• Métodos de Pagamento Aceitos: Somente os métodos de pagamento configurados pelo vendedor devem estar disponíveis para o cliente no momento da finalização do pedido;

• Preço Dinâmico: O vendedor pode alterar os preços a qualquer momento, mas mudanças de preço só serão aplicadas a novos pedidos.

⚠️ **GitHub.com Fallback** ⚠️