Czym jest specyfikacja wymagań oprogramowania?
Specyfikacja wymagań oprogramowania to dokument, który przekłada oczekiwania klienta na konkretne informacje potrzebne zespołowi projektowemu i programistom. Opisuje, co system ma robić, w jakich warunkach ma działać oraz jakie ograniczenia techniczne należy uwzględnić.
W pytaniu egzaminacyjnym najlepszą odpowiedzią jest stworzenie szczegółowego dokumentu z funkcjami oraz wymaganiami technicznymi, ponieważ programiści potrzebują jednoznacznych i sprawdzalnych informacji, a nie ogólnych deklaracji klienta.
Co powinna zawierać specyfikacja?
Typowa specyfikacja może obejmować:
- cel systemu i zakres projektu,
- opis użytkowników oraz ich ról,
- wymagania funkcjonalne, czyli funkcje systemu,
- wymagania niefunkcjonalne, np. wydajność, bezpieczeństwo, dostępność,
- wymagania techniczne, np. technologie, integracje, baza danych,
- makiety ekranów wraz z opisami działania,
- kryteria akceptacji, czyli warunki uznania funkcji za poprawnie wykonaną.
Przykład wymagania
Zamiast pisać: „system ma mieć logowanie”, lepiej zapisać:
- użytkownik loguje się za pomocą adresu e-mail i hasła,
- hasło musi mieć minimum 8 znaków,
- po 5 błędnych próbach konto zostaje czasowo zablokowane,
- system wyświetla komunikat o błędnych danych logowania.
Dlaczego to ważne?
Dobra specyfikacja ogranicza nieporozumienia między klientem a zespołem, ułatwia wycenę, planowanie prac, implementację oraz testowanie. Jest podstawą do sprawdzenia, czy gotowa aplikacja spełnia oczekiwania klienta.