DEV Community

Ortiz de Arcanjo António David
Ortiz de Arcanjo António David

Posted on

1

Requisitos Não Funcionais (RNF)

Durante o desenvolvimento do software nos deparamos com a necessidade de garantir a qualidade do sistema. Ao chegar nesta fase é importante é focar nas propriedades que contribuem para o bom funcionamento do Software.
Requisitos Não Funcionais, também são chamados de Atributos de Qualidade do Sistema, definem como o software será entregue em termos de usabilidade, confiabilidade, segurança, disponibilidade, manutenção e tecnologias envolvidas.

Qual a origem dos Requisitos Não Funcionais?

Os RNF surgem das necessidades dos usuários e na maioria das vezes são difíceis de atingir. Inicialmente os desenvolvedores podem encontrar dificuldades ao garantir a implementação de todos os RNF, porque muitos dos problemas com os requisitos são descobertos na fase implantação do software.
Na medida que software cresce em termos de usuários e de funcionalidades cresce torna-se mais difícil atingir a perfeição desses requisitos.

Como analisar os Requisitos Não Funcionais?

Há várias perguntas que os RNF devem responder de modo a confrontar as funcionalidades do Software, tais como:

  • É Rápido?
  • Fácil de usar, tem uma interface clara?
  • Quanto tempo demora a para exceutar uma operação?
  • Como os dados dos usuários são protegidos?
  • É possível integrar com outros sitemas?
  • Quantos MB consome a memória RAM?
  • Em quais sistemas operacionais pode ser implantado?
  • Funciona em todos os navegadores?
  • Como performa quando o nº de usuários crescer(ex: 1000 usuários)?
  • O que acontece quando tem vários acessos simultâneos?

Observação: Os RNF são críticos porque a ausência deles podem dificultar a utilização do sistema. Exemplo de situações:

  • Se um sistema bancário não cumprir seus requisitos de confiabilidade, o banco pode perder clientes;
  • Se o chat (em tempo real) de umarede social não atender aos requisitos de desempenho perderá usuários;
  • Se um jogo destinado a crianças não tiver boa interface gráfica com funcionalidades acessíveis, facilmente será descartado.

Como Garantir a implementação dos RNF?

Para cada software os requisitos não funcionais podem ser pensados de formas diferentes.
A implementação ser garantida em vários níveis, nas quais podemos destacar:

  • A nível da Arquitectura do Software: Organização dos componentes, Arquitectura em camadas, monolítica, microserviços, servidor de busca, serviços de logs;
  • A nível da implementação (codificação): Mecanismo de autenticação de usuários, desenho da interface gráfica, o Banco de Dados, linguagem de programação escolhido.
  • A nível da implantação (deployment): Servidores, Containers, Sistemas Operativos, links de redundância, integração com outros sistemas ou recuperação de dados.

Exemplo: Neste exemplo vamos descrever aleatoriamente alguns requisitos não funcionais presentes em muitos sitemas e vamos descrever detalhamente a autenticação de usuários.

Estrutura dos Requisitos
Image description

Tabela de Requisitos 1
Image description

Tabela de Requisitos 2
Image description

Descrição da Autenticação
Image description

Hot sauce if you're wrong - web dev trivia for staff engineers

Hot sauce if you're wrong · web dev trivia for staff engineers (Chris vs Jeremy, Leet Heat S1.E4)

  • Shipping Fast: Test your knowledge of deployment strategies and techniques
  • Authentication: Prove you know your OAuth from your JWT
  • CSS: Demonstrate your styling expertise under pressure
  • Acronyms: Decode the alphabet soup of web development
  • Accessibility: Show your commitment to building for everyone

Contestants must answer rapid-fire questions across the full stack of modern web development. Get it right, earn points. Get it wrong? The spice level goes up!

Watch Video 🌶️🔥

Top comments (0)

👋 Kindness is contagious

Engage with a wealth of insights in this thoughtful article, valued within the supportive DEV Community. Coders of every background are welcome to join in and add to our collective wisdom.

A sincere "thank you" often brightens someone’s day. Share your gratitude in the comments below!

On DEV, the act of sharing knowledge eases our journey and fortifies our community ties. Found value in this? A quick thank you to the author can make a significant impact.

Okay