Pular para conteúdo

Especificação suplementar

Introdução

A Especificação Suplementar, no contexto da engenharia de software, refere-se à prática de classificar e organizar os requisitos de um sistema em diferentes grupos ou categorias. Essa abordagem facilita a compreensão, o gerenciamento e a priorização dos requisitos durante o ciclo de desenvolvimento do software.

"Este documento captura os requisitos de sistema que não foram identificados imediatamente nos Casos de Uso do Modelo de Casos de Uso. Entre estes requisitos estão incluídos: o Requisitos legais e reguladores, incluindo padrões de aplicativo; Atributos de qualidade do sistema a ser criado, incluindo requisitos de usabilidade, confiabilidade, desempenho e suportabilidade. Outros requisitos, como sistemas operacionais e ambientes, requisitos de compatibilidade e restrições de design" [1]. Esses requisitos são cruciais para garantir a qualidade do software e a satisfação do usuário [2].

Metodologia

A Metodologia utilizada neste artefato foi baseada no modelo FURPS+. "É um sistema para a classificação de requisitos, o acrônimo representa categorias que podem ser usadas na definição de requisitos" [3]. Dentre elas: Funcionalidade, Usabilidade, Confiabilidade, Desempenho, Suportabilidade, sendo que o "+" engloba outros requisitos não-funcionais: requisitos de design, requisitos de implementação, requisitos de interface, requisitos físicos [3].

Este artefato foi desenvolvido de maneira assíncrona por cada membro do grupo. Após a conclusão, o material foi enviado ao Vitor Feijó e à Amanda Campos, que ficaram responsáveis pela criação e publicação da página no GitHub Pages.

A Legenda para identificação dos requisitos em cada acrônimo estão representadas na tabela 1 e na tabela 2.

Tabela 1 - Legenda das tabelas FURPS

Acrônimo Significado Tradução Identificador
F Functionality Funcionalidade -
U Usability Usabilidade RU
R Reliability Confiabilidade RR
P Performance Desempenho RP
S Supportability Suportabilidade RS

Autor: Vitor Feijó, 2024

Tabela 2 - Legenda das tabelas +

Acrônimo Significado Tradução Identificador
+D Plus: Design constrains Requisitos de Design +D
+Im Plus: Implementation constrains Requisitos de Implementação +Im
+In Plus: Iterface constrains Requisitos de interface +In
+P Plus: Physical constrains Requisitos físicos +P

Autor: Vitor Feijó, 2024

Funcionalidade

A funcionalidade trata do núcleo do sistema, abordando as funções e capacidades que o software precisa oferecer. Os requisitos de funcionalidade especificam o que o sistema deve fazer, englobando tarefas, operações, recursos e comportamentos esperados.

Os requisitos funcionais foram capturados ateriormente com as técnicas de Brainstorming, Introspeção, Entrevista, Questionário, Storytelling, e podem ser consultados em Requisitos Elicitados. Os casos de uso também podem ser considerados como requisitos funcionais.

Usabilidade

A usabilidade se refere a quão eficiente e agradável é para uma pessoa usar um produto ou sistema. Ela envolve aspectos como a simplicidade do uso, a clareza e a organização da interface, a facilidade de acesso para todos os tipos de usuários, e qualquer outro fator que possa melhorar ou prejudicar a interação do usuário com o produto.

Esta seção inclui todos os requisitos que afetam a usabilidade. Os requisitos não funcionais para usabilidade estão representados na tabela 3.

Tabela 3 - Requisitos de usabilidade

