Pular para conteúdo

NFR Framework

Introdução

O Non-Functional Requirements (NFR) Framework é uma abordagem estruturada para tratar os requisitos não funcionais em projetos de engenharia de software. Requisitos não funcionais são aqueles que definem atributos de qualidade do sistema, como desempenho, segurança, usabilidade e confiabilidade, que são críticos para o sucesso do software, mas que não dizem respeito diretamente às funcionalidades específicas do sistema.1

Proposto por Lawrence Chung e colaboradores, o NFR Framework visa integrar esses requisitos ao processo de desenvolvimento de software de maneira sistemática. O framework trata os requisitos não funcionais como "softgoals", que são metas qualitativas e subjetivas, e fornece uma estrutura para representar, refinar e analisar esses softgoals. 1

Softgoal Interdependency Graph (SIG)

O Softgoal Interdependency Graph (SIG) é uma ferramenta central dentro do NFR Framework que facilita a modelagem e a análise de requisitos não funcionais. O SIG permite a visualização das interdependências entre diferentes softgoals e ajuda a entender como diferentes soluções contribuem para a satisfação desses requisitos.1

Identificação e Representação dos Softgoals

No SIG, os requisitos não funcionais são inicialmente identificados como softgoals. Esses softgoals são representados como nós no gráfico e refletem as aspirações e preocupações dos stakeholders, como exemplo na Figura 1. Cada softgoal é expresso de maneira qualitativa, permitindo uma compreensão mais ampla e flexível dos objetivos de qualidade do sistema.

Refinamento dos Softgoals

Os softgoals são refinados em subgoals, que detalham as características específicas necessárias para satisfazer os requisitos não funcionais. Este refinamento pode ocorrer em vários níveis, permitindo uma decomposição detalhada dos objetivos de qualidade. Cada nível de refinamento oferece uma visão mais granular das metas a serem alcançadas.

Estabelecimento de Contribuições

As relações de contribuição entre os diferentes softgoals e subgoals são estabelecidas. Essas contribuições podem ser positivas, negativas ou neutras e são representadas como arestas no gráfico. A análise dessas contribuições permite visualizar os trade-offs entre diferentes requisitos não funcionais, ajudando a identificar possíveis conflitos e sinergias.

Construção e Análise do SIG

O SIG é construído com base nos softgoals, subgoals e nas relações de contribuição identificadas. Este gráfico fornece uma visualização clara das interdependências entre os requisitos não funcionais e facilita a análise das alternativas e soluções, como exemplo na Figura 1. A análise do SIG permite uma avaliação das opções de design e uma justificativa racional para as decisões tomadas.

Aplicação do SIG

A aplicação do SIG no processo de desenvolvimento de software garante que os requisitos não funcionais sejam considerados de maneira explícita e estruturada. Ele fornece uma base sólida para a discussão e documentação das decisões de design, promovendo a rastreabilidade e a compreensão dos trade-offs envolvidos.

Figura 1: NFR Framework

NFR Framework

Fonte: JANEIRO, José. GOMES, Joaquim. 2007/2008

Metodologia

  1. Identificação dos Softgoals: Requisitos não funcionais são identificados e expressos como softgoals.
  2. Refinamento dos Softgoals: Softgoals são detalhados em subgoals para especificar características específicas.
  3. Estabelecimento de Contribuições: Relações de contribuição entre softgoals e subgoals são identificadas.
  4. Construção do Softgoal Interdependency Graph (SIG): Um gráfico é construído para visualizar interdependências e trade-offs.
  5. Análise e Racionalização: Alternativas e soluções são analisadas para suportar decisões de design.

NFR 00 - Geral

A Figura 2 a seguir demonstra o Softgoal Interdependency Graph para se ter uma visão geral.

Figura 2 - SIG Geral

SIG GERAL

Fonte: SILVA, 2019

