Ir para o 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.

Metodologia

  Para que este documento possa ser produzido, foram utilizados os requisitos não funcionais presentes no nosso projeto e elicitados no artefato de de requisitos elicitados, que trata dos requisitos elicitados em relação ao aplicativo Caesb Autoatendimento.

  Para a verificação foi feita uma reunião com o PO para validação dos NFR, os participantes estão contidos na tabela 1

Tabela 1: Participantes entrevista 1

Participante Função Local Data
Natan Almeida Desenvolvedor Gama - DF 17/12/2024
Matheus Barros Desenvolvedor Gama - DF 17/12/2024
João Paulo Product Owner Gama - DF 17/12/2024

Autor(a): Natan Almeida

Vídeo 01: Entrevista com o PO

Autor(a): Natan Almeida e Matheus Barros

  Esse framework leva em consideração o conceito de "softgoal", eles se referem 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 eles exercem entre si.

   Existem três categorias de softgoals, abaixo segue (Tabela 2) uma explicação sobre cada tipo:

Tabela 2: 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.

Autor(a): Matheus Barros


Figura 1: Tipos de Softgoals

alt text

Autor: (CHUNG et al., 2000).


  Após determinarmos o tipo de softgoal, devemos fazer uma avaliação, esse processo de avaliação determina o quanto os requisitos não funcionais são satisfatórios por meio de um conjunto de decisões. Para tal atribuimos os rótulos de "satisfeito", "parcialmente satisfeito", "não atendido", "parcialmente não atendido", "conflitante" e "indeterminado"


Figura 2: Rótulos de propagação de impacto

alt text

Autor: (CHUNG et al., 2000).

   Depois de fazermos a identificação deles e relacionarmos devemos atribuir a eles as contribuições e decomposições, que serão explicadas na Tabela 3:

Tabela 3: 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(a): Matheus Barros


Requisitos Não-Funcionais:

Tabela 04 - Requisitos Não Funcionais (RNF) utilizados para elabaoração do documento, retirado do artefato de requisitos elicitados :
ID DESCRIÇÃO RASTREABILIDADE IMPLEMENTADO
RQ31 O aplicativo deve incluir um tutorial inicial para ajudar novos usuários a se familiarizarem. ADD10 Não
RQ32 O aplicativo deve oferecer suporte a múltiplos idiomas para atender usuários diversificados. ADD04, INT25 Não
RQ33 O aplicativo deve ser compatível com as versões mais recentes do Android e iOS. INT07, OBS16 Sim
RQ34 O aplicativo deve garantir segurança com os dados dos usuários. ADD06, ADD07 Sim
RQ35 O aplicativo deve estar em conformidade com os padrões de acessibilidade da última versão da WCAG. ADD13, INT26, OBS18 Não
RQ36 O aplicativo deve ter uma interface intuitiva, organizada e fácil de usar. INT08, ENT02, B15, B13, ENT10 Sim
RQ37 O número de cliques necessários para realizar uma ação deve ser de 3 a 5. B14, OBS19 Sim
RQ38 O aplicativo deve se adaptar a diferentes tamanhos de tela. OBS17, INT10 Não
RQ39 O aplicativo deve permitir suporte offline para funcionalidades básicas, como visualização de contas armazenadas. ADD14 Não
RQ40 O aplicativo deve ter tempos de resposta inferiores a 2 segundos para a maioria das funcionalidades. INT22 Não

Autor(a): Matheus Barros

NFR Framework - NFR01: Usabilidade

   De acordo com Jakob Nielsen usabilidade é um atributo de qualidade que avalia a facilidade de uso das interfaces de usuário. Nielsen define usabilidade como um conjunto de componentes que determinam o quão eficaz, eficiente e satisfatória é a interação do usuário com um sistema. Os requisitos utilizados para esse NFR foram:

  • RQ31: O aplicativo deve incluir um tutorial inicial para ajudar novos usuários a se familiarizarem.
  • RQ32: O aplicativo deve oferecer suporte a múltiplos idiomas para atender usuários diversificados.
  • RQ36: O aplicativo deve ter uma interface intuitiva, organizada e fácil de usar.
  • RQ38: O aplicativo deve se adaptar a diferentes tamanhos de tela.

Com isso em mente, segue a Figura número 3 com o NFR relativo a usabilidade:

FIgura 3: SIG usabilidade

alt text

Autor(a): Matheus Barros

Propagação de impactos - NFR01

Tabela 05: Propagação de impactos NF01

NFR Impacto Avaliador
Usabilidade ✓ (satisfeito) Matheus Barros
Interface intuitiva ✓ (satisfeito) Matheus Barros
Tutorial 𝒲+ (fracamente satisfeito) Matheus Barros
Adaptar a diferentes tamanhos de tela ✓ (satisfeito) Matheus Barros
Interface padronizada ✓ (satisfeito) Matheus Barros
Funcionalidades fáceis de encontrar 𝒲+ (fracamente satisfeito) Matheus Barros

Autor(a): Matheus Barros

NFR Framework - NFR02: Eficiência

   Eficiência é um atributo de qualidade de um sistema que se refere à sua capacidade de executar as funções especificadas de maneira otimizada, utilizando o mínimo de recursos necessários. Esse atributo é fundamental para garantir que o sistema ofereça respostas rápidas e mantenha um desempenho estável, mesmo sob condições de carga elevada. É um dos requisitos não funcionais (NFRs) mais relevantes em sistemas computacionais modernos, especialmente em aplicações onde o desempenho é importante.

  • RQ37: O número de cliques necessários para realizar uma ação deve ser de 3 a 5.
  • RQ40: O aplicativo deve ter tempos de resposta inferiores a 2 segundos para a maioria das funcionalidades.

Com isso em mente, segue a Figura número 4 com o NFR relativo a eficiência:

Figura 4: SIG eficiência

alt text

Autor(a): Leandro de Almeida

Propagação de impactos - NFR02

Tabela 06: Propagação de impactos NRF02

NFR Impacto Avaliador
Eficiência ✓ (satisfeito) Leandro de Almeida
Otimizar tarefas 𝒲+ (fracamente satisfeito) Leandro de Almeida
Reduzir tarefas repetitivas 𝒲+ (fracamente satisfeito) Leandro de Almeida
Facilitar a navegação do usuário com fluxos lógicos ✓ (satisfeito) Leandro de Almeida
Executar com 3 ou 5 cliques ✓ (satisfeito) Leandro de Almeida
Limitações 𝒲+ (fracamente satisfeito) Leandro de Almeida
Tempo de resposta ✓ (satisfeito) Leandro de Almeida
Processar em até 2 segundos ✓ (satisfeito) Leandro de Almeida
Organização intuitiva do menu ✓ (satisfeito) Leandro de Almeida

Autor(a): Leandro de Almeida


NFR Framework - NFR03: Confiabilidade

   Confiabilidade é um atributo de qualidade de um sistema que se refere à sua capacidade de executar as funções especificadas de maneira consistente, correta e sem falhas em um determinado período de tempo ou sob condições específicas. É um dos requisitos não funcionais (NFRs) mais importantes em sistemas computacionais, pois está diretamente relacionado à confiança que os usuários depositam no sistema. Os requisitos utilizados para esse NFR foram:

  • RQ34 - O aplicativo deve garantir segurança com os dados dos usuários.

Com isso em mente, segue a Figura número 5 com o NFR relativo a confiabilidade:

Figura 5: SIG Confiabilidade

alt text

Autor(a): Letícia Resende

Propagação de impactos - NFR03

Tabela 07: Propagação de impactos NRF03

NFR Impacto Avaliador
Confiabilidade ✓ (satisfeito) Letícia Resende
Segurança ✓ (satisfeito) Letícia Resende
Solicitar autenticação ++ (fortemente satisfeito) Letícia Resende
Notificar novos logins 𝒲+ (fracamente satisfeito) Letícia Resende
Implementar criptografia ++ (fortemente satisfeito) Letícia Resende
Transparência ✓ (satisfeito) Letícia Resende
Política de Privacidade + (satisfeito) Letícia Resende
Termos de Uso + (satisfeito) Letícia Resende
Suporte ao Usuário ✓ (satisfeito) Letícia Resende
FAQs sobre segurança 𝒲+ (fracamente satisfeito) Letícia Resende
Suporte dedicado ao usuário + (satisfeito) Letícia Resende

Autor(a): Letícia Resende

