Skip to content

NFR framework

Introdução

NFR é um framework conceitual que se baseia no Softgoal Interdependency Graph (SIG) como modelo principal. Seu principal enfoque está nos requisitos Não-Funcionais do aplicativo. No Framework, softgoals são empregados como metas de caráter vago, desprovidas de critérios de satisfação claramente definidos. Estes softgoals são usados para representar os Requisitos Não-Funcionais e podem se interconectar, demonstrando como um softgoal influencia outro. [1]

Requisitos Não Funcionais Elicitados

Abaixo, na tabela 1, estão os requisitos não funcionais elicitados pela equipe.

ID Requisito Fonte
RNF01 A senha deve conter no mínimo um número uma letra maiúscula e um caracter especial Introspecção
RNF02 Deve ser possível fazer cadastro/login com as credenciais do facebook Introspecção
RNF03 Deve ser possível obter o aplicativo em sistemas IOS e Android Introspecção
RNF04 Os dados do usuário devem ser guardados de forma eficaz, impendindo o vazamento dos mesmos Introspecção
RNF05 O Skoob deve ser capaz de interoperar com outras plataformas de redes sociais, permitindo aos usuários compartilhar conteúdo Brainstorming
RNF06 O Skoob deve ser capaz de se adaptar a diferentes tamanhos de tela e resoluções Introspecção
Tabela 1: Requisitos Não Funcionais Elicitados, Autor(a): Shaíne e Ana, 2023

Softgoals

Os softgoals são separados em 3 tipos: [1]

  • NFR Softgoal: Um requisito não-funcional que é avaliado durante a análise para determinar sua inclusão ou exclusão no projeto. Esses requisitos são considerados como critérios de qualidade e são avaliados para assegurar que o produto final atenda aos padrões desejados, servindo como indicadores de qualidade.

  • Softgoal de Operacionalização: São funcionalidades que têm o papel de tornar concretas as características abstratas. Em outras palavras, elas são responsáveis por converter os requisitos não-funcionais em funcionalidades tangíveis que podem ser implementadas no sistema, representando a materialização das características abstratas em elementos mensuráveis.

  • Claim Softgoal (Arfimação): É uma notação que pode ser incorporada ao modelo para argumentar pontos específicos da modelagem em linguagem natural. Essa notação permite expressar ideias ou justificativas relacionadas ao modelo, auxiliando na explicação do raciocínio por trás de determinadas escolhas de design.

Além disso, cada um desses softgoals pode ser detalhado ou subdividido em sub-requisitos, utilizando as seguintes técnicas:

  • Decomposição de Softgoal NFR: Essa técnica permite uma melhor organização e compreensão dos softgoals NFR, desdobrindo-os em componentes mais específicos.

  • Decomposição de Operacionalização: Essa técnica viabiliza a definição de uma solução geral, desagregando-a em casos mais específicos para uma compreensão mais detalhada.

  • Decomposição de Afirmação (Claims): Essa técnica possibilita a reafirmação ou negação de justificativas específicas do projeto, oferecendo uma abordagem mais detalhada da argumentação.

  • Priorização: Esta técnica envolve a subdivisão de um softgoal em outro softgoal do mesmo tipo e tópico, mas com uma prioridade associada, permitindo uma hierarquia de importância entre os requisitos. [1]

Esse refinamento são especificações dos softgoals e são contribuições e existe 10 tipos, descritos na Tabela 2. Esses são:

Contribuição Descrição Notação
MAKE FILHO com contribuição tão positiva a ponto de satisfazer o PAI sob a perspectiva dos envolvidos. ++
HELP FILHO com contribuição positiva parcial, que sozinho não chega a satisfazer o PAI sob a perspectiva dos envolvidos. +
UNKNOWN FILHO não afeta o PAI. ?
HURT FILHO com contribuição negativa parcial, que sozinho não chega a negar o PAI sob a perspectiva dos envolvidos. -
BREAK FILHO com contribuição tão negativa a ponto de negar o PAI sob a perspectiva dos envolvidos --
SOME + FILHO com contribuição positiva, cuja intensidade não se pode determinar. SOME +
SOME - FILHO com contribuição negativa, cuja intensidade não se pode determinar SOME -
AND “Pai” é satisfeito se somente todos os “filhos” forem satisfeitos sob a perspectiva dos envolvidos AND
OR “Pai” é satisfeito se somente um dos “filhos” é satisfeito sob a perspectiva dos envolvidos OR
EQUAL Ambos compartilham o mesmo label =
Tabela 2: Contribuições, Autor(a): Shaíne

