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
Fonte: JANEIRO, José. GOMES, Joaquim. 2007/2008
Metodologia
- Identificação dos Softgoals: Requisitos não funcionais são identificados e expressos como softgoals.
- Refinamento dos Softgoals: Softgoals são detalhados em subgoals para especificar características específicas.
- Estabelecimento de Contribuições: Relações de contribuição entre softgoals e subgoals são identificadas.
- Construção do Softgoal Interdependency Graph (SIG): Um gráfico é construído para visualizar interdependências e trade-offs.
- 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
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
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
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
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
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 |