Pular para conteúdo

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

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

Rotulos

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