Legendas

Softgoals

A figura 1 mostra os tipos de softgoals.

image
Figura 1: Legenda Softgoals, Fonte: Shaíne

Rótulos

A figura 2 mostra os tipos de rótulos.

image
Figura 2: Rótulos, Fonte: NFR4ES - Um Catálogo de Requisitos Não-Funcionais para Sistemas Embarcados. [1]

Descrição: [1]

  • Satisfeito: Reflete que um requisito não funcional tem um impacto positivo na realização de outro requisito, resultando em contentamento.
  • Fracamente satisfeito: Indica uma relação de impacto positivo, porém menos pronunciada do que a condição de "satisfeito".
  • Negado: Demonstra que um requisito não funcional prejudica adversamente outro requisito, invalidando ou contradizendo sua realização.
  • Fracamente negado: Similar à notação "negado", mas com uma relação de negação mais suave.
  • Conflitante: Indica uma relação de conflito entre requisitos não funcionais, sugerindo que esses requisitos possuem aspectos tanto positivos quanto negativos que entram em choque.
  • Indeterminado: Refere-se a uma relação incerta ou desconhecida entre requisitos não funcionais, geralmente quando há informações insuficientes para determinar o impacto de um requisito sobre o outro.

NFR

Foram feitos 3 tipos de NFR: Portabilidade, Interoperabilidade e Segurança.

NFR-1 Portabilidade

Requisito de Portabilidade

A tabela 3 lista os requisitos não funcionais ligados à portabilidade.

ID Requisito
RNF01 Deve ser possível obter o aplicativo em qualquer sistema operacional
RNF06 O Skoob deve ser capaz de se adaptar a diferentes tamanhos de tela e resoluções
Tabela 3: Requisito de Portabilidade, Autor(a): Shaíne e Ana, 2023

Sem Propagação

A figura 3 apresenta o SIG (Softgoal Interdependency Graph) de portabilidade sem propagação. [2]

image
Figura 3: NFR-1 Portabilidade, Autor(a): Shaíne e Ana, 2023

Com Propagação

A figura 4 apresenta o SIG (Softgoal Interdependency Graph) de portabilidade com propagação. [2]

image
Figura 4: NFR-1 Portabilidade com Propagação, Autor(a): Shaíne e Ana, 2023

Cartões de Especificação

As tabelas 4 e 5 apresentam o cartão de especificação dos requisitos não funcionais relacionados à portabilidade.

Classificação Multiplataforma / Portabilidade
Descrição O aplicativo deve ser acessível em diversos sistemas operacionais.
Justificativa O aplicativo deve estar disponível em várias plataformas, como iOS e Android, para garantir que os usuários possam acessar suas notas em qualquer dispositivo.
Origem do requisito RNF01
Critério de aceitação Recurso financeiro disponivel.
Prioridade Alta prioridade. Fonte: TLS
Conflito Custo elevado.
Historia 01 de nov. 2023
Tabela 4: Cartão de Especificação - Sistema Operacional, Autor(a): Shaíne, 2023
Classificação Multiplataforma / Portabilidade
Descrição O Skoob deve ser capaz de se adaptar a diferentes tamanhos de tela e resoluções, proporcionando uma experiência de uso consistente e de alta qualidade em dispositivos de diferentes modelos e fabricantes.
Justificativa A adaptação a diferentes tamanhos de tela e resoluções é essencial para garantir uma experiência de usuário satisfatória, desde smartphones até tablets. Isso permite que os usuários desfrutem do Skoob em seus dispositivos preferidos, sem comprometer a usabilidade.
Origem do requisito RNF06
Critério de aceitação O aplicativo deve ser testado em uma variedade de dispositivos com diferentes tamanhos de tela e resoluções, e não deve apresentar problemas de usabilidade ou layout em nenhum deles.
Prioridade Média prioridade. Fonte: TLS
Conflito Pode haver desafios técnicos na implementação da adaptação a diferentes tamanhos de tela, especialmente em dispositivos muito pequenos ou com resoluções muito baixas. No entanto, a prioridade é garantir uma experiência consistente em todas as plataformas.
Historia 04 de nov. 2023
Tabela 5: Cartão de Especificação - Portabilidade, Autor(a): Ana, 2023

