Glossário: Requisito não-funcional

« retornar para home do glossário

Um requisito não funcional corresponde a um conjunto de restrições impostas ao sistema que será desenvolvido, estabelecendo, por exemplo, quão atrativo, útil, rápido ou confiável o sistema deve ser  (Fernandes & Machado, 2016).

Exemplos:
Restrições temporais, limitações no processo de desenvolvimento ou adoção de padrões específicos.

Em alguns projetos de desenvolvimento de software é comum existir um requisito como: “o produto deve ser desenvolvido em C++”. Este exemplo representa uma restrição tecnológica que precisa ser seguida durante todo o desenvolvimento do produto.

É importante que a relevância de requisitos desse tipo seja discutida e acordada entre os clientes e a equipe de desenvolvimento, evitando decisões prematuras e precipitadas em relação ao projeto e implementação.

Convém esclarecer que o termo “não-funcional”, quando aplicado a um requisito, não significa que o requisito seja incapaz de desempenhar determinada função. Para evitar essa interpretação equivocada, alguns autores sugerem, como alternativa, o uso das expressões “requisito de qualidade” ou “atributo de qualidade”.

Um requisito não funcional não altera a essência das funcionalidades do sistema.

Por exemplo, nos esportes, a cor da bola não afeta a sua funcionalidade básica, entretanto, provavelmente não é uma boa escolha utilizar uma bola branca em um campo coberto de neve. Geralmente, os requisitos funcionais permanecem os mesmos, independentemente dos requisitos não funcionais.


Fernandes, J. M., & Machado, R. J. (2016). Requirements in engineering projects. Springer International Publishing.

« retornar para home do glossário
#printfriendly a { color: blue !important; text-decoration: underline !important; } #printfriendly i, #printfriendly em { color: purple !important; } @media print { .break-page-before { page-break-before: always !important; } h1 { page-break-before: always !important; font-size: 32px !important; } div.no-page-break-before h1, div.no-break-page-before h1 { page-break-before: avoid !important; } }