No entanto, dada a limitação do grupo de trabalhar apenas com Requisitos Não-Funcionais ainda não implementados pelo aplicativo, adaptou-se o SIG acima para a utilização dos tópicos necessários, presentes na Figura 3.

Figura 3 - SIG Geral Adaptado

SIG GERAL

Fonte: SILVA, 2019

Cartões de Especificação

Na tabela 1 abaixo, temos o cartão de especificação do softgoal "Usabilidade".

Tabela 1 - Cartão de especificação 1 - Usabilidade

Tópico Usabilidade/Fácil Aprendizado
ID NFR01
Descrição O requisito de "Usabilidade" refere-se à capacidade do sistema de entregar uma boa experiência interativa para os usuários do aplicativo "DOU".
Justificativa Uma boa Usabilidade é fundamental para garantir que os usuários possam utilizar o aplicativo com eficiência e garantir uma satisfação aos usuários. Com uma interface intuitiva, acessível e eficiente o usuário não vai ter dificuldade em aprender a usar o aplicativo, assim, a chance de abandoná-lo é menor.
Origem do Requisito Especificação suplementar e Priorização de Requisitos
Critério de Aceitação Requisitos de Usabilidade de 1 a 6
Dependências Interação do usuário com o sistema e a possibilidade de teste dos requisitos dentro do aplicativo
Prioridade Alta prioridade
Conflito Nenhum
História 26/05/2024

Fonte: Luiz Gustavo

NFR 01 - Usabilidade

Os Requisitos utilizados para a confecção da Figura 4 estão presentes na Tabela 5:

  • RNF01: indica que o aplicativo deve ter uma interface de usuário intuitiva e fácil de navegar.
  • RNF03: infere que o aplicativo deve oferecer suporte multilíngue para atender a uma base de usuários diversificada.

Figura 4 - SIG Usabilidade

SIG Usabilidade

Fonte: Douglas Marinho


Na tabela 2 abaixo, temos o cartão de especificação do softgoal "Confiabilidade".

Tabela 2 - Cartão de especificação 2 - Confiabilidade

Tópico Confiabilidade/Segurança
ID NFR02
Descrição O requisito de "Confiabilidade" refere-se à capacidade do sistema de se manter ativo, disponível e seguro
Justificativa Os critérios de Confiabilidade visam garantir a robustes, resistência a falha e a integridade das informações, aumentando a confiança e credibilidade dos usuários no aplicativo
Origem do Requisito Especificação suplementar e Priorização de Requisitos
Critério de Aceitação Requisitos de Confiabilidade de 1 a 6
Dependências Monitoramento do aplicativo
Prioridade Alta prioridade
Conflito Nenhum
História 26/05/2024

Fonte: Luiz Gustavo

NFR 02 - Confiabilidade

Os Requisitos utilizados para a confecção da Figura 5 estão presentes na Tabela 5:

  • RNF02: O aplicativo deve ter um mecanismo robusto de backup e recuperação de dados.
  • RNF05: O sistema deve implementar medidas para prevenir que o usuário realize ações que possam comprometer a integridade do sistema.

Figura 5 - SIG Confiabilidade

SIG Confiabilidade

Fonte: Henrique Torres


Na tabela 3 abaixo, temos o cartão de especificação do softgoal "Desempenho".

Tabela 3 - Cartão de especificação 3 - Desempenho

Tópico Desempenho/Eficiência
ID NFR03
Descrição O requisito de "Desempenho" refere-se à capacidade do sistema de operar de maneira eficiente e responsiva, proporcionando tempo de resposta rápido e um uso eficiente dos recursos do sistema.
Justificativa Garantir um bom desempenho é essencial para a satisfação do usuário, pois um sistema lento ou ineficiente pode levar a uma experiência negativa e à insatisfação. Um desempenho otimizado aumenta a produtividade dos usuários e assegura que o sistema possa escalar adequadamente para atender a um grande número de acessos simultâneos, especialmente em picos de demanda.
Origem do Requisito Especificação suplementar e Priorização de Requisitos
Critério de Aceitação Requisitos de Desempenho de 1 a 6
Dependências Hardware do dispositivo móvel. Qualidade da conexão com a internet
Prioridade Baixa prioridade
Conflito Nenhum
História 26/05/2024