NFR-2 Interoperabilidade

Requisito de Interoperabilidade

A tabela 6 lista os requisitos não funcionais ligados à interoperabilidade.

ID Requisito
RNF02 Deve ser possível fazer cadastro/login com as credenciais do Facebook
RNF05 O Skoob deve ser capaz de interoperar com outras plataformas de redes sociais, permitindo aos usuários compartilhar conteúdo.
Tabela 6: Requisito de Interoperabilidade, Autor(a): Shaíne e Ana, 2023

Sem Propagação

A figura 5 apresenta o SIG (Softgoal Interdependency Graph) de interoperabilidade sem propagação. [2]

image
Figura 5: NFR-2 Interoperabilidade, Autor(a): Shaíne e Ana, 2023

Com Propagação

A figura 6 apresenta o SIG (Softgoal Interdependency Graph) de interoperabilidade com propagação. [2]

image
Figura 6: NFR-2 Interoperabilidade com Propagação, Autor(a): Shaíne e Ana, 2023

Cartões de Especificação

As tabelas 7 e 8 apresentam o cartão de especificação dos requisitos não funcionais relacionados à interoperabilidade.

Classificação Interoperabilidade
Descrição As senhas dos usuários devem atender aos seguintes critérios: conter no mínimo um número, pelo menos uma letra maiúscula e pelo menos um caractere especial.
Justificativa Esses critérios de senha são necessários para aumentar a segurança das contas de usuário, tornando mais difícil para os invasores adivinharem ou quebrarem senhas. Garantir que esse requisito seja atendido é essencial para proteger a privacidade e os dados dos usuários.
Origem do requisito RNF03
Critério de aceitação O sistema deve validar todas as senhas inseridas pelos usuários para garantir que elas atendam aos critérios de pelo menos um número, uma letra maiúscula e um caractere especial.
Prioridade Alta prioridade. Fonte: TLS
Conflito Pode haver resistência dos usuários que não estão acostumados a criar senhas mais complexas. No entanto, a segurança é uma prioridade.
Historia 01 de nov. 2023
Tabela 7: Cartão de Especificação - Interoperabilidade, Autor(a): Shaíne, 2023
Classificação Interoperabilidade
Descrição O Skoob deve ser capaz de interoperar com outras plataformas de redes sociais, permitindo aos usuários compartilhar conteúdo, de forma integrada e sem problemas.
Justificativa Esse requisito visa melhorar a experiência do usuário, permitindo que eles compartilhem informações sobre livros e interajam com outras plataformas sociais. Isso aumentará a visibilidade do Skoob e promoverá a interação dos usuários.
Origem do requisito RNF05
Critério de aceitação O sistema deve permitir que os usuários compartilhem conteúdo do Skoob em outras plataformas de redes sociais, como Facebook, Twitter, Instagram, entre outras.
Prioridade Média prioridade. Fonte: TLS
Conflito Pode haver desafios técnicos na integração com diferentes plataformas de redes sociais, mas os benefícios de interoperabilidade são significativos.
Historia 04 de nov. 2023
Tabela 8: Cartão de Especificação - Interoperabilidade, Autor(a): Ana, 2023

NFR-3 Segurança

A tabela 9 lista os requisitos não funcionais ligados à segurança.

Requisito de Segurança

ID Requisito
RNF03 A senha deve conter no mínimo um número uma letra maiúscula e um caracter especial
RNF04 Os dados do usuário devem ser guardados de forma eficaz, impendindo o vazamento dos mesmos
Tabela 9: Requisito de Segurança, Autor(a): Shaíne e Ana, 2023

Sem Propagação

A figura 7 apresenta o SIG (Softgoal Interdependency Graph) de segurança sem propagação. [2]

image
Figura 7: NFR-3 Segurança, Autor(a): Shaíne e Ana, 2023

Com Propagação

A figura 7 apresenta o SIG (Softgoal Interdependency Graph) de segurança com propagação. [2]

image
Figura 8: NFR-3 Segurança com Propagação, Autor(a): Shaíne e Ana, 2023

Cartões de Especificação

As tabelas 10 e 11 apresentam o cartão de especificação dos requisitos não funcionais relacionados à segurança.

Classificação Segurança
Descrição As senhas dos usuários devem atender aos seguintes critérios: conter no mínimo um número, pelo menos uma letra maiúscula e pelo menos um caractere especial.
Justificativa Esses critérios de senha são essenciais para aumentar a segurança das contas de usuário. A inclusão de um número, uma letra maiúscula e um caractere especial torna as senhas mais robustas, reduzindo o risco de violações de segurança e acessos não autorizados.
Origem do requisito RNF03
Critério de aceitação O sistema deve validar todas as senhas inseridas pelos usuários para garantir que elas atendam aos critérios de pelo menos um número, uma letra maiúscula e um caractere especial.
Prioridade Alta prioridade. Fonte: TLS
Conflito Alguns usuários podem achar esse requisito de senha complexo ou difícil de lembrar, mas a segurança é fundamental.
Historia 01 de nov. 2023
Tabela 10: Cartão de Especificação - Segurança, Autor(a): Shaíne, 2023
Classificação Segurança
Descrição Os dados do usuário devem ser armazenados de forma eficaz para evitar qualquer vazamento de informações.
Justificativa Garantir a eficácia no armazenamento dos dados é crucial para proteger a privacidade e a segurança dos usuários, prevenindo vazamentos indesejados.
Origem do requisito RNF04
Critério de aceitação O sistema deve implementar práticas de segurança robustas para garantir que os dados do usuário sejam protegidos contra acessos não autorizados ou vazamentos.
Prioridade Alta prioridade. Fonte: TLS
Conflito Medidas de segurança adicionais podem aumentar a complexidade do sistema, mas são essenciais para proteger a integridade dos dados.
Historia 04 de nov. 2023
Tabela 11: Cartão de Especificação - Segurança, Autor(a): Ana, 2023

Conclusão

Com a aplicação do NFR framework ao Skoob, através da análise dos softgoals, foi estabelecida uma hierarquia de prioridades, garantindo que os aspectos como segurança, portabilidade e interoperabilidade sejam devidamente atendidos acerca dos requisitos não funcionais, permitindo a definição de critérios de aceitação específicos para cada requisito, assegurando que as metas de qualidade identificadas na Especificação Suplementar sejam alcançadas de forma eficaz, resultando em uma experiência mais segura e eficiente para os usuários.

Referências

[1] 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: Aprender. Acesso em: 1 nov. 2023.
[2] Requisitos Não-Funcionais. [s.l.: s.n., s.d.]. Disponível em: Requirements Engineering Introduction. Acesso em: 1 nov. 2023.

Histórico de versão

Versão Data Data prevista de revisão Descrição Autor(es) Revisado
1.0 01/11/2023 02/11/2023 Criação da documentação Shaíne
1.1 02/11/2023 03/11/2023 Atualização e correção Ana Caroline
1.2 04/11/2023 05/11/2023 Incrementando o artefato Ana Caroline
1.3 03/12/2023 04/12/2023 Correções Ana Caroline

Revisão

Data de Revisão Cobertura de Versões Técnica Revisor(es)
02/11/2023 1.0 Revisão estática Ana Rocha
06/11/2023 1.2 Revisão estática Shaíne
26/11/2023 Todas até a data desta revisão Revisão por inspeção Yago Passos e Rafael Amancio