logo

Wymagania funkcjonalne i niefunkcjonalne

Analiza wymagań to bardzo krytyczny proces, który umożliwia ocenę powodzenia projektu systemu lub oprogramowania. Wymagania ogólnie dzieli się na dwa typy: wymagania funkcjonalne i niefunkcjonalne.

Funkcjonalne i niefunkcjonalne



Zrozumienie i rozróżnienie między tego typu wymaganiami jest niezbędne dla powodzenia każdego projektu. Nasz kompleksowy Kurs projektowania systemów omawia szczegółowo te koncepcje, zapewniając wiedzę i umiejętności potrzebne do skutecznego gromadzenia, dokumentowania i analizowania wymagań.

Ważne tematy dotyczące wymagań funkcjonalnych i niefunkcjonalnych

Wymagania funkcjonalne

Są to wymagania, które użytkownik końcowy wyraźnie stawia jako podstawowe udogodnienia, jakie powinien oferować system. Wszystkie te funkcjonalności muszą być koniecznie włączone do systemu w ramach umowy.



Są one reprezentowane lub wyrażane w formie danych wejściowych, które należy przekazać systemowi, wykonanej operacji i oczekiwanego wyniku. Są to wymagania stawiane przez użytkownika, które można zobaczyć bezpośrednio w produkcie końcowym, w przeciwieństwie do wymagań niefunkcjonalnych.

Java równa się metoda

Przykład:

  • Jakie funkcje musimy zaprojektować dla tego systemu?
  • Jakie przypadki brzegowe musimy uwzględnić w naszym projekcie, jeśli w ogóle?

Wymagania niefunkcjonalne

Są to ograniczenia jakościowe, które system musi spełniać zgodnie z umową projektową. Priorytet lub stopień wdrożenia tych czynników różni się w zależności od projektu. Nazywa się je również wymaganiami niebehawioralnymi. Zajmują się takimi zagadnieniami jak:



  • Ruchliwość
  • Bezpieczeństwo
  • Łatwość konserwacji
  • Niezawodność
  • Skalowalność
  • Wydajność
  • Możliwość ponownego użycia
  • Elastyczność

Przykład:

  • Każde żądanie powinno być przetwarzane z minimalnym opóźnieniem?
  • System powinien być bardzo wartościowy.

Rozszerzone wymagania

Zasadniczo miło jest mieć wymagania, które mogą wykraczać poza zakres Systemu.

Przykład:

  • Nasz system powinien rejestrować wskaźniki i analizy.
  • Monitorowanie zdrowia i wydajności usług.

Różnica między wymaganiami funkcjonalnymi a wymaganiami niefunkcjonalnymi:

Wymagania funkcjonalne

Wymagania niefunkcjonalne

Wymaganie funkcjonalne definiuje system lub jego komponent.

Wymaganie niefunkcjonalne definiuje atrybut jakości systemu oprogramowania.

Określa, co powinien robić system oprogramowania?

Nakłada ograniczenia na to, w jaki sposób system oprogramowania powinien spełniać wymagania funkcjonalne?

Wymagania funkcjonalne są określane przez Użytkownika.

Wymaganie niefunkcjonalne jest określane przez osoby techniczne, m.in. Architekt, liderzy techniczni i programiści.

Jest to obowiązkowe.

Nie jest to obowiązkowe.

Jest przechwytywany w przypadku użycia.

Jest on ujęty jako atrybut jakości.

Zdefiniowane na poziomie komponentu.

Stosowane do systemu jako całości.

Pomaga zweryfikować funkcjonalność oprogramowania.

Pomaga zweryfikować działanie oprogramowania.

Wykonuje się testy funkcjonalne, takie jak system, integracja, kompleksowe, testy API itp.

Przeprowadzane są testy niefunkcjonalne, takie jak wydajność, obciążenie, użyteczność, testy bezpieczeństwa itp.

Zwykle łatwe do zdefiniowania.

Zwykle trudniejsze do zdefiniowania.

Przykład
1) Uwierzytelnianie użytkownika przy każdym logowaniu do systemu.
2) Zamknięcie systemu w przypadku cyberataku.
3) E-mail weryfikacyjny jest wysyłany do użytkownika za każdym razem, gdy rejestruje się on po raz pierwszy w jakimś systemie oprogramowania.

Przykład
1) E-maile powinny być wysyłane z opóźnieniem nie większym niż 12 godzin od takiej aktywności.
2) Przetwarzanie każdego żądania powinno nastąpić w ciągu 10 sekund
3) Strona powinna załadować się w ciągu 3 sekund, gdy liczba jednoczesnych użytkowników przekracza 10000