FURPS
# FURPS

FURPS é 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.