NFR Framework - NFR04: Suportabilidade

   Suportabilidade é um atributo de qualidade de um sistema que se refere à sua capacidade de ser mantido, adaptado ou expandido com facilidade ao longo de seu ciclo de vida. Esse atributo é fundamental para garantir que o sistema possa evoluir diante de mudanças nos requisitos, corrigir problemas rapidamente e incorporar novas funcionalidades sem comprometer sua estabilidade ou desempenho. É um dos requisitos não funcionais (NFRs) mais relevantes em sistemas modernos, especialmente em contextos onde a manutenção contínua e a escalabilidade são cruciais para atender às demandas do negócio.

  • RQ32: O aplicativo deve oferecer suporte a múltiplos idiomas para atender usuários diversificados.
  • RQ33: O aplicativo deve ser compatível com as versões mais recentes do Android e iOS.
  • RQ38: O aplicativo deve se adaptar a diferentes tamanhos de tela.

Com isso em mente, segue a Figura número 5 com o NFR relativo a suportabilidade:

Figura 5: SIG suportabilidade

alt text

Autor(a): Natan Almeida

Propagação de impactos - NFR04

Tabela 08: Propagação de impactos NRF04

NFR Impacto Avaliador
Suportabilidade ✓ (satisfeito) Natan Almeida
Estabilidade ✓ (satisfeito) Natan Almeida
Múltiplos idiomas 𝒲+ (fracamente satisfeito) Natan Almeida
Adaptar a diferentes tamanhos de tela ✓ (satisfeito) Natan Almeida
Compatibilidade Multi-plataforma ✓ (satisfeito) Natan Almeida

Autor(a): Natan Almeida


NFR Framework - NFR05: Manutenibilidade

   A manutenibilidade de um sistema se refere à facilidade com que um sistema pode ser mantido, ajustado ou melhorado ao longo de seu ciclo de vida. Em outras palavras, é a capacidade do sistema de ser modificado para corrigir defeitos, melhorar o desempenho ou adaptar-se a novos requisitos, sem causar grandes interrupções ou custos excessivos.

  • RQ35: O aplicativo deve estar em conformidade com os padrões de acessibilidade da última versão da WCAG.
  • RQ39: O aplicativo deve permitir suporte offline para funcionalidades básicas, como visualização de contas armazenadas.

Com isso em mente, segue a Figura número 6 com o NFR relativo a manutenibilidade:

Figura 6: SIG manutenibilidade

alt text

Autor(a): Joao Victor Marques

Propagação de impactos - NFR05

Tabela 09: Propagação de impactos NRF05

NFR Impacto Avaliador
Conformidade com os padrões de acessibilidade da última versão da WCAG 𝒲+ (fracamente satisfeito) Joao Victor Marques
Suporte offline para funcionalidades básicas 𝒲+ (fracamente satisfeito) Joao Victor Marques

Autor(a): Joao Victor Marques


Referências Bibliográficas

[1] Chung, Lawrence; A. Nixon, Brian; Mylopoulos, John. Non-Functional Requirements in Software Engineering. Acesso em 13 de Dezembro de 2024.

[2] SILVA, R. NFR4ES: Um Catálogo de Requisitos Não-Funcionais para Sistemas Embarcados. Tese (Mestrado em Engenharia de Software) - Centro de Informática, Universidade Federal de Pernambuco. Recife, p. 155. 2019. Acesso em: 13 de Dezembro de 2022

[3]NIELSEN, Jakob. Usability Engineering. San Francisco: Morgan Kaufmann, 1994.

[4] Sommerville, I. (2011). Engenharia de Software (9ª Edição). Acesso em 14 de Dezembro de 2024.


Histórico de versão

Versão Data Descrição Autor(es) Revisor(es)
1.0 13/12/2024 Criação da introdução, metodologia e NFR de usabilidade Matheus Barros Natan Almeida
1.1 14/12/2024 Adicionando NFR de confiabilidade e impactos Letícia Resende Matheus Barros
1.2 14/12/2024 Adiciona NFR02: Eficiência Leandro de Almeida Natan Almeida
1.3 15/12/2024 Adiciona NFR04: suportabilidade Natan Almeida Matheus Barros
1.4 17/12/2024 Adiciona NFR05: manutenibilidade Joao Victor Marques Matheus Barros
1.5 17/12/2024 Adiciona vídeo 01 Natan Almeida Matheus Barros