NFR Framework
Introdução
NFR (Non-Functional Requirements) Framework, ou "Framework de Requisitos Não Funcionais", é uma abordagem essencial no desenvolvimento de software e engenharia de sistemas, que visa definir e gerenciar requisitos que não se relacionam diretamente com as funcionalidades específicas de um sistema, mas sim com suas características de desempenho, segurança, usabilidade e outros aspectos que afetam a qualidade do software. Esses requisitos não funcionais são igualmente críticos para o sucesso de um projeto, pois determinam como o sistema deve se comportar em termos de eficiência, confiabilidade e experiência do usuário.
O Framework faz uso do conceito de "softgoal", que se refere a um objetivo desprovido de uma definição clara e critérios de satisfação precisos. Os softgoals desempenham o papel de representar os Requisitos Não-Funcionais e podem estar conectados entre si, refletindo a influência de um softgoal sobre outro.
O NFR Framework opera por meio da construção de um gráfico chamado "Softgoal Interdependency Graph (SIG)", que registra as considerações do desenvolvedor sobre os softgoals e suas interconexões. Esses gráficos contêm informações detalhadas sobre decisões de desenvolvimento, incluindo Requisitos Não-funcionais, alternativas, e as justificativas por trás das decisões. Isso permite a avaliação de requisitos de alto nível para garantir que sejam atendidos.
Existem três tipos de softgoals, eles estão descritos abaixo e suas representações podem ser vistas na figura 1, que foram tiradas da discertação de mestrado de Reinaldo Antônio da Silva: NFR4ES: Um Catálogo de Requisitos Não-Funcionais para Sistemas Embarcados [1]. Essa figura também servirá como legenda para os NFRs que serão apresentados neste documento.
-
Softgoals NFR: Eles 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. Isso inclui operações, processos, estruturas de dados e restrições no sistema para cumprir as necessidades indicadas pelos softgoals.
-
Softgoals de Afirmação: São usados para considerar as características do domínio, como prioridades e carga de trabalho, no processo de tomada de decisão. Eles servem como justificação para apoiar ou negar a priorização e seleção de componentes, facilitando a revisão, a justificação e a melhoria do sistema, bem como o rastreamento das decisões de desenvolvimento.
Figura 1: Representação dos tipos de softgoal.
Fonte: (CHUNG et al., 2000).
O processo de avaliação determina o nível de satisfação dos requisitos não funcionais por meio de um conjunto de decisões. Em outras palavras, o procedimento de avaliação verifica se cada softgoal ou interdependência no SIG foi satisfatoriamente atendido. Isso é alcançado por meio da atribuição de rótulos aos softgoals, com rótulos possíveis incluindo "satisfeito," "parcialmente satisfeito," "não atendido," "parcialmente não atendido," "conflitante" e "indeterminado". Na figura 2, podemos ver um exemplo de cada rótulo, tirado do artigo de Reinaldo Antônio da Silva [1]. Essa figura também servirá como legenda para os NFRs que serão apresentados neste documento.
Figura 2: Rótulos da propagação de impactos.
Fonte: (CHUNG et al., 2000).
Metodologia
Neste documento, serão apresentads 7 NFRs, que foram definidos a partir do nosso documento de especificação suplementar, que por sua vez se baseou no modelo FURPS+, e cada membro da equipe fez o NFR de uma categoria do modelo FURPS+.
Para cada categoria, foi feito um SIG (Softgoal Interdependency Graph), um diagrama da propagação de impactos e um cartão de especificação, que possui informações sobre o NFR, como a descrição, a categoria, os conflitos, a origem, os critérios e outras informações.
NFR Framework
NFR01 - Usabilidade
Usabilidade, segundo Nielsen, é a medida de quão fácil e agradável é usar um sistema para alcançar os objetivos dos usuários.
Softgoal Interdependency Graph
O Softgoal Interdependency Grap do softgoal "Usabilidade" pode ser visto na figura 3.
Figura 3: Softgoal Interdependency Grap do softgoal "Usabilidade".
Fonte: Lucas de Oliveira, 2023
Propagação de Impactos
A propagação de impactos do softgoal "Usabilidade" pode ser visto na figura 4.
Figura 4: Propagação de impactos do softgoal "Usabilidade"
Fonte: Lucas de Oliveira, 2023
Cartão de Especificação
Na tabela 1, temos o cartão de especificação do softgoal "Usabilidade".
Tabela 1: Cartão de Especificação do Softgoal Usabilidade
Tópico | Informação |
---|---|
ID do NFR | NFR01 |
Classificação | Usabilidade |
Descrição | O requisito "Usabilidade" refere-se à capacidade do sistema de entregar uma boa usabilidade para os usuários do aplicativo do "Economia DF". |
Justificativa | Uma boa Usabilidade é fundamental para garantir que os usuários possam utilizar o aplicativo com eficiência e garantir uma satisfação do usuário, aumentando a acessibilidade e por consequência tendo uma redução de erros. |
Origem do Requisito | Especificação suplementar e requisitos elicitados |
Dependências | Não foram identificadas restrições ou dependências específicas, mas a atualização da documentação deve ser planejada e coordenada com as versões do aplicativo. |
Prioridade | O requisito de "Usabilidade" é de alta prioridade, uma vez que influencia diretamente a satisfação do usuário e a eficácia do aplicativo. |
Conflitos | Não foi identificado nenhum conflito. |
História | 04/11/2023 |
Fonte: Lucas de Oliveira, 2023.
NFR02 - Confiabilidade (Reliability)
A "Confiabilidade" em um aplicativo é uma característica crucial que se refere à capacidade do aplicativo de funcionar de maneira consistente, estável e sem falhas. Isso assegura que os usuários possam confiar que o aplicativo estará disponível e operando corretamente sempre que precisarem utilizá-lo. A confiabilidade desempenha um papel essencial para garantir uma experiência positiva do usuário, evitando erros, interrupções inesperadas e mantendo a credibilidade do aplicativo. Como a "Ajuda e Documentação" são recursos essenciais para orientar os usuários, a confiabilidade é o alicerce que sustenta a confiança dos usuários no aplicativo, permitindo que eles utilizem as informações da "Ajuda e Documentação" com segurança e eficácia.
Softgoal Interdependency Graph
O Softgoal Interdependency Grap do softgoal "Confiabilidade (Reliability)" pode ser visto na figura 5.
Figura 5: Softgoal Interdependency Grap do softgoal "Confiabilidade (Reliability)".
Fonte: Lucas Víctor, 2023
Propagação de Impactos
A propagação de impactos do softgoal "Confiabilidade (Reliability)" pode ser visto na figura 6.
Figura 6: Propagação de impactos do softgoal "Confiabilidade (Reliability)"
Fonte: Lucas Víctor, 2023
Cartão de Especificação
Na tabela 2, temos o cartão de especificação do Softgoal "Confiabilidade (Reliability)".
Tabela 2: Cartão de Especificação do Softgoal “Confiabilidade (Reliability)”
Tópico | Informação |
---|---|
ID do NFR | NFR02 |
Classificação | Confiabilidade |
Descrição | O Softgoal "Confiabilidade" refere-se à capacidade do aplicativo de funcionar consistentemente, estável e sem falhas, garantindo uma experiência positiva do usuário e a credibilidade do aplicativo. |
Justificativa | A Confiabilidade é fundamental para manter a satisfação do usuário, evitar interrupções inesperadas e garantir o funcionamento correto do aplicativo. Ela é essencial para a credibilidade do aplicativo. |
Origem do Requisito | Especificação suplementar e requisitos elicitados |
Dependências | Não foram identificadas dependências específicas, mas a manutenção e atualização do aplicativo devem ser coordenadas com as versões lançadas. |
Prioridade | O Softgoal de "Confiabilidade" é de alta prioridade devido ao seu impacto direto na satisfação do usuário e na credibilidade do aplicativo. |
Conflitos | Não foi identificado nenhum conflito com outros requisitos. |
História | 04/11/2023 |
Fonte: Lucas Víctor, 2023
NFR03 - Desempenho
O desempenho em um aplicativo se refere à capacidade do aplicativo de executar suas funções de forma eficaz e eficiente. Ele envolve diversos aspectos, incluindo a velocidade de resposta, a eficiência do uso de recursos, a estabilidade e a capacidade de lidar com cargas de trabalho variáveis.
Softgoal Interdependency Graph
O Softgoal Interdependency Grap do softgoal "Desempenho" pode ser visto na figura 7.
Figura 7: Softgoal Interdependency Grap do softgoal "Desempenho".
Fonte: Gabriel Zaranza, 2023
Propagação de Impactos
A propagação de impactos do softgoal "Desempenho" pode ser visto na figura 8.
Figura 8: Propagação de impactos do softgoal "Desempenho"
Fonte: Gabriel Zaranza, 2023
Cartão de Especificação
Na tabela 3, temos o cartão de especificação do softgoal "Desempenho".
Tabela 3: Cartão de Especificação do Softgoal Desempenho
Tópico | Informação |
---|---|
ID do NFR | NFR03 |
Classificação | Desempenho |
Descrição | O desempenho de um sistema é relacionado ao tempo para executar ações e a rapidez que o usuário realiza suas tarefas.. |
Justificativa | É importante garantir um alto desempenho para que a produtividade do usuário seja elevada. |
Origem do Requisito | Especificação suplementar e requisitos elicitados |
Dependências | Não foram identificadas restrições ou dependências específicas, mas a atualização da documentação deve ser planejada e coordenada com as versões do aplicativo. |
Prioridade | O requisito de "Ajuda e Documentação" é de alta prioridade, uma vez que influencia diretamente a experiência do usuário e a eficácia do aplicativo. |
Conflitos | Não foi identificado nenhum conflito. |
História | 03/11/2023 |
Fonte: Gabriel Zaranza, 2023
NFR04 - Suporte
O suporte de sistema é responsável por ajudar os usuários a resolver problemas, manter sistemas funcionando sem problemas, garantir a segurança e a eficiência dos sistemas de computador, além de treinar usuários e colaborar com equipes de desenvolvimento. É uma função essencial para o bom funcionamento de uma organização que depende de tecnologia da informação.
Softgoal Interdependency Graph
O Softgoal Interdependency Grap do softgoal "Suporte" pode ser visto na figura 9.
Figura 9: Softgoal Interdependency Grap do softgoal "Suporte".
Fonte: Gabriel Rosa, 2023
Propagação de Impactos
A propagação de impactos do softgoal "Suporte" pode ser visto na figura 10.
Figura 10: Propagação de impactos do softgoal "Suporte"
Fonte: Gabriel Rosa, 2023
Cartão de Especificação
Na tabela 4, temos o cartão de especificação do softgoal "Suporte".
Tabela 4: Cartão de Especificação do Softgoal Suporte
Tópico | Informação |
---|---|
ID do NFR | NFR04 |
Classificação | Suporte |
Descrição | O suporte de um sistema é relacionado ao nível de manutenção, testabilidade e correção de bugs que o app tem durante o período em que o software está sendo desenvolvido. |
Justificativa | É importante garantir uma alta manutenção do sistema para a correção de bugs e não causar insatisfação no usuário. |
Origem do Requisito | Especificação suplementar e requisitos elicitados |
Dependências | Não foram identificadas restrições ou dependências específicas, mas a atualização da documentação deve ser planejada e coordenada com as versões do aplicativo. |
Prioridade | O requisito de "Suporte" é de alta prioridade, para que o software possa continuar fornecendo atualizações de melhoria para os usuários. |
Conflitos | Não foi identificado nenhum conflito. |
História | 03/11/2023 |
Fonte: Gabriel Rosa, 2023
NFR05 - Restrições de Design
As "Restrições de Design" em um aplicativo referem-se às limitações ou condições específicas que os designers e desenvolvedores precisam levar em consideração ao criar a interface do usuário e a experiência dos usuários, sendo fundamentais para garantir a usabilidade, acessibilidade e compatibilidade de um aplicativo.
Softgoal Interdependency Graph
O Softgoal Interdependency Graph do Softgoal "Restrições de Design" pode ser visto na figura 11.
Figura 11: Softgoal Interdependency Grap do Softgoal "Restrições de Design".
Fonte: Lucas Ribeiro, 2023
Propagação de Impactos
A propagação de impactos do softgoal "Restrições de Design" pode ser visto na figura 12.
Figura 12: Propagação de impactos do Softgoal "Restrições de Design"
Fonte: Lucas Ribeiro, 2023
Cartão de Especificação
Na tabela 5, temos o cartão de especificação do Softgoal "Restrições de Design".
Tabela 5: Cartão de Especificação do Softgoal “Restrições de Design”
Tópico | Informação |
---|---|
ID do NFR | NFR05 |
Classificação | Restrições de Design |
Descrição | O requisito "Restrições de Design" refere-se a limitações ou condições específicas que devem ser consideradas durante o processo de design de um produto, sistema ou projeto. |
Justificativa | As Restrições de Design são fundamentais pois garantem que um produto ou sistema seja viável, eficiente e de alta qualidade. Elas ajudam a cumprir regulamentações, considerar as necessidades dos usuários e usar recursos de forma sustentável. |
Origem do Requisito | Especificação suplementar e requisitos elicitados |
Dependências | Não foram identificadas restrições ou dependências específicas, mas a atualização da documentação deve ser planejada e coordenada com as versões do aplicativo. |
Prioridade | O requisito de "Restrições de Design" é de alta prioridade devido ao seu impacto direto na viabilidade e na qualidade do produto. |
Conflitos | Não foi identificado nenhum conflito. |
História | 04/11/2023 |
Fonte: Lucas Ribeiro, 2023.
NFR06 - Ajuda e documentação
A "Ajuda e Documentação" em um aplicativo refere-se a um conjunto de recursos elaborados para orientar e fornecer informações aos usuários sobre o funcionamento, características e melhores práticas de uso do aplicativo. Essa seção é fundamental para garantir que os usuários possam usar o aplicativo de forma eficaz, resolver dúvidas e aproveitar ao máximo suas funcionalidades.
Softgoal Interdependency Graph
O Softgoal Interdependency Grap do softgoal "Ajuda e documentação" pode ser visto na figura 13.
Figura 13: Softgoal Interdependency Grap do softgoal "Ajuda e documentação".
Fonte: Izabella Alves, 2023
Propagação de Impactos
A propagação de impactos do softgoal "Ajuda e documentação" pode ser visto na figura 14.
Figura 14: Propagação de impactos do softgoal "Ajuda e documentação"
Fonte: Izabella Alves, 2023
Cartão de Especificação
Na tabela 6, temos o cartão de especificação do softgoal "Ajuda e Documentação".
Tabela 6: Cartão de Especificação do Softgoal Ajuda e Documentação
Tópico | Informação |
---|---|
ID do NFR | NFR06 |
Classificação | Ajuda e Documentação |
Descrição | O requisito "Ajuda e Documentação" refere-se à capacidade de fornecer recursos detalhados para orientar e informar os usuários sobre o aplicativo "Economia DF". |
Justificativa | A qualidade da Ajuda e Documentação é fundamental para garantir que os usuários possam utilizar o aplicativo com eficiência, solucionar problemas e tirar o máximo proveito das funcionalidades. |
Origem do Requisito | Especificação suplementar e requisitos elicitados |
Dependências | Não foram identificadas restrições ou dependências específicas, mas a atualização da documentação deve ser planejada e coordenada com as versões do aplicativo. |
Prioridade | O requisito de "Ajuda e Documentação" é de alta prioridade, uma vez que influencia diretamente a experiência do usuário e a eficácia do aplicativo. |
Conflitos | Não foi identificado nenhum conflito. |
História | 02/11/2023 |
Fonte: Izabella Alves, 2023.
NFR07 - Interfaces
O aplicativo deve possuir uma interface simples, de fácil navegação e padronizada para que os usuários possam atingir seus objetivos. Os requisitos não-funcionais para interfaces foram classificados em três frentes: interface de usuário, interface de hardware e interface de comunicação.
Softgoal Interdependency Graph
Na figura 15 a seguir, é demonstrado o SIG - Softgoal Interdependency Grap - do softgoal "Interfaces".
Figura 15: Softgoal Interdependency Grap do softgoal "Interfaces".
Fonte: Zenilda Vieira, 2023
Propagação de Impactos
Após a definição do SIG, foi feita a análise de propagação de impactos do softgoal "Interfaces". O resultado dessa análise pode ser visto na Figura 16.
Figura 16: Propagação de impactos do softgoal "Interfaces"
Fonte: Zenilda Vieira, 2023
Cartão de Especificação
Para complementar o estudo do NFR Framework, foi construído o cartão de especificação do softgoal "Interfaces", que pode ser visto na Tabela 7 a seguir.
Tabela 7: Cartão de Especificação do Softgoal Interfaces
Tópico | Informação |
---|---|
ID do NFR | NFR07 |
Classificação | Interfaces de usuário, de hardware e de comunicação. |
Descrição | O requisito "Interfaces" refere-se à forma como o usuário interage com o aplicativo, devendo esse apresentar interfaces de usuário de fácil compreensão e navegação, interfaces de hardware em pelo menos duas plataformas: iOS e Android e interfaces de comunicação por dados móveis e wi-fi. |
Justificativa | Esse RNF se justifica pela necessidade do usuário interagir com o aplicativo de forma fácil e intuitiva, que ele tenha poder de escolha entre pelo menos duas palataformas e que o aplicativo esteja sempre disponível, a qualquer momento e em qualquer lugar. |
Origem do Requisito | Especificação Suplementar e Requisitos Elicitados | .
Dependências | Não foram identificados requisistos relacionados a este. |
Prioridade | O requisito de "Interfaces" é de alta prioridade (10), pois afeta a experiência do usuário diretamente. |
Conflitos | Não foi identificado nenhum requisito que entre em conflito com este. |
História | Data de criação: 04/11/2023 |
Fonte: Zenilda Vieira, 2023.
Bibliografia
SERRANO, Maurício; SERRANO, Milene. Requisitos - Aula 17. Local: UnB-FGA, Gama, DF. Apresentação de Power Point. Disponível em: Requisitos - Aula 17. Acesso em: 03 de novembro de 2023.
Referências Bibliográficas
[1] SILVA, Reinaldo Antônio da. NFR4ES: Um Catálogo de Requisitos Não-Funcionais para Sistemas Embarcados. Universidade Federal de Pernambuco, 2019. Disponível em: https://aprender3.unb.br/pluginfile.php/2692835/mod_resource/content/2/DISSERTA%C3%87%C3%83O%20Reinaldo%20Ant%C3%B4nio%20da%20Silva.pdf. Acesso em: 02 de novembro de 2023.
Histórico de Versões
Versão | Data | Descrição | Autor(es) | Revisor(es) |
---|---|---|---|---|
1.0 |
02/11/2023 | Criação do documento | Izabella Alves | Gabriel Rosa |
1.1 |
03/11/2023 | Adicionando "desempenho" | Gabriel Zaranza | Gabriel Rosa |
1.2 |
04/11/2023 | Adicionando "interfaces" | Zenilda Vieira | Gabriel Rosa |
1.3 |
04/11/2023 | Adicionando "Usabilidade" | Lucas de Oliveira | Gabriel Rosa |
1.4 |
04/11/2023 | Adicionando "Usabilidade" | Lucas Ribeiro | Gabriel Rosa |
1.5 |
04/11/2023 | Adicionando "Confiabilidade (Reliability)" | Lucas Víctor | Gabriel Rosa |
1.6 |
04/11/2023 | Adicionando "Suporte" | Gabriel Rosa | Lucas Víctor |