ID Descrição do requisito
RU001 O aplicativo deve ser fácil e intuitivo, permitindo que um usuário realize sua demanda em menos de 5 minutos.
RU002 O aplicativo deve avisar o usuário, ao clicar em um botão ou link, que será redirecionado para um ambiente externo ao Meu INSS
RU003 Toda imagem significativa no aplicativo deve ter um texto alternativo
RU004 Toda e qualquer mídia no aplicativo não poderá ter autoplay e, se utilizada, deve fornecer transcrição
RU005 O aplicativo deve ter um fluxo lógico e contínuo
RU006 Os rótulos de botões e funcionalidades devem ser objetivos
RU007 O aplicativo deve oferecer o modo contraste
RU008 As fontes devem ter tamanho variavel e não fixo
RU009 O contraste entre objetos gráficos / Componentes da Interface do usuário e cord de fundo devem passar crtério de sucesso WCAG AA
RU010 O contraste entre textos normais e cor de fundo devem passar crtério de sucesso WCAG AAA
RU011 O contraste de textos grandes e cor de fundo devem passar crtério de sucesso WCAG AAA
RU012 A hierarquia de conteúdo das telas do aplicativo devem ser definidas por sua lógica e não pelo tamanho do texto
RU013 Ao se utilizar modais, devem ser fáceis de fechar e evitar utilizar em tela cheia
RU014 O aplicativo deve permitir ser rotacionado para qualquer orientação do dispositivo móvel
RU015 O aplicativo não pode ter rolagem horizontal
RU016 O aplicativo deve garantir espaço suficiente entre elementos interativos
RU017 O aplicativo incluir um campo de busca
RU018 O aplicativo exibir mensagens de erro e sucesso visualmente e ter possibilidade de accessibilidade de sonoridade para PcD cega
RU019 O aplicativo ter áreas clicáveis com no mínimo 44px (pixels) de altura e 44px de largura

Autor: Vitor Feijó, 2024

Confiabilidade

A confiabilidade refere-se à habilidade do sistema de operar continuamente e sem problemas, reduzindo ao máximo as falhas. Isso envolve a capacidade de lidar com falhas, a forma como os erros são gerenciados e a disponibilidade constante do sistema. "Refere-se a integridade, conformidade e interoperabilidade do software" [3].

Esta seção inclui todos os requisitos que afetam a confiabilidade.. Os requisitos de confiabilidade estão representados na tabela 4.

Tabela 4 - Requisitos de confiabilidade

ID Descrição do requisito
RR001 Para Tempo Médio para Reparo (MTTR), o aplicativo não poderá ficar mais de 24 horas sem funcionar após uma falha
RR002 O aplicativo deve ser capaz de lidar com um aumento de 500% na carga de usuários simultâneos sem comprometer a sua estabilidade ou desempenho.
RR003 O aplicativo deve ser capaz de suportar 30 milhões de acessos em um único mês
RR004 Os dados do usuário e as informações críticas do aplicativo devem ser armazenados de forma segura e protegidos contra perda de dados
RR005 Para o Tempo Médio entre Falhas (MTBF), espera-se 520 horas
RR006 O aplicativo deve ter um mecanismo de monitoramento contínuo que alerta a equipe de suporte técnico sobre quaisquer problemas críticos em tempo real. A equipe de suporte deve estar disponível 24/7 para resolver esses problemas.
RR007 As atualizações de software e manutenções planejadas devem ser agendadas fora do horário de pico de uso do aplicativo e os usuários devem ser notificados com antecedência.
RR008 Em caso de interrupções não planejadas que afetem o funcionamento do aplicativo, os usuários devem ser informados de maneira clara e precisa sobre o problema, o progresso da solução e o tempo estimado de restauração do serviço

Autor: Amanda Campos, 2024

Desempenho

O desempenho diz respeito à rapidez e eficiência com que o sistema opera. Os requisitos de desempenho incluem fatores como a velocidade de resposta, a capacidade de processamento de dados e a habilidade do sistema de crescer e se adaptar a maiores demandas.

Esta seção inclui todos os requisitos que afetam o desempenho. Os requisitos de desempenho estão representados na tabela 5.

Tabela 5 - Requisitos de desempenho

ID Descrição do requisito
RP001 O tempo médio de resposta para uma transação deve ser de 200 milissegundos durante o horário de pico.
RP002 O tempo máximo de resposta para uma transação não deve exceder 5 segundos em qualquer circunstância.
RP003 O aplicativo deve ser capaz de processar pelo menos 1000 transações por segundo durante o horário de pico.
RP004 O aplicativo deve ser capaz de processar pelo menos 29,4 milhões de transações por mês (com base nos dados de fevereiro de 2022)
RP005 Em caso de falha no aplicativo, o aplicativo deve entrar em um modo de operação degradado que permita pelo menos 70% da capacidade normal
RP006 O aplicativo deve ser capaz de se recuperar de um modo degradado para a operação normal em não mais que 15 minutos
RP007 O aplicativo deve utilizar não mais que 60% da memória disponível sob carga normal
RP008 O aplicativo deve utilizar não mais que 50% do espaço em disco disponível
RP009 O aplicativo deve utilizar não mais que 70% da largura de banda disponível sob carga normal

