O IEEE [IEEE 610.12-1990] define requisito como “Uma condição ou capacidade que deve ser atendida ou possuída por um sistema ou partes de um sistema para satisfazer um contrato, padrão, especificação ou outros documentos formais impostos.” Os requisitos podem existir em diversos níveis da abstração e constituem um dos produtos de trabalho mais importantes de um projeto de desenvolvimento ou manutenção: é a partir dos requisitos que será definido o que construir.
Enquanto os requisitos funcionais estão relacionados ao comportamento do sistema sob o ponto de vista do usuário, os requisitos não funcionais estão voltados para características relacionadas ao software que deverão direcionar importantes decisões.
Enquanto a Análise de Ponto de Função está voltada para o dimensionamento do software a partir das características funcionais, o SNAP (Software Non-functionalAssessmentProcess) também criado pelo IFPUG (InternationalFunction Point UsersGroup) volta-se para o dimensionamento do software a partir dos requisitos não funcionais. Assim como a Análise de Pontos de Função, a técnica SNAP também apresenta procedimentos de análise e cálculos até que se chegue ao tamanho não funcional do software medido em Pontos SNAP (PS).
Recente relatório de Auditoria de Natureza Operacional do Tribunal de Contas da União [TC 002.116/2015-4] apresenta em seu item 73 comentário sobre a utilização do SNAP em organizações componentes da Administração Pública Federal que fizeram parte do escopo da auditoria:
“73 No entanto, tendo em vista o ineditismo e a falta de pessoal qualificado e certificado nessa nova técnica, ainda não se nota adoção disseminada do Snap pelas organizações da amostra avaliada. Somente uma delas tem planos de adotar Snap conjuntamente com Análise de Pontos de Função em suas novas contratações”.