FURPS[1] é um acrónimo que representa um modelo para classificação de atributos de qualidade de software (conhecidos como requisitos funcionais e não-funcionais):
Funcionalidade - Especifica as funcionalidades que não se relacionam com os casos de uso, nomeadamente: auditoria, reporte, interoperabilidade e segurança.
Usabilidade - Avalia a interface com o utilizador. Possui diversas subcategorias, entre elasː prevenção de erros, estética e design, ajudas, documentação, consistência e padrões.
Reliabilidade (Confiabilidade) - Refere-se à integridade, conformidade e interoperabilidade do software. Os requisitos a serem considerados são: frequência e gravidade de falhas, possibilidade de recuperação, extensão e duração da falha (valorização/sobrevivência) e previsibilidade (estabilidade).
Performance (en) (Desempenho) - Avalia os requisitos de desempenho do software, nomeadamenteː tempo de resposta, consumo de recursos (energia, RAM,CPU, cache, etc.), capacidade e escalabilidade.
Suportabilidade - Os requisitos de suportibilidade agrupam várias características, tais comoː testabilidade, adaptabilidade, manutenibilidade, compatibilidade, configurabilidade, instalabilidade, escalabilidade entre outros.
O modelo, desenvolvido na Hewlett-Packard, foi pela primeira vez publicamente elaborado por Grady e Caswell. FURPS+ agora é amplamente utilizado na indústria de software. O símbolo "+" foi posteriormente adicionado ao modelo após várias campanhas da HP para estender a sigla, de forma a enfatizar vários atributos.
FURPS+
O FURPS+ é uma evolução do FURPS. Este contêm mais categorias para classificar os atributos de qualidade de software, sendo estas:
Restrições de Design - Especifica ou restringe o processo de design do sistema. Exemplos podem incluir:
Padrões de Design;
Processo de Desenvolvimento de Software;
Uso de Ferramentas de Desenvolvimento;
Biblioteca de Classes;
Etc.
Requisitos de Implementação - Especifica ou restringe o código ou a construção de um sistema, através de restrições comoː
Limites de Recursos;
Sistema Operativos;
Etc.
Requisitos de Interface - Especifica ou restringe as funcionalidades inerentes às interfaces de diferentes componentes. A utilização de módulos externos é comum e as restrições a ela associada devem ser contempladas nesta secção.
Requisitos Físicos - Especifica uma restrição física imposta pelo hardware usado para implantar o sistema.
Carter, Donald; Stilwell Baker, Barbara (1992). Concurrent Engineering, The Product Development Environment for the 1990's. [S.l.]: Addision-Wesley. 175 páginas. ISBN0-201-56349-5