1. Wymaganie funkcjonalne – wymaganie specyfikujące i opisujące funkcję, którą moduł lub system musi realizować.
2. Wymaganie niefunkcjonalne – wymaganie, które nie dotyczy funkcjonalności, ale cech oprogramowania, takich jak niezawodność, efektywność, użyteczność, pielęgnowalność.