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.

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
- Wymagania niefunkcjonalne
- Rozszerzone wymagania
- Różnica między wymaganiami funkcjonalnymi a wymaganiami niefunkcjonalnymi:
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 | Przykład |