Wymagania określają, co system ma robić oraz jakie cechy jakościowe ma spełniać. Ich szczegółowy opis powstaje przede wszystkim na etapie analizy projektu, ponieważ wtedy poznaje się potrzeby użytkowników, klienta i ograniczenia systemu.
Wymagania funkcjonalne
Wymagania funkcjonalne opisują konkretne funkcje aplikacji, czyli zachowania systemu widoczne dla użytkownika lub innych systemów.
Przykłady:
- użytkownik może się zalogować,
- administrator może dodać nowy produkt,
- system generuje raport sprzedaży,
- aplikacja wysyła e-mail z potwierdzeniem zamówienia.
Można je zapisać w formie przypadków użycia, historyjek użytkownika albo listy funkcji.
Wymagania niefunkcjonalne
Wymagania niefunkcjonalne opisują cechy jakościowe systemu. Nie mówią bezpośrednio, jaką funkcję wykonuje aplikacja, ale określają warunki jej działania.
Przykłady:
- system powinien działać 24/7,
- czas odpowiedzi nie powinien przekraczać 2 sekund,
- aplikacja ma być zgodna z RODO,
- interfejs powinien być responsywny,
- dane użytkowników muszą być szyfrowane.
Znaczenie w projekcie
Poprawne określenie wymagań zmniejsza ryzyko błędów projektowych. Jeśli wymagania są niejasne, zespół może stworzyć system niezgodny z oczekiwaniami klienta. Dlatego etap analizy jest kluczowy przed projektowaniem, implementacją, testowaniem i wdrożeniem.