Ir para o conteúdo

NFR Framework

O NFR Framework é uma abordagem para representar e analisar Requisitos Não-Funcionais. Seu objetivo é ajudar desenvolvedores na implementação de soluções personalizadas, levando em consideração as características do domínio e dos sistema em questão.

O Framework utiliza de softgoals, um objetivo que não possui uma clara definição nem critérios de satisfação precisos. São utilizados para representar Requisitos Não-Funcionais e podem estar inter-relacionados, expressando a influência de uma softgoal em outro.

É representado por meio de um grafo, chamado Softgoal Interdependency Graph (SIG), que registra as considerações do desenvolvedor sobre os softgoals e mostra suas interdependências.

Os softgoals podem ser separados em 3 tipos:

  • NFR Softgoal – Característica abstrata, a qual se deseja considerar na análise, visando saber se a mesma será cumprida ou não cumprida, ou seja, escolhida ou não escolhida para ser implementada. São requisitos não funcionais, vistos como critérios/atributos de qualidade.

  • Softgoal de Operacionalização – forma concreta de viabilizar ou não as características abstratas. São funcionalidades.

  • Claim Softgoal (Argumentation) – a notação que pode ser acrescentada ao modelo, argumentando algo sobre um ponto específico da modelagem. Escrita em linguagem natural.

Cada um desses Softgoals podem ser decompostos, e os tipos de decomposição são:

  • Decomposição de Softgoal NFR: refina ou subdivide um um softgoal NFR em outros específicos. Isso pode ajudar a dividir grandes problemas em problemas menores e oferece um aspecto útil para lidar com ambiguidades e prioridades.

  • Decomposição de Operacionalização: subdivide um softgoal de operacionalização em outros softgoals de operacionalização mais específicos. Operacionalizações são úteis para definir uma solução geral e refiná-la em soluções mais específicas.

  • Decomposição de Afirmação (Claims): refina um softgoal de afirmação em outros softgoals de afirmação. Ela é importante para apoiar ou negar justificativas específicas de projeto.

  • Priorização: A priorização é um tipo especial de decomposição, onde ocorre o refinamento de um softgoal em outro softgoal com o mesmo tipo e tópicos, mas com uma prioridade associada.

As decomposições são especificações dos softgoals, ou seja, alterações no estado de um softgoal filho geram alterações no softgoal pai, e essas alterações são chamadas de contribuições. Essas contribuições são:

Contribuição Descrição
AND se os softgoals descendentes forem satisfeitos os softgoals ascendentes também são.
OR se algum softgoal descendente form satisfeito, o ascendente é satisfeito.
MAKE(++) se o softgoal descendente for satisfeito o softgoal pai também é.
BREAK(--) se o softgoal descendente for suficientemente satisfeito, o softgoal pai é negado.
HELP(+) se o softgoal descendente for parcialmente satisfeito, o softgoal ascendente será parcialmente satisfeito.
HURT(-) se o softgoal descendente for satisfeito, o softgoal ascendente será parcialmente negado.
UNKNOWN(?) fornece uma contribuição desconhecida entre um softgoal descendente e um ascendente, e pode ser tanto positiva quanto negativa.
EQUALS o softgoal descendente só será satisfeito se o softgoal ascendente for satisfeito / o softgoal descendente será negado se o softgoal ascendente for negado.
SOME (+|-) usado se o sinal da contribuição é conhecido, mas a extensão(parcial ou total) não é.

Por fim, para a análise dos softgoals, são atribuídos rótulos que definem o grau de satisfação de um softgoal. Ao atribuir um rótulo em um softgoal de baixo nível, é feita a propagação da satisfação daquele requisito de acordo com as contribuições definidas.

NFRs

A seguir estão apontados 4 NFRs que fizemos o rastreio e estudo mais profundo. Eles são: usabilidade, disponibilidade, portabilidade, performance.

Legenda

A figura 1 apresenta a legenda dos diagramas NFRs que serão mencionados no restante do texto.

Legenda dos diagramas NFR

Figura 1: Legenda NFR. (Fonte: autor, 2022).

NFR Usabilidade

Na figura 2 temos o diagrama representando o NFR de usabilidade.

Diagrama NFR Usabilidade

Figura 2: Diagrama NFR Usabilidade. (Fonte: autor, 2022).

NFR Disponibilidade

Na figura 3 temos o diagrama representando o NFR de disponibilidade.

Diagrama NFR Disponibilidade

Figura 3: Diagrama NFR Disponibilidade. (Fonte: autor, 2022).

NFR Portabilidade

Na figura 4 temos o diagrama representando o NFR de portabilidade.

Diagrama NFR Portabilidade

Figura 4: Diagrama NFR Portabilidade. (Fonte: autor, 2022).

NFR Performance

Na figura 5 temos o diagrama representando o NFR de performance.

Diagrama NFR Performance

Figura 5: Diagrama NFR Performance. (Fonte: autor, 2022).

Requisitos elicitados através do NFR

Abaixo temos uma tabela referente aos requisitos não funcionais levantados através do NFR.

ID Requisito
RNF01 Sistema deve ter barra de navegação que siga padrões de UI/UX bem estabelecidos no mercado
RNF02 Usuário deve conseguir padronizar sua interface de maneira única
RNF03 Sistema deve ter no máximo 5 interações por funcionalidade
RNF04 Sistema deve ter animações simples de no máximo 300 milésimos
RNF05 Sistema deve apresentar acesso a todas as funcionalidades logo no início do app
RNF07 Sistema deve permitir customização de tema (claro e escuro)
RNF08 Sistema deve permitir customização de linguagem (português, inglês e espanhol)
RNF09 Sistema deve permitir customização de som (habilitar e desabilitar efeitos sonoros)
RNF10 Sistema deve estar online todos os dias da semana, durante todo o dia
RNF11 Sistema deve informar sobre manutenções e possíveis tempos em que o servidor estará offline via notificação
RNF12 Sistema deve realizar backup automático dos dados do usuário todo dia em horário com menor acesso (a ser determinado pelo sistema)
RNF13 Sistema deve ser compatível com Android (de versão 9.0 até atual)
RNF14 Sistema deve ser compatível com iOS (de versão 12 até atual)
RNF17 Sistema deve ser disponível na Web
RNF18 Sistema deve ser responsivo
RNF19 Sistema deve escurecer a tela em caso de inatividade maior de X minutos definido pelo usuário
RNF2O Dispositivo deve bloquear tela em caso de inatividade prolongada
RNF21 Sistema deve guardar a última tela em que o usuário está
RNF22 Sistema deve permitir jogar partidas mesmo sem conexão de internet
RNF23 Sistema deve permitir acessar o aplicativo mesmo sem conexão de internet
RNF24 Sistema deve ter uma taxa de atraso abaixa de 100 milisSegundos

Tabela 1: Requisitos de NFR. (Fonte: autor, 2022).

Bibliografia

[1] SILVA, Reinaldo. NFR4ES: Um Catálogo de Requisitos Não-Funcionais para Sistemas Embarcados.

[2] SERRANO, Milene - SERRANO, Maurício. Requisitos - Aula 17. Local: UnB-FGA, Gama, DF. Disponível em: Requisitos - Aula 16. Acesso em: 10 de Dezembro de 2022.

Histórico de Versão

Versão Data Descrição Autor(es) Revisor(es)
1.0 10/12/2022 Criação da versão inicial do documento Maurício Machado Nicolas Souza
1.1 26/01/2023 Adição lista de requisitos elicitados Maurício Machado Nicolas Souza
1.2 26/01/2023 Ajustes solicitados Maurício Machado Nicolas Souza