Fonte: Luiz Gustavo

NFR 03 - Desempenho

Os Requisitos utilizados para a confecção da Figura 6 estão presentes na Tabela 5:

  • RNF01: O aplicativo deve ter uma interface de usuário intuitiva e fácil de navegar.
  • RNF02: O aplicativo deve ter um mecanismo robusto de backup e recuperação de dados.
  • RNF04: Compatibilidade com as versões mais recentes de sistemas operacionais móveis.

Figura 6 - SIG Desempenho

SIG Desempenho

Fonte: Henrique Torres


Requisitos Não-Funcionais

Para aplicarmos a técnica do NFR Framework, identificamos alguns Requisitos Não-Funcionais que não foram implementados. A Tabela 5, apresentada abaixo, detalha esses requisitos.

Tabela 5 - Requisitos Não-Funcionais Não Implementados

ID Descrição Rastreabilidade Implementação
RNF01 O aplicativo deve ter uma interface de usuário intuitiva e fácil de navegar. AI07, IS09 Não
RNF02 O aplicativo deve ter um mecanismo robusto de backup e recuperação de dados. AI10, IS14 Não
RNF03 O aplicativo deve oferecer suporte multilíngue para atender a uma base de usuários diversificada. IS16, OBS14 Não
RNF04 Compatibilidade com as versões mais recentes de sistemas operacionais móveis. OBS11 Não
RNF05 O sistema deve implementar medidas para prevenir que o usuário realize ações que possam comprometer a integridade do sistema. CON06 Não

Fonte: Henrique Torres

Referência Bibliográfica

1. Chung, L., Nixon, B. A., Yu, E., Mylopoulos, J. Non-functional requirements in software engineering. Springer Science & Business Media: [S.l.], 2000. v. 5.

2. SILVA, Reinaldo Antônio. NFR4ES: Um Catálogo de Requisitos Não-Funcionais para Sistemas Embarcados. Centro de Informática UFPE, Recife, 2019. Disponível em: https://repositorio.ufpe.br/handle/123456789/34150. Acesso em: 26/05/2024.

Bibliografia

JANEIRO, José. GOMES, Joaquim. NFR Framework. ESTIC, Brasil, 2008. Disponível em: http://jaejaneiro.orgfree.com/engsofnfr.pdf. Acesso em: 25/05/2024.

NFR Framework. Disponível em: https://requisitos-de-software.github.io/2023.2-Economia-DF/modelagem/agil/nfr-framework/. Acesso em 26 de maio de 2024.

NFR Framework. Disponível em: https://requisitos-de-software.github.io/2023.1-Simplenote/modelagem/agil/nfr/. Acesso em 26 de Maio de 2024.

Histórico de versão

Versão Data Data Prevista de Revisão Descrição Autor Revisor
1.0 25/05/2024 25/05/2024 Criação da Documentação e conceitos sobre o NFR Douglas Marinho Arthur Alves
1.1 26/05/2024 27/05/2024 Criação dos cartões de especificação Luiz Gustavo Eric Silveira
1.2 27/05/2024 27/05/2024 Adição do NFR 00 E NFR 01 Douglas Marinho Eric Silveira
1.3 27/05/2024 27/05/2024 Adição do NFR 02 E NFR 03 Henrique Torres Eric Silveira
1.4 27/05/2024 27/05/2024 Criação da parte relacionada aos requisitos não-funcionais Henrique Torres Eric Silveira
1.5 29/05/2024 29/05/2024 Corrigindo a disposição dos itens do artefato Henrique Torres Eric Silveira