Identificar os requisitos não funcionais

Concluído

Normalmente, os requisitos são referidos como funcionais ou não funcionais. Os requisitos funcionais descrevem o que a solução precisa fazer ou seus comportamentos, e os requisitos não funcionais descrevem os aspectos não comportamentais da solução, como requisitos de desempenho. Este tópico aborda as considerações de requisitos não funcionais.

Frequentemente, os requisitos não funcionais podem depender de fatores que estão fora de seu controle, como a idade dos computadores, a largura de banda da rede, o firewall da rede e o software de segurança da Internet, bem como os responsáveis pela conformidade. Dessa forma, você precisa identificar os fatores que podem afetar sua capacidade de resolver as dependências ou se poderá haver dependências que coloquem em risco sua agenda de entrega. Se o cliente precisar substituir o hardware, provavelmente ocorrerão atrasos. Se o cliente tiver aplicativos legados que exigem um navegador mais antigo e não puderem usar navegadores modernos, suas metas de desempenho serão afetadas. O objetivo é identificar esses problemas no início do projeto. Se não forem abordados com antecedência, o cliente poderá considerar que o aplicativo tem defeitos.

Além disso, essa situação costuma exigir uma sessão de descoberta técnica com a equipe de TI do cliente. É melhor não sobrecarregar a empresa com discussões muito técnicas.

Os requisitos não funcionais capturam os elementos com os quais usuários podem não preocupar diretamente, mas são importantes para dar suporte à arquitetura proposta e à viabilidade operacional da solução. Os requisitos não funcionais geralmente influenciam a adoção dos usuários e a satisfação percebida com a solução. Como os requisitos funcionais, os não funcionais devem ser priorizados e podem ser cumpridos de forma incremental.

Exemplos de tipos de requisitos não funcionais comuns são:

  • Disponibilidade

  • Conformidade/regulamentos

  • Retenção/residência de dados

  • Desempenho (tempo de resposta etc.)

  • Privacidade

  • Tempo de recuperação

  • Segurança

  • Escalabilidade

Exemplos de requisitos não funcionais

Os seguintes exemplos são de requisitos não funcionais bem elaborados:

  • O tempo médio de carregamento de tela para usuários internos que não são móveis será inferior a três segundos.

  • O portal externo precisa ser capaz de atender a 100 usuários simultâneos que estão executando o envio de casos.

Os seguintes exemplos são de requisitos não funcionais mal elaborados:

  • Todas as telas no aplicativo devem carregar o mais rápido possível.

  • O portal externo deve ser capaz de suportar o tráfego de pico.

  • O sistema deve ser recuperável após um desastre.

Viabilidade

Embora todos os requisitos devam ser viáveis, os requisitos não funcionais são geralmente mais específicos. Portanto, é aconselhável ter uma consideração especial à realidade do orçamento e dos recursos. Por exemplo, especificar a disponibilidade de 99,999% quando a disponibilidade do aplicativo essencial é de 99,9% não é real. Além disso, é possível especificar um requisito que seja alcançável com orçamento suficiente, mas ter o orçamento para atender ao requisito.

Mensurar a conformidade

Quando um requisito não funcional envolve uma medida, ela deve especificar como ele será medido e comparado em relação à conformidade. Por exemplo, se você tiver um requisito de tempo de carregamento de três segundos para formulários, determine se isso vale somente para o campus ou se inclui usuários móveis.

Exercício: Encontrar os requisitos não funcionais

Revise a lista de tipos de requisitos não funcionais:

  • Disponibilidade

  • Conformidade/regulamentos

  • Retenção/residência de dados

  • Desempenho (tempo de resposta etc.)

  • Privacidade

  • Tempo de recuperação

  • Segurança

  • Escalabilidade

Determine quais desses requisitos não funcionais provavelmente serão uma preocupação para o Banco Woodgrove. Considere os tipos de preocupações que você pode prever e como resolvê-las. Avalie se pode existir alguma outra preocupação que você ainda não tenha considerado.