Specyfikacja wymagań oprogramowania

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

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.