W projektach dotyczących wytwarzania systemu określa się wymagania funkcjonalne i niefunkcjonalne. Dziś zajmiemy się tymi drugimi. Wymagania niefunkcjonalne są równie istotne co wymagania funkcjonalne, a ich określenie jest najważniejsze dla zapewnienia optymalnej jakości oprogramowania.
Wymagania niefunkcjonalne – definicja
Ten rodzaj wymagań dotyczy sposobu działania aplikacji, ale nie jego funkcji. Dopóki aplikacja działa bez zarzutu, użytkownicy nie zwracają na nie większej uwagi. Użytkownik oczekuje, iż aplikacja lub program będzie zachowywać się nieawaryjnie i wydajnie.
Przykłady wymagań niefunkcjonalnych
Wydajność – użytkownik korzystający z aplikacji oczekuje natychmiastowej reakcji programu na jego działania. W przypadku opóźnień pogarszają się wrażenia wynikające z obcowania z aplikacją, co wpływa negatywnie na przepływ pracy.
Kompatybilność – niektóre aplikacje muszą współpracować z innymi programami lub systemami w oparciu o konkretne wytyczne. W skład tego wymagania wchodzą: rodzaj systemów, sposoby komunikacji oraz zakres wymienianych informacji.
Użyteczność – wygląd oraz intuicyjność użytkowania aplikacji to ważne kwestie nie tylko z perspektywy łatwości obsługi programu, ale także poprawności wyświetlania na różnych urządzeniach. Pod uwagę bierze się projekt graficzny wraz z kolorystyką, rodzajem fontu i rozmieszczeniem elementów odpowiedzialnych za wywołanie funkcji.
Bezpieczeństwo – praca z danymi wprowadzonymi przez użytkowników wymaga odpowiednich zabezpieczeń. Wszelkie informacje muszą być przechowywane w bezpiecznej formie. Dostęp do nich musi być ograniczony, a przesył lub wymiana danych musi się odbywać z wykorzystaniem bezpiecznych protokołów.
Możliwość skalowania – oprogramowanie lub system muszą być zaprojektowane w taki sposób, aby późniejsze powiększanie liczby użytkowników lub obsługiwanych danych nie wpływało negatywnie na sposób działania aplikacji. Rozbudowa infrastruktury powinna dać możliwość zwiększania przepustowości systemu.
Podział wymagań niefunkcjonalnych
Oprócz wymagań niefunkcjonalnych związanych z aplikacją, istnieją również wymagania niefunkcjonalne związane z firmą i otoczeniem systemowym.
W kontekście firmy będą to wszelkie wymagania wynikające ze strategii biznesowej, kultury firmowej, wartości i standardów oraz jej organizacji.
W przypadku otoczenia systemowego chodzi o wszelkie czynniki zewnętrzne, czyli wymagania prawne, etyczne, interakcje z innym oprogramowaniem oraz kwestie bezpieczeństwa.