Autor: Gabriel Souza, 2024

Suportabilidade

A suportabilidade refere-se à facilidade de manter e suportar o sistema ao longo do tempo. Isso envolve requisitos como a frequência e facilidade de atualizações, a manutenção contínua, a disponibilidade de documentação completa e a necessidade de treinamento para os usuários e administradores.

Esta seção inclui todos os requisitos que afetam a suportabilidade. Os requisitos de suportabilidade estão representados na tabela 6.

Tabela 6 - Requisitos de suportabilidade

ID Descrição do requisito
RS001 O aplicativo deve ser compatível e otimizado para smartphones e tablets fabricados por Samsung, Apple, Motorola, Xiaomi, entre outros principais fabricantes.
RS002 O aplicativo é projetado de forma modular, facilitando a manutenção e atualizações. As atualizações de segurança são lançadas a cada trimestre, enquanto as atualizações de recursos são lançadas semestralmente.
RS003 O aplicativo deve suportar as versões mais recentes e as duas versões anteriores dos sistemas operacionais iOS (para dispositivos Apple) e Android (para dispositivos Samsung, Motorola, Xiaomi, etc.).
RS004 O aplicativo permite a personalização de configurações pelo usuário final, incluindo notificações, preferências de idioma e configurações de privacidade.
RS005 O aplicativo oferece um processo de instalação simples e direto através das lojas de aplicativos Google Play e Apple App Store.
RS006 O aplicativo é capaz de escalar para acomodar um aumento no número de usuários ou transações. Ele pode suportar até 30 milhões de usuários por mês
RS007 O aplicativo executa testes automatizados de integração e sistema, garantindo a qualidade e experiẽncia do usuário.

Autor: José Filipi, 2024

Outros requisitos do Produto (+)

A categoria "+", também conhecida como "Suplementar" ou "Qualidades do Sistema", abrange quaisquer requisitos que não se enquadrem nas categorias anteriores. Isso pode incluir exigências legais, éticas, regulatórias, ambientais ou outros requisitos específicos do projeto.

Requisitos de Design

"Requisitos de design (desenho) – Um requisito de design, freqüentemente chamado de uma restrição de design, especifica ou restringe o design de um sistema. Exemplos podem incluir: linguagens de programação, processo de software, uso de ferramentas de desenvolvimento, biblioteca de classes, etc" [3]. Os requisitos de design estão representados na tabela 8.

Tabela 8 - Requisitos de Design

ID Descrição do requisito
+D001 O aplicativo deve ser desenvolvido usando Java para o backend e Javascript para o frontend
+D002 O desenvolvimento deve seguir a metodologia Agile, com sprints de duas semanas e revisões de código regulares
+D003 O código deve ser desenvolvido e mantido usando Git para controle de versão, Jira para rastreamento de problemas e Jenkins para integração contínua
+D004 O aplicativo deve seguir uma arquitetura microserviços para permitir a escalabilidade e a manutenção independentes dos diferentes componentes do sistema
+D005 O sistema deve usar a biblioteca Spring Boot para o backend e a biblioteca React Navigation para a navegação no frontend.

Autor: Vitor Feijó, 2024

Requisitos de Implementação

"Requisitos de implementação – Um requisito de implementação especifica ou restringe o código ou a construção de um sistema. Como exemplos, podemos citar: padrões obrigatórios, linguagens de implementação, políticas de integridade de banco de dados, limites de recursos, ambientes operacionais" [3]. Os requisitos de implementação estão representados na tabela 9.

Tabela 9 - Requisitos de Implementação

ID Descrição do requisito
+Im001 O aplicativo deve estar em conformidade com a Lei Geral de Proteção de Dados (LGPD) do brasil, garantindo a privacidade e segurança dos dados dos usuários.
+Im002 O aplicativo deve suportar protocolos de comunicação padrão, como HTTP/HTTPS para comunicação web.
+Im003 O aplicativo deve seguir as melhores práticas de segurança, incluindo a criptografia de dados em trânsito.
+Im004 O aplicativo deve garantir a integridade dos dados do usuário. Isso inclui a implementação de políticas e recuperação de dados, bem como medidas para previnir a corrupção de dados
+Im005 O aplicativo deve ser otimizado para uso eficiente de recursos, garantindo que funcione de maneira eficaz mesmo em dispositivos com recursos limitados.

Autor: Bianca Castro, 2024

Requisitos de interface

"Requisitos de interface – especifica ou restringe as funcionalidades inerentes a interface do sistema com usuário" [3]. Os requisitos de interface estão representados na tabela 11.

Tabela 11 - Requisitos de Interface

ID Descrição do requisito
+In001 A interface do usuário deve ser intuitiva e fácil de usar, mesmo para usuários com pouca experiência em tecnologia.
+In002 O aplicativo deve ser acessível para todos os usuários, incluindo aqueles com deficiências visuais, auditivas ou motoras. Isso pode incluir recursos como leitores de tela, ampliação de texto e contraste de cores ajustável.
+In003 A navegação deve ser clara e consistente em todo o aplicativo, com menus e botões facilmente identificáveis.
+In004 A interface do usuário deve permitir atualizações fáceis e fornecer acesso a suporte ao usuário, como FAQs e tutoriais em vídeo.

Autor: Paulo Borba, 2024

Requisitos Físicos

"Requisitos físicos – especifica uma limitação física pelo hardware utilizado, por exemplo: material, forma, tamanho ou peso. Podendo representar requisitos de hardware, como as configurações físicas de rede obrigatórias" [3]. Os requisitos físicos estão representados na tabela 12.

Tabela 12 - Requisitos de Físicos

ID Descrição do requisito
+P001 O aplicativo deve funcionar em redes 3G, 4G e 5G, bem como em conexões Wi-Fi. Deve ser otimizado para uso eficiente de dados.
+P002 O aplicativo deve ser otimizado para uso mínimo de armazenamento no dispositivo. Isso é especialmente importante para usuários com dispositivos que têm capacidades de armazenamento limitadas.
+P003 O aplicativo deve ser otimizado para consumo mínimo de energia para não esgotar rapidamente a bateria do dispositivo do usuário.

Autor: Johnny Lopes, 2024

Referências Bibliográficas

1. Gois, Samily; Sobrinho, Francisco. PHP SOFTWARE COMPANY - Projeto de Software Floricultura Beija-Flor, Especificação Suplementar. Disponível em: https://aprender3.unb.br/pluginfile.php/2845019/mod_resource/content/1/Especificacao_Suplementar_Exemplo.pdf. Acesso em: 10 abr. 2024.

2. Requisitos de Software. Economia-DF (2023.2). Disponível em: https://requisitos-de-software.github.io/2023.2-Economia-DF/modelagem/especificacao-suplementar/#metodologia. Acesso em: 10 Mai. 2024.

3. Eeles, Peter. QualidadeBR: FURPS+. jun, 2008. Disponível em: https://qualidadebr.wordpress.com/2008/07/10/furps/. Acesso em: 10 Mai. 2024.

Bibliografia

SERRANO, et al. Requisitos - Aula 13.. Disponível em: https://aprender3.unb.br/pluginfile.php/2845007/mod_resource/content/1/Requisitos%20-%20Aula%20013a.pdf. Acesso em: 10 Mai. 2024.

Feijó, Vitor, et al. VerificAAA - Projeto do Curso de Interação Humano-Computador. 2024. Disponível em: https://vitorfleonardo.github.io/VerificaAAA/. Acesso em: 10 Mai. 2024.

Gov.br - Instituto Nacional do Seguro Social - INSS. Meu INSS registra 29,4 milhões de acessos em fevereiro de 2022. 2022. Disponível em: https://www.gov.br/inss/pt-br/assuntos/meu-inss-registra-29-4-milhoes-acessos-em-fevereiro-de-2022. Acesso em: 10 Mai. 2024.

Histórico de Versão

Versão Data Descrição Autor(es) Data de revisão Revisor(es)
1.0 10/05/2024 Versão inicial da pagina de Especificação Suplementar. Vitor Feijó 19/05/2024 Paulo Borba
1.1 13/05/2024 Preenchimento de toda Especificação Suplementar. Vitor Feijó & Amanda Campos 19/05/2024 Paulo Borba
1.2 19/05/2024 Ajustes na página Johnny Lopes 19/05/2024 Paulo Borba