Definicja
Wymaganie niefunkcjonalne (ang. Non-Functional Requirement, NFR) opisuje JAK DOBRZE system ma działać. Nie mówi CO system robi, lecz jakie cechy jakościowe musi spełniać.
Kategorie (wg ISO 25010)
| Kategoria | Opis | Przykład metryki |
|---|---|---|
| Wydajność | Czas odpowiedzi, przepustowość | P95 < 200ms, 10K req/s |
| Bezpieczeństwo | Uwierzytelnianie, szyfrowanie | OAuth 2.0, TLS 1.3 |
| Dostępność | Uptime, redundancja | SLA 99.9% (8.7h downtime/rok) |
| Skalowalność | Obsługa wzrostu | Horizontal scaling do 100K users |
| Użyteczność | UX, dostępność (a11y) | WCAG 2.1 AA, < 3 kliknięcia |
| Niezawodność | Odporność na błędy | Auto-recovery < 30s, backup co 1h |
| Przenośność | Platformy, środowiska | Chrome, Firefox, Safari, mobile |
| Utrzymywalność | Łatwość zmian | Pokrycie testami > 80% |
Dlaczego to ważne?
NFR-y są często pomijane, a to one decydują o: - kosztach utrzymania — źle zaprojektowana architektura = drogi refactoring, - doświadczeniu użytkownika — wolna strona = utrata klientów, - bezpieczeństwie — brak wymogów = luki do exploitacji.
Jak je dokumentować?
Każde NFR powinno mieć: - Metrykę — co mierzymy - Próg — jaka wartość jest akceptowalna - Metodę pomiaru — jak weryfikujemy - Priorytet — Must/Should/Could
Przykład
"Strona główna musi ładować się w mniej niż 2 sekundy przy 1000 jednoczesnych użytkowników, mierzone przez Lighthouse w trybie mobile 4G."