NFR Framework
Introdução
O Framework de Requisitos Não Funcionais (NFR) é um método estruturado para lidar com requisitos não funcionais no desenvolvimento de software. Foi criado com o objetivo de auxiliar engenheiros e analistas de sistemas na identificação, representação, análise e monitoramento da satisfação de requisitos não funcionais (como desempenho, segurança, confiabilidade, manutenibilidade, entre outros) ao longo da vida útil do software.
Neste documento, o Threads, um aplicativo selecionado para estudo, será utilizado como base para análise e aplicação do framework.
Metodologia
Para que este documento pudesse ser produzido, foram utilizados os requisitos não funcionais presentes no projeto e elicitados no artefato de requisitos, que trata dos requisitos identificados em relação ao aplicativo Threads.
O framework leva em consideração o conceito de softgoal, que se refere a um objeto desprovido de definição clara e critérios de satisfação sólidos. Esses softgoals são utilizados para representar requisitos não funcionais e podem estar conectados entre si, refletindo as influências que exercem no sistema.
Tipos de Softgoals
Os softgoals desempenham um papel essencial na modelagem e no atendimento dos requisitos não funcionais (NFR). Eles são classificados em diferentes tipos conforme apresentado na Tabela 1, que detalha suas características e finalidades. A Figura 1 ilustra visualmente esses tipos, permitindo uma melhor compreensão de suas representações e relações no contexto do desenvolvimento do sistema.
Tabela 1 - Tipos de Softgoals
Tipo de Softgoal | Descrição |
---|---|
Softgoals NFR | Representam os requisitos não funcionais e podem ser organizados hierarquicamente no desenvolvimento do projeto. |
Softgoals de Operacionalização | Representam as soluções de implementação para atender aos softgoals NFR ou outros softgoals de operacionalização. Incluem operações, processos, estruturas de dados e restrições no sistema para cumprir as necessidades indicadas. |
Softgoals de Afirmação (CLAIM) | Consideram as características do domínio, como prioridades e carga de trabalho, no processo de tomada de decisão. Servem como justificativa para apoiar ou negar a priorização e seleção de componentes, facilitando a revisão, justificativa, melhoria do sistema e rastreamento das decisões de desenvolvimento. |
Figura 1: Tipos de Softgoals

Autor: Silva, Reinaldo Antônio.
Avaliação de Softgoals
A avaliação de softgoals envolve a análise do nível de satisfação dos requisitos não funcionais, considerando um conjunto de decisões baseadas nas interações entre os requisitos e suas implicações. Esse processo permite identificar como os softgoals contribuem para a realização dos objetivos do sistema, bem como compreender possíveis conflitos e incertezas.
A seguir, são apresentados os tipos de avaliação dos softgoals e suas respectivas categorizações:
- ✓ Satisfeito: Indica que o requisito não funcional foi plenamente atendido.
- 𝒲+ Parcialmente satisfeito: Representa uma satisfação parcial, onde o requisito foi atendido, mas com algumas limitações.
- X Não atendido: Indica que o requisito não funcional não foi realizado.
- 𝒲- Parcialmente não atendido: Refere-se a uma realização negativa parcial, onde o requisito apresenta falhas, mas não completamente.
- C Conflitante: Aponta para uma relação de conflito entre os requisitos, onde existem elementos positivos e negativos simultaneamente.
- u Indeterminado: Representa um estado desconhecido ou incerto, onde não há informações suficientes para determinar o nível de atendimento do requisito.
Para uma visualização prática dos símbolos e suas categorizações, consulte a Figura 2.
Figura 2: Rótulos de propagação de impacto
Autor - Samuel Ribeiro
Tipos de Contribuições e Decomposições
A análise de contribuições e decomposições desempenha um papel crucial na compreensão do impacto dos elementos sobre os softgoals. A Tabela 2 apresenta os diferentes tipos de contribuições (positivas e negativas) e suas intensidades, além de destacar os mecanismos de decomposição AND e OR, que indicam as condições necessárias para a satisfação de um softgoal.
Tabela 2 - Tipos de Contribuições e Decomposições
Tipo de Contribuição | Descrição |
---|---|
Contribuições Positivas (+) | Indicadores de que uma decisão ou elemento contribui para a satisfação de um softgoal. |
++ (Forte Positiva) | Uma contribuição muito significativa e positiva. |
+ (Fraca Positiva) | Uma contribuição positiva moderada. |
Contribuições Negativas (-) | Indicadores de que uma decisão ou elemento dificulta a satisfação de um softgoal. |
-- (Forte Negativa) | Um impacto muito significativo e prejudicial. |
- (Fraca Negativa) | Um impacto negativo moderado. |
Decomposição AND | Todos os sub-softgoals precisam ser atendidos para que o softgoal pai seja satisfeito. |
Decomposição OR | Apenas um ou mais sub-softgoals precisam ser atendidos para que o softgoal pai seja satisfeito. |
Autor - Samuel Ribeiro
Tabela de Requisitos Não Funcionais
A Tabela 3 a seguir lista os Requisitos Não-Funcionais utilizados para a criação do NFR Framework.
Tabela 3 - Requisitos Não Funcionais
ID | Descrição | Rastreabilidade |
---|---|---|
RNF01 | O sistema deve reduzir anúncios intrusivos e ajustar algoritmos para maior transparência. | RNF41 |
RNF02 | O sistema deve melhorar o algoritmo para priorizar conteúdos relevantes ao usuário. | RNF42 |
RNF03 | O sistema deve evitar a sobrecarga de notificações irrelevantes. | RNF43 |
RNF04 | O sistema deve implementar moderação para reduzir bots e publicações irrelevantes. | RNF44 |
RNF05 | O sistema deve oferecer autenticação avançada para segurança do usuário. | RNF45 |
RNF06 | O sistema deve garantir tempos de resposta inferiores a 1 segundo para interações usuais. | RNF46 |
RNF07 | O aplicativo deve minimizar o consumo de bateria em dispositivos móveis, garantindo uma taxa de consumo inferior a 5%. | RNF47 |
RNF08 | O sistema deve ser compatível com dispositivos móveis de versões Android 8.0 e iOS 12 ou superiores. | RNF48 |
RNF09 | O sistema deve ser compatível com versões de navegador mais antigas, garantindo funcionalidade em Chrome 70+ e Firefox 70+. | RNF49 |
RNF10 | O sistema deve garantir alta disponibilidade, com menos de 1% de tempo de inatividade mensal. | RNF50 |
RNF11 | O sistema deve criptografar todos os dados de login e autenticação para garantir a segurança das informações. | RNF51 |
RNF12 | O sistema deve ser otimizado para uso em dispositivos com pouca memória RAM. | RNF52 |
RNF13 | O sistema deve ser compatível com os navegadores mais recentes, como Google Chrome, Safari e Edge. | RNF53 |
RNF14 | O sistema deve garantir que o feed de publicações seja carregado rapidamente, mesmo com grande volume de conteúdo. | RNF54 |
RNF15 | O sistema deve garantir que os dados do usuário sejam armazenados de forma segura, com backup regular. | RNF55 |
RNF16 | O sistema deve garantir que o conteúdo do usuário seja sempre acessível, com um tempo de recuperação abaixo de 10 segundos. | RNF56 |
RNF17 | O sistema deve permitir que o usuário configure o status online ou offline. | RNF57 |
RNF18 | O sistema deve permitir a criação de listas de amigos próximos. | RNF58 |
RNF19 | O sistema deve permitir respostas anônimas em discussões públicas moderadas. | RNF59 |
RNF20 | O sistema deve permitir salvar rascunhos de postagens mesmo sem conexão. | RNF60 |
Autores: Genilson Silva e Samuel Ribeiro.
NFR Framework - NFR01: Compatibilidade e Performance
Descrição
Este SIG (Sistemas de Informação Gráfica) agrupa requisitos não funcionais relacionados à compatibilidade e performance do sistema Threads. Esses requisitos são cruciais para garantir que o sistema seja acessível e eficiente em diferentes ambientes de uso, desde dispositivos móveis até navegadores web antigos e modernos.
Requisitos
Os Requisitos utilizados para a confecção da Figura 3 estão presentes na Tabela 3:
-
RQ08: O sistema deve ser compatível com dispositivos móveis de versões Android 8.0 e iOS 12 ou superiores
-
RQ12: O sistema deve ser otimizado para uso em dispositivos com pouca memória RAM.
-
RQ09: O sistema deve ser compatível com versões de navegador mais antigas, garantindo funcionalidade em Chrome 70+ e Firefox 70+.
-
RQ13: O sistema deve ser compatível com os navegadores mais recentes, como Google Chrome, Safari e Edge.
Com isso, segue a Figura 3 com o NFR relativo a Compatibilidade e Performance:
Figura 3: SIG Compatibilidade e Performance
Autor - Samuel Ribeiro
Propagacao dos Impactos
A seguir, na Tabela 4, temos a avaliação da propagação dos impactos relativa à Figura 3.
Tabela 4 - tabela de Impactos
NFR | Impacto | Avaliador |
---|---|---|
Compatibilidade e Performance | ✓ | Samuel Ribeiro |
Compatibilidade | ✓ | Samuel Ribeiro |
Dispositivos Moveis | ✓ | Samuel Ribeiro |
Android 8.0+ | 𝒲+ | Samuel Ribeiro |
iOS 12+ | 𝒲+ | Samuel Ribeiro |
Navegadores Antigos | ✓ | Samuel Ribeiro |
Chrome 70+ | 𝒲+ | Samuel Ribeiro |
Firefox 70+ | 𝒲+ | Samuel Ribeiro |
Navegadores Modernos | ✓ | Samuel Ribeiro |
Chrome | ✓ | Samuel Ribeiro |
Safari | ✓ | Samuel Ribeiro |
Edge | ✓ | Samuel Ribeiro |
Performance | ✓ | Samuel Ribeiro |
Otimizacao | ✓ | Samuel Ribeiro |
Pouca Memoria RAM | X | Samuel Ribeiro |
Autor - Samuel Ribeiro
NFR Framework - NFR02: Desempenho
Este SIG (Sistemas de Informação Gráfica) agrupa requisitos não funcionais relacionados ao desempenho do sistema Threads. Esses requisitos são essenciais para assegurar que o sistema ofereça uma performance consistente, com tempos de resposta rápidos e utilização eficiente dos recursos, independentemente do volume de dados ou da carga de usuários simultâneos. A prioridade é garantir uma experiência fluida e ágil, desde a interação com o feed de postagens até o carregamento de páginas e o processamento de dados em dispositivos diversos.
Requisitos
Os Requisitos utilizados para a confecção da Figura 3 estão presentes na Tabela 3:
-
RQ06: O sistema deve garantir tempos de resposta inferiores a 1 segundo para interações usuais.
-
RQ07: O aplicativo deve minimizar o consumo de bateria em dispositivos móveis, garantindo uma taxa de consumo inferior a 5%.
-
RQ12: O sistema deve ser otimizado para uso em dispositivos com pouca memória RAM.
-
RQ16: O sistema deve garantir que o conteúdo do usuário seja sempre acessível, com um tempo de recuperação abaixo de 10 segundos.
Com isso, segue a Figura 3 com o NFR relativo a Compatibilidade e Performance:
Figura 4 - SIG Desempenho
Autor: Carlos Eduardo
Propagacao dos Impactos
A seguir, na Tabela 5, temos a avaliação da propagação dos impactos relativa à Figura 4.
Tabela 5 - Impactos Desempenho
NFR | Impacto | Avaliador |
---|---|---|
Desempenho | 𝒲+ | Carlos Eduardo |
Tempo de resposta | 𝒲+ | Carlos Eduardo |
Utilização de recursos | 𝒲- | Carlos Eduardo |
Pouca utilização de recursos | ✓ | Carlos Eduardo |
Feed | 𝒲+ | Carlos Eduardo |
Login | 𝒲+ | Carlos Eduardo |
Carregamento de postagens inferior a 500ms | ✓ | Carlos Eduardo |
Tempo inferior a 500ms em interações usuais | 𝒲+ | Carlos Eduardo |
Realizar login em menos de 2 segundos | 𝒲+ | Carlos Eduardo |
Usar pouco a CPU | 𝒲- | Carlos Eduardo |
Minimizar o consumo da bateria | 𝒲+ | Carlos Eduardo |
Autor: Carlos Eduardo
NFR Framework - NFR03: Personalização e Usabilidade
Descrição
Este SIG (Sistemas de Informação Gráfica) agrupa requisitos não funcionais relacionados à personalização e usabilidade do sistema Threads. Esses requisitos são fundamentais para garantir que o sistema seja flexível, permitindo ao usuário adaptar a plataforma conforme suas preferências, além de melhorar a experiência do usuário, tornando-a mais prática e intuitiva.
Requisitos
- RQ17: O sistema deve permitir que o usuário configure o status online ou offline. (Personalização)
- RQ18: O sistema deve permitir a criação de listas de amigos próximos. (Personalização)
- RQ19: O sistema deve permitir respostas anônimas em discussões públicas moderadas. (Usabilidade)
- RQ20: O sistema deve permitir salvar rascunhos de postagens mesmo sem conexão. (Usabilidade)
Com isso, segue a Figura 5 com o NFR relativo a Personalização e Usabilidade:
Figura 5: Rótulos de propagação de impacto
Autor - Genilson Silva
Propagacao dos Impactos
A seguir, na Tabela 4, temos a avaliação da propagação dos impactos relativa à Figura 3.
Tabela 6 - Tabela de Impactos
NFR | Impacto | Avaliador |
---|---|---|
Usabilidade | ✓ | Genilson Silva |
Personalização | ✓ | Genilson Silva |
Respostas Anônimas | 𝒲+ | Genilson Silva |
Salvar Rascunhos | ✓ | Genilson Silva |
Configurar Status Online | ✓ | Genilson Silva |
Criar Lista de Amigos | 𝒲+ | Genilson Silva |
Autor - Genilson Silva
Referências
CHUNG, L.; NIXON, B. A.; YU, E.; MYLOPOULOS, J. Non-Functional Requirements in Software Engineering. Springer Science & Business Media, 2000.
SILVA, Reinaldo Antônio da. UFPE Repositório. Disponível em: https://repositorio.ufpe.br/handle/123456789/34150. Acesso em: 22 jun. 2024.
Histórico de Versões
Versão | Data | Descrição | Autor | Revisor |
---|---|---|---|---|
1.0 | 16/12/2024 | Criação do documento | Samuel Ribeiro | Alana Gabriele |
1.1 | 17/12/2024 | implementação do NFR01 | Samuel Ribeiro | Alana Gabriele |
1.2 | 17/12/2024 | implementação do NFR02 - Desempenho | Carlos Eduardo | Alana Gabriele |
1.3 | 17/12/2024 | implementação do NFR03 - Usabilidade e Personalização | Genilson Silva | Samuel Ribeiro |
1.4 | 17/12/2024 | Incorporando o lucidchart | Alana Gabriele | Samuel Ribeiro |