Analiza wymagań
Analiza wymagań – uzgodnienie wymagań klienta i ich analiza. Celem jest określenie zakresu prac, oszacowanie czasochłonności, kosztów i czasu wykonania.
Wstępna analiza wymagań
oszacować techniczne wymagania (środowisko działania, system operacyjny, wymagania sieciowe)
określić aplikacje, systemy z którymi musimy zintegrować system
wymagania funkcjonalne (spis oczekiwań klienta)
(przykładowe) scenariusze użycia
Wymagania funkcjonalne
Analiza wymagań funkcjonalnych umożliwia zidentyfikowanie i opisanie pożądanego zachowania systemu. Zgodnie z jedną z definicji, wymaganie funkcjonalne to „stwierdzenie, jakie usługi ma oferować system, jak ma reagować na określone dane wejściowe oraz jak ma się zachowywać w określonych sytuacjach. W niektórych wypadkach wymagania funkcjonalne określają, czego system nie powinien robić.
Jakie działania będzie mógł wykonać użytkownik ?
Przykład:
Użytkownik może się zalogować, wydrukować wynik, wyświetlić listę plików.
Po wciśnięciu przycisku OK okno się zamyka i następuje powrót do okna głównego.
Jakie działanie wykonuje system ?
Przykład:
Cyklicznie (codziennie) wysyłana jest poczta do wskazanych użytkowników.
dane wejściowe → działanie → dane wyjściowe
ogólne – lista w języku naturalnym
szczegółowa specyfikacja – dokładna lista, UML, grafy działania (zrobimy w późniejszej fazie projektowania)
Dobra dokumentacja wymagań nie powinna nadmiernie ograniczać projektu aplikacji, to znaczy narzucać konkretnego rozwiązania architektonicznego. Analityk powinien w taki sposób opisywać system, by prezentować dostępne funkcje i możliwości aplikacji bez zbędnego wnikania w szczegóły techniczne.
Podczas opisywania wymagań funkcjonalnych (zarówno listy wymagań, jak i szczegółowej specyfikacji), należy posługiwać się prostymi, jednoznacznymi i zrozumiałymi stwierdzeniami
Wymagania niefunkcjonalne
Ograniczenia w jakich system ma pracować, standardy jakie spełnia, itp.
Jaki ten system powinien być ?
Co jest interfejsem ? (strona www, GUI, konsola, inne aplikacje)
Czy jest przeznaczona dla pojedynczego użytkownika?
Na jakim systemie operacyjnym działa?
Jakie mam wymagania (dodatkowe oprogramowanie, dodatkowy sprzęt)?
Metoda FURPS
Functionality funkcjonalność w rozumieniu zestawu funkcji uwzględniająca również bezpieczeństwo, możliwości systemu
Usability użyteczność jako zestaw wizualnych aspektów oprogramowania, estetyka, dokumentacja
Reliability niezawodność, będąca mierzona np. częstością występowania błędów
Performance wydajność aplikacji określana również jako czas odpowiedzi lub użycie zasobów
Supportability przenosność, rozszerzalność, nie dająca się łatwo przetłumaczyć “wspieralność” uwzględniająca zdolność aplikacji do instalacji na różnych platformach, łatwość testowania itd.
Diagramy użycia
Przykładowy scenariusz uzycia:
Przypadek użycia powinien przedstawiać podstawowy przebieg operacji, tzw. szczęśliwą ścieżkę wydarzeń („basic flow”, „happy flow”)
Przykład:
System prosi Użytkownika o zalogowanie
Użytkownik podaje swój numer identyfikacyjny oraz hasło
System stwierdza poprawność danych
Użytkownik zostaje zalogowany do systemu
Ścieżki alternatywne - sytuacje, gdy nie zachodzi ścieżka optymalna.
Dla punktu 3 może zajść, np.:
Przykład dokumentu
Wprowadzenie – krótki opis celu systemu.
Słownik – definicja wszystkich technicznych i specyficznych terminów użytych w dokumencie.
Modele systemu – (np. graficzny) relacje między elementami systemu i środowiskiem systemu.
O ile uda się już na tym etapie taki model sporządzić. Na początek ogólny model (lub brak modelu).
Wymagania funkcjonalne – powinien się tu znaleźć możliwie pełny spis usług systemu, przy czym nie muszą one jeszcze być opisywane bardzo szczegółowo.
W tej sekcji można również zawrzeć informacje o danych, jakie system będzie przetwarzał:
Opis – krótki opis funkcjonalności.
Wejście – definicja danych wejściowych i ich ewentualnych ograniczeń.
Wyjście – definicja zwracanych rezultatów.
Efekty uboczne – określenie dodatkowych czynności, np. interakcji z innymi funkcjami.
Wymagania niefunkcjonalne – w tej sekcji przede wszystkim należy wypisać ograniczenia wynikające z oczekiwań klienta co do technologii, w której ma to być realizowane.
Dodatkowo można zawrzeć diagramy (przypadki) użycia