Qual é a diferença entre requisito funcional e não funcional? [fechadas]

282

Qual é a diferença entre requisitos funcionais e não funcionais no contexto do design de um sistema de software?

Dê exemplos para cada caso.

Omid7
fonte
@TravisJ Novamente, vamos manter o tag em perguntas até terminarmos com a primeira fase de queima de tags.
TylerH

Respostas:

524

Um requisito funcional descreve o que um sistema de software deve fazer, enquanto requisitos não funcionais impõem restrições sobre como o sistema o fará.

Deixe-me elaborar.

Um exemplo de um requisito funcional seria:

  • Um sistema deve enviar um email sempre que uma determinada condição for atendida (por exemplo, um pedido, um cliente se inscrever, etc.).

Um requisito não funcional relacionado ao sistema pode ser:

  • Os e-mails devem ser enviados com uma latência não superior a 12 horas de tal atividade.

O requisito funcional é que descreve o comportamento do sistema , uma vez que refere-se a funcionalidade do sistema. O requisito não funcional elabora uma característica de desempenho do sistema.

Normalmente, os requisitos não funcionais se enquadram em áreas como:

  • Acessibilidade
  • Capacidade, corrente e previsão
  • Conformidade
  • Documentação
  • Recuperação de desastre
  • Eficiência
  • Eficácia
  • Extensibilidade
  • Tolerância ao erro
  • Interoperabilidade
  • Manutenção
  • Privacidade
  • Portabilidade
  • Qualidade
  • Confiabilidade
  • Resiliência
  • Tempo de resposta
  • Robustez
  • Escalabilidade
  • Segurança
  • Estabilidade
  • Capacidade de suporte
  • Testabilidade

Uma lista mais completa está disponível na entrada da Wikipedia para requisitos não funcionais .

Às vezes, requisitos não funcionais são definidos em termos de métricas (ou seja, algo que pode ser medido sobre o sistema) para torná-los mais tangíveis. Os requisitos não funcionais também podem descrever aspectos do sistema que não estão relacionados à sua execução, mas à sua evolução ao longo do tempo (por exemplo, capacidade de manutenção, extensibilidade, documentação, etc.).

LBushkin
fonte
É claro que vou adiar para você, dada sua reputação e histórico profissional de trabalho (que eu examinei antes de escrever isso): seu exemplo de requisitos não funcionais não poderia ser considerado um comportamento? Ou o seu argumento é mais o fato de que requisitos não funcionais descrevem restrições em torno de comportamentos?
Thomas
1
Para esclarecer um pouco minha pergunta (e ela pode não ser respondida): existe uma maneira de elucidar melhor os limites do que constitui comportamento?
Thomas
mais 1 por dar um bom exemplo de sistema de email. :)
Ahtisham
33

requisitos funcionais são as principais coisas que o usuário espera do software, por exemplo, se o aplicativo for um aplicativo bancário, esse aplicativo poderá criar uma nova conta, atualizar a conta, excluir uma conta etc. requisitos funcionais são detalhados e especificados no design do sistema

O requisito não-funcional não é diretamente o requisito do sistema, mas está relacionado à usabilidade (de alguma forma), por exemplo, para um aplicativo bancário, um requisito não-funcional importante estará disponível, o aplicativo deve estar disponível 24/7, sem tempo de inatividade se possível.

pulasthi
fonte
27

Requisitos funcionais

  1. Requisitos funcionais especifica uma função que um sistema ou componente do sistema deve poder executar. Pode ser documentado de várias maneiras. Os mais comuns são descrições escritas em documentos e casos de uso.

  2. Os casos de uso podem ser listas de enumeração textual, bem como diagramas, descrevendo ações do usuário. Cada caso de uso ilustra cenários comportamentais por meio de um ou mais requisitos funcionais. Freqüentemente, no entanto, um analista começará desencadeando um conjunto de casos de uso, dos quais o analista pode derivar os requisitos funcionais que devem ser implementados para permitir que um usuário execute cada caso de uso.

  3. Requisitos funcionais é o que um sistema deve realizar . Pode ser

    • Cálculos
    • Detalhes técnicos
    • Manipulação de dados
    • Processamento de dados
    • Outra funcionalidade específica
  4. Um requisito funcional típico conterá um nome e número exclusivos, um breve resumo e uma justificativa. Essas informações são usadas para ajudar o leitor a entender por que o requisito é necessário e para acompanhar o requisito através do desenvolvimento do sistema.

requisitos não Funcionais

O LBushkin já explicou mais sobre os requisitos não funcionais. Vou acrescentar mais

  1. Requisitos não funcionais são outros requisitos que não os funcionais. Esses são os requisitos que especificam critérios que podem ser usados ​​para julgar a operação de um sistema, em vez de comportamentos específicos .

  2. Os requisitos não funcionais têm a forma de "sistema deve ser" , uma propriedade geral do sistema como um todo ou de um aspecto específico e não uma função específica. As propriedades gerais do sistema geralmente marcam a diferença entre o sucesso ou o fracasso do projeto de desenvolvimento.

  3. Requisitos não funcionais - podem ser divididos em duas categorias principais:

    • Qualidades de execução , como segurança e usabilidade, que são observáveis ​​em tempo de execução.
    • Qualidades de evolução , como testabilidade, capacidade de manutenção, extensibilidade e escalabilidade, incorporadas na estrutura estática do sistema de software.
  4. Os requisitos não funcionais impõem restrições ao produto que está sendo desenvolvido, ao processo de desenvolvimento e especificam restrições externas que o produto deve atender.
  5. O IEEE-Std 830 - 1993 lista 13 requisitos não funcionais a serem incluídos em um documento de requisitos de software.
  1. Requisitos de desempenho
  2. Requisitos de interface
  3. Requisitos operacionais
  4. Requisitos de recursos
  5. Requisitos de verificação
  6. Requisitos de aceitação
  7. Documentos necessários
  8. Requisitos de segurança
  9. Requisitos de portabilidade
  10. Requerimentos de qualidade
  11. Requisitos de confiabilidade
  12. Requisitos de manutenção
  13. Requisitos de segurança

Se um requisito é ou não expresso como um requisito funcional ou não funcional pode depender:

  • no nível de detalhe a ser incluído no documento de requisitos
  • o grau de confiança que existe entre um cliente do sistema e um desenvolvedor do sistema.

Ex. Pode ser necessário um sistema para apresentar ao usuário uma exibição do número de registros em um banco de dados. Este é um requisito funcional. O quão atualizado [atualização] esse número precisa ser é um requisito não-funcional. Se o número precisar ser atualizado em tempo real, os arquitetos do sistema devem garantir que o sistema seja capaz de atualizar a contagem de registros [exibida] dentro de um intervalo aceitável curto do número de registros alterados.

Referências:

  1. Requisito funcional
  2. Requisito não funcional
  3. Quantificação e rastreabilidade de requisitos
Somnath Muluk
fonte
1
bem explicado. Obrigado!
Arslan Ramay
1
Boa resposta com boas referências. Quero apenas adicionar o padrão mais atualizado, pois o IEEE 830-1993 foi substituído. A norma mais recente é a ISO / IEC / IEEE 29148: 2018 "Engenharia de sistemas e software - Processos de ciclo de vida - Engenharia de requisitos" ( iso.org/standard/72089.html )
logoff
8

Requisitos funcionais são aqueles relacionados à funcionalidade técnica do sistema.

requisito não-funcional é um requisito que especifica critérios que podem ser usados ​​para julgar a operação de um sistema em condições particulares, em vez de comportamentos específicos.

Por exemplo, se você considera um site de compras, adicionar itens ao carrinho, navegar em itens diferentes, aplicar ofertas e negócios e fazer pedidos com êxito é um requisito funcional.

Onde, como desempenho do sistema nos horários de pico, o tempo gasto para o sistema recuperar dados do banco de dados, a segurança dos dados do usuário, a capacidade do sistema de lidar se um grande número de usuários fizer login sob requisitos não funcionais.

Maruthi Srinivas
fonte
Excelente resposta.
precisa saber é o seguinte
3

REQUISITOS FUNCIONAIS as atividades que o sistema deve executar

  • negócios usa funções que os usuários executam
  • exemplo de casos de uso, se você estiver desenvolvendo funções necessárias do sistema de folha de pagamento
  • gerar transferências eletrônicas de fundos
  • valores de comissão de cálculo
  • calcular impostos sobre os salários
  • relatar dedução de imposto ao IRS
ABDUL
fonte
2

Eu acho que o requisito funcional é do lado do cliente para o desenvolvedor que diz respeito à funcionalidade do usuário pelo software e o requisito não-funcional é do desenvolvedor para o cliente, ou seja, o requisito não é fornecido pelo cliente, mas é fornecido pelo desenvolvedor para executar o sistema sem problemas, por exemplo segurança, flexibilidade, escalabilidade, disponibilidade, etc.

Rajnor DS
fonte