W inżynierii oprogramowania ta klasyfikacja jest użyteczna, gdyż tylko wymagania funkcjonalne są bezpośrednio implementowane w programach. Wymagania niefunkcjonalne są kontrolowane przez inne aspekty systemu. Na przykład niezawodność systemu komputerowego zależy od ilości usterek sprzętu, wydajność zależy od wydajności procesora i pamięci. Wymagania niefunkcjonalne mogą być, w pewnych przypadkach, dekomponowane na jedno lub kilka wymagań funkcjonalnych. Pokazuje to model klasyfikacji jakości oprogramowania FURPS. Dodatkowo wymagania niefunkcjonalne, nie posiadające miary, mogą być przekształcane w wymagania procesowe. Na przykład możliwości utrzymania systemu mogą być dekomponowane na ograniczenia składników systemu lub na liczbę wierszy kodu programu.

Dobre wymagania Charakterystyki dobrych wymagań są różnie przedstawiane przez różnych autorów, przy czym każdy generalne wiąże to ogólnymi rozważaniami lub określoną domeną techniczną, której to dotyczy. Następujące charakterystyki są ogólnie akceptowaneBoehm, B.W.