Ogólnie

 

Krótko i na temat. Szukać w internecie informacji na temat inżynierii oprogramowania to jak wiecie szukać czego w czym.

Wymagania funkcjonalne
Stwierdzenia opisujące, jakie usługi ma oferować system, jak ma reagować na określone dane wejściowe oraz jak ma reagować w określonych sytuacjach.

Wymagania niefunkcjonalne
Ograniczenia usług i funkcji systemu obejmujące: ograniczenia czasowe, ograniczenia dotyczące procesu tworzenia, standardy itd.

Wymagania funkcjonalne

 

  • Opisują funkcjonalność lub usługi, które system powinien oferować
  • Zależą od rodzaju tworzonego oprogramowania, spodziewanych użytkowników oprogramowania i rodzaju wytwarzanego systemu
  • Wymagania użytkownika mają zazwyczaj postać ogólną, natomiast systemowe szczegółowo definiują funkcje systemu, wejścia wyjścia wyjątki itd.
Kiedy wymagania nie są precyzyjnie wyrażone powstają problemy. Nieprecyzyjne wymagania są różnie interpretowane przez użytkowników i programistów.

W założeniach wymagania powinny być spójne i pełne
  • Pełność - Powinny opisywać wszystkie wymagane oczekiwania
  • Spójność - Nie powinno być sprzeczności pomiędzy opisywanymi oczekiwaniami
Przykłady wymagań funkcjonalnych
  • Użytkownik będzie mógł przeszukać zbiór wszystkich danych lub wybrany podzbiór.
  • System dostarczy narzędzi do przeglądania dokumentów ze magazynu dokumentów.
  • Każde zamówienie będzie oznaczone unikatowym identyfikatorem (ORDER_ID), który będzie można skopiować do pamięci trwałej konta użytkownika.

Wymagania niefunkcjonalne

 

  • Opisują właściwości i ograniczenia systemu np. niezawodność, czas odpowiedzi, ilość miejsca na dysku.
  • Wymagania stawiane procesowi mogą specyfikować użycie określonego narzędzia, języka programowania lub metodologii projektowej.
  • Wymagania niefunkcjonalne mogą być istotniejsze od funkcjonalnych. Jeśli nie będą spełnione system będzie bezużyteczny.
Klasyfikacja wymagań niefunkcjonalnych:
  • Dotyczące produktu - Wymagania określające jak ma się zachowywać produkt. Np. wydajność, niezawodność
    (Wszelka niezbędna komunikacja między APSE i użytkownikiem powinna dać się wyrazić za pomocą standardowego zestawu symboli Ady)
  • Dotyczące organizacji - Wynikające ze strategii i procedur w firmach np. standardy procesu, wymagana dokumentacja, metoda projektowania.
    (Proces tworzenia systemu i końcowe dokumenty powinny być zgodne z procesem i produktami zdefiniowanymi w XYZCo-SP- STAN-95)
  • Wymagania zewnętrzne - Wynikające z czynników zewnętrznych dla systemu np. interakcja z systemami innych firm, wymagania prawne.
    (System nie powinien ujawniać operatorom żadnych danych osobowych klientów oprócz nazwisk i numerów identyfikacyjnych)