Ir para o conteúdo

Especificação Suplementar

Introdução

A Especificação Suplementar é um documento em linguagem natural que detalha os requisitos de um sistema que não foram capturados nos casos de uso. Complementar à modelagem de casos de uso, este documento é essencial no processo de desenvolvimento de software, pois abrange requisitos não funcionais e outros aspectos críticos que não são facilmente definidos por meio de casos de uso (MINISTÉRIO DA CIÊNCIA, TECNOLOGIA, INOVAÇÕES E COMUNICAÇÕES, 2024). O objetivo principal desta especificação é assegurar que todos os requisitos sejam contemplados, fornecendo uma visão completa e detalhada que, juntamente com os casos de uso, define todos os requisitos do sistema. Este documento é vital para garantir a qualidade do software e a satisfação dos usuários.

Metodologia

Para a elaboração da Especificação Suplementar, foi adotado o modelo FURPS+, que engloba Funcionalidade, Usabilidade, Confiabilidade, Desempenho e Suportabilidade, além de outros aspectos adicionais (PRESSMAN, 2014). O documento foi estruturado de modo que cada seção corresponde a um componente do FURPS+, garantindo uma cobertura abrangente dos requisitos não funcionais e das restrições de design do sistema.

Funcionalidade

Os requisitos funcionais estão especificados em outros artefados como cenários e casos de uso.

Usabilidade

A usabilidade refere-se à facilidade com que os usuários podem interagir com um sistema ou aplicativo para realizar suas tarefas de forma eficaz, eficiente e satisfatória. Segundo Nielsen (1994), usabilidade é uma medida da qualidade da experiência do usuário ao interagir com a interface, e ele propõe 10 heurísticas que, quando aplicadas, melhoram significativamente a usabilidade de um sistema (NIELSEN, 1994). A usabilidade é fundamental para garantir que clientes, entregadores e lojas possam utilizar o aplicativo de maneira intuitiva e agradável.

Requisitos de Usabilidade

A tabela a seguir apresenta os requisitos de usabilidade identificados para o aplicativo, baseados nos requisitos elicitados:

ID Descrição
US01 O aplicativo deve possuir uma interface intuitiva e fácil de navegar, permitindo que os usuários acessem as principais funcionalidades com poucos toques.
US02 O design da interface deve seguir as diretrizes de design do Android e iOS para garantir consistência e familiaridade com os padrões das plataformas (R44).
US03 A interface deve ser responsiva e se adaptar automaticamente a diferentes tamanhos e orientações de tela, mantendo a usabilidade em dispositivos variados (R46).
US04 O aplicativo deve estar em conformidade com as diretrizes de acessibilidade WCAG 2.1, facilitando o uso por pessoas com deficiências visuais, auditivas ou motoras (R45).
US05 O sistema deve fornecer feedback imediato ao usuário após cada ação, como confirmações de pedidos, atualizações de status e notificações relevantes.
US06 O aplicativo deve permitir que os usuários personalizem configurações básicas, como preferências de notificações
US07 Ícones, botões e rótulos devem ser claros e representativos das ações que executam, seguindo princípios de design centrado no usuário.
US08 Mensagens de erro devem ser claras, indicando o problema ocorrido e sugerindo ações para corrigi-lo, minimizando a frustração do usuário.
US09 O sistema deve permitir a busca rápida e eficiente de produtos e lojas, com suporte a filtros e sugestões automáticas (R09, R10).
US10 O aplicativo deve oferecer suporte via chat para auxiliar os usuários em caso de dúvidas ou problemas, melhorando a experiência geral (R36).
US11 O processo de cadastro e login deve ser simples e direto, com orientações claras em cada etapa para facilitar o acesso dos usuários ao sistema (R01, R04).
US12 As ações críticas, como finalização de compra ou exclusão de dados, devem solicitar confirmação do usuário para evitar erros irreversíveis.
US13 O histórico de pedidos deve ser facilmente acessível e apresentar informações claras, permitindo que os usuários repitam pedidos anteriores com facilidade (R20, R21).
US14 O acompanhamento de entregas deve ser apresentado de forma visual e intuitiva, como em um mapa atualizado em tempo real (R15, R39).
US15 O aplicativo deve utilizar uma linguagem clara e concisa, evitando jargões técnicos e facilitando a compreensão por parte de todos os usuários.

Autores: Kauan Eiras

Confiabilidade

A confiabilidade refere-se à capacidade do sistema de operar de forma consistente e segura, protegendo os dados dos usuários e garantindo disponibilidade e integridade nas operações. Inclui aspectos como segurança, disponibilidade, recuperação de falhas e conformidade legal. De acordo com Pressman (2014), a confiabilidade é essencial para assegurar a satisfação do usuário e a credibilidade do sistema.

A confiabilidade é crucial para que clientes, lojas e entregadores possam utilizar o aplicativo com confiança, sabendo que suas informações estão protegidas e que o serviço estará disponível sempre que necessário.

Requisitos de Confiabilidade

A tabela abaixo apresenta os requisitos de confiabilidade identificados para o aplicativo, baseados nos requisitos elicitados:

ID Descrição
CR01 O sistema deve proteger os dados bancários dos usuários utilizando criptografia e seguindo padrões de segurança da indústria de pagamentos (R37).
CR02 Os dados pessoais dos usuários devem ser armazenados de forma segura, prevenindo acesso não autorizado ou vazamento de informações (R38).
CR03 A implementação do sistema deve estar em conformidade com a Lei Geral de Proteção de Dados (LGPD), assegurando a privacidade e os direitos dos usuários (R40).
CR04 O aplicativo deve manter uma disponibilidade mínima de 99% do tempo, garantindo que os usuários possam acessar os serviços a qualquer momento (R42).
CR05 O sistema deve realizar backups regulares dos dados críticos para permitir a recuperação em caso de falhas ou perda de informações.
CR06 Deve haver mecanismos de autenticação seguros para proteger as contas dos usuários.
CR07 O sistema deve ser capaz de recuperar-se de falhas inesperadas sem perda de dados ou corrupção de informações.
CR08 As transações financeiras devem ser processadas com garantia de integridade e confiabilidade, evitando transações duplicadas ou inconsistentes (R43).
CR09 O aplicativo deve ser testado e protegido contra ameaças e vulnerabilidades comuns, como injeção de código, cross-site scripting (XSS) e ataques de força bruta.
CR10 Mensagens de erro devem ser informativas, mas não revelar detalhes que possam comprometer a segurança do sistema.
CR11 O aplicativo deve implementar controles de acesso adequados, garantindo que apenas usuários autorizados possam realizar determinadas ações ou acessar certas informações.
CR12 Em caso de manutenção ou indisponibilidade programada, o sistema deve notificar os usuários com antecedência para minimizar impactos.
CR13 O sistema deve validar todas as entradas de dados dos usuários para prevenir a inserção de informações maliciosas ou inválidas.

Autores: Kauan Eiras

Desempenho

O desempenho é um aspecto crítico para o aplicativo, que, em um contexto de delivery de alimentos, tem a rapidez e eficiência como essenciais para a satisfação do usuário, tendo em consideração que o desempenho está relacionado ao tempo de resposta, consumo de recursos e eficiência geral do sistema.

Requisitos de Desempenho

ID Descrição
PE01 O tempo de resposta para carregamento inicial do aplicativo não deve exceder 5 segundos em conexões 4G.
PE02 As transações de pagamento devem ser processadas em no máximo 10 segundos (R43).
PE03 A atualização da localização do entregador deve ocorrer a cada 20 segundos para garantir rastreamento preciso (R39).
PE04 O sistema deve suportar até 100.000 usuários simultâneos sem degradação significativa de performance.
PE05 A busca de restaurantes e produtos deve retornar resultados em no máximo 5 segundos.
PE06 O aplicativo deve consumir no máximo 100MB de armazenamento no dispositivo do usuário.
PE07 A sincronização de dados entre dispositivo e servidor deve ocorrer em intervalos não superiores a 30 segundos.

Autores: Kallyne Macedo Passos

Suportabilidade

A suportabilidade refere-se à capacidade do sistema de ser mantido, atualizado e adaptado a diferentes ambientes e necessidades. Inclui aspectos como manutenibilidade, compatibilidade e facilidade de suporte.

Requisitos de Suportabilidade

ID Descrição
SU01 O aplicativo deve ser compatível com Android 8.0 ou superior e iOS 13 ou superior (R44).
SU02 O sistema deve permitir atualizações automáticas sem interrupção do serviço.
SU03 A arquitetura deve ser modular para facilitar manutenção e atualizações.
SU04 O código-fonte deve seguir padrões de documentação estabelecidos para facilitar manutenção.
SU05 O sistema deve suportar internacionalização e localização para diferentes idiomas e regiões.
SU06 Deve haver suporte para backup e restauração de dados do usuário.
SU07 O sistema deve ter logs detalhados para facilitar o diagnóstico de problemas.
SU08 A aplicação deve ser testável em diferentes níveis (unitário, integração, sistema).

Autores: Kallyne Macedo Passos

Restrições de Design

As restrições de design estabelecem limitações e padrões que devem ser seguidos no desenvolvimento do sistema, garantindo consistência e qualidade.

Restrições

ID Descrição
RD01 O design deve seguir a identidade visual estabelecida, incluindo paleta de cores e tipografia definidas.
RD02 O desenvolvimento front-end deve utilizar frameworks modernos como React Native.
RD03 O banco de dados deve ser relacional para garantir integridade das transações.
RD04 A API deve seguir os princípios REST e usar JSON para comunicação.
RD05 O código deve seguir princípios SOLID e padrões de design estabelecidos.
RD06 A interface deve ser responsiva e seguir o conceito de Mobile First (R46).

Autores: Kallyne Macedo Passos

Requisitos de Implementação

Os requisitos de implementação tratam dos aspectos técnicos e tecnológicos necessários para o desenvolvimento e operação do sistema. Eles definem tecnologias, ferramentas e práticas que devem ser utilizadas durante o projeto.

Implementação

ID Descrição
IM01 A aplicação deve ser desenvolvida utilizando React Native para compatibilidade entre plataformas Android e iOS.
IM02 O backend deve ser implementado em Python, utilizando Django como framwork para maior consistência e manutenção.
IM03 O banco de dados utilizado deve ser PostgreSQL, devido à sua robustez e suporte a transações complexas.
IM04 A aplicação deve ser desenvolvida utilizando React Native e Expo para compatibilidade entre plataformas Android e iOS.
IM05 A integração contínua (CI) deve ser configurada utilizando ferramentas como GitHub Actions, garantindo testes automáticos a cada commit.
IM06 A infraestrutura de nuvem deve utilizar AWS, incluindo serviços como S3 para armazenamento, RDS para banco de dados e CloudFront para entrega rápida..
IM07 O sistema deve integrar APIs de terceiros para serviços de pagamento (ex: Stripe ou PayPal) e mapas (ex: Google Maps ou Mapbox).
IM08 O código deve ser versionado utilizando Git, com o repositório hospedado no GitHub.

Autores: Felipe Amorim de Araújo

Requisitos de Interface

Interface

ID Descrição
IN01 A interface do aplicativo deve ser projetada para suportar idiomas em inglês e português, com capacidade de expansão para outras línguas futuramente.
IN02 O sistema deve ter integração com serviços de localização e rastreamento em tempo real, exibindo mapas e rotas diretamente na interface do usuário.
IN03 Os relatórios e dados exportáveis do sistema devem estar disponíveis em formatos padrão, como PDF e CSV, para compatibilidade com outras ferramentas.
IN04 Deve haver integração com APIs RESTful para comunicação entre cliente e servidor, utilizando JSON como formato de troca de dados.
IN05 O sistema deve exibir mensagens de erro amigáveis ao usuário, evitando termos técnicos ou informações irrelevantes.
IN06 O layout deve ser responsivo, garantindo funcionalidade em dispositivos móveis e tablets com diferentes tamanhos de tela.
IN07 A interface deve ser projetada com base no sistema de design Material Design para Android e Human Interface Guidelines para iOS.

Autores: Felipe Amorim de Araújo

Requisitos Físicos

Físicos

ID Descrição
FS01 O aplicativo deve ser compatível com dispositivos móveis Android (versão 8.0 ou superior) e iOS (versão 13 ou superior).
FS02 O servidor backend deve ser hospedado em instâncias com no mínimo 4 vCPUs, 16 GB de RAM e 500 GB de armazenamento SSD.
FS03 O sistema deve suportar alta disponibilidade, utilizando balanceadores de carga para distribuição de tráfego.
FS04 O servidor deve ter conectividade de rede de alta velocidade, com largura de banda mínima de 1 Gbps.
FS05 Para testes, devem ser disponibilizados dispositivos com diferentes versões de sistemas operacionais e tamanhos de tela.
FS06 O sistema deve ser hospedado em um provedor de nuvem confiável, como AWS, Azure ou Google Cloud.
FS07 Dispositivos móveis devem possuir pelo menos 1 GB de RAM e Android 8.0 ou iOS 13 para executar o aplicativo.
FS08 A infraestrutura deve incluir firewalls e sistemas de prevenção contra intrusões para proteger os servidores.

Autores: Felipe Amorim de Araújo

Referências

  1. MINISTÉRIO DA CIÊNCIA, TECNOLOGIA, INOVAÇÕES E COMUNICAÇÕES. Especificação de Caso de Uso. Disponível em: https://pdp.mctic.gov.br/MCTI-PDP/guidances/examples/Especificacao%20Caso%20Uso_81686821.html?nodeId=afc37190. Acesso em: 18 de novembro de 2024.

  2. PRESSMAN, Roger S. Engenharia de Software: uma abordagem profissional. 7ª ed. New York: McGraw-Hill, 2014.

  3. NIELSEN, Jakob. 10 Usability Heuristics for User Interface Design. Nielsen Norman Group, 1994. Disponível em: https://www.nngroup.com/articles/ten-usability-heuristics/. Acesso em: 18 de novembro de 2024.

  4. ISO. ISO 25010:2011 – Systems and software engineering – Systems and software Quality Requirements and Evaluation (SQuaRE) – System and software quality models. International Organization for Standardization, 2011.

  5. WCAG. Web Content Accessibility Guidelines (WCAG) 2.1. World Wide Web Consortium (W3C), 2018. Disponível em: https://www.w3.org/TR/WCAG21/. Acesso em: 28 nov. 2024.

Histórico de Versões

Versão Data da alteração Comentário Autor(es) Revisor(es) Data de revisão
1.0 18/11/2024 Criação do documento Kauan Eiras Júlio Roberto da Silva Neto 28/11/2024
1.1 18/11/2024 Adição da Usabilidade e Confiabilidade Kauan Eiras Júlio Roberto da Silva Neto 28/11/2024
1.2 27/11/2024 Adição do Desempenho, Suportabilidade e Restrições de Design Kallyne Macedo Passos Júlio Roberto da Silva Neto 28/11/2024
1.3 28/11/2024 Adição das tabelas de requisitos de implementação, interface e físicos Felipe Amorim de Araújo Júlio Roberto da Silva Neto 28/11/2024