Co powinniśmy zapamiętać
Czym są wymagania oprogramowania?
Wymagania oprogramowania, będące uszczegółowieniem wymagań użytkownika stanowią podstawę do opracowania architektury oraz projektu systemu. Aby było to możliwe, wymagania oprogramowania muszą zawierać szczegółowe scenariusze przypadków użycia opisujące interakcje użytkownika z systemem z uwzględnieniem alternatywnych scenariuszy oraz obsługi sytuacji wyjątkowych. Kolejnym niezbędnym elementem jest model danych stworzony na podstawie słownika pojęć zawierającego oprócz definicji pojęć i ich fraz, również atrybuty pojęć oraz relacje pomiędzy nimi. Kompletna specyfikacja powinna zawierać również scenopisy i definicje elementów interfejsu użytkownika, które z jednej strony pozwalają lepiej zrozumieć działanie projektowanego systemu przez jego przyszłych użytkowników, a z drugiej stanowią podstawę projektu interfejsu użytkownika.
Podstawowe składniki wymagań oprogramowania
Scenariusze określają w sposób precyzyjny interakcję użytkownika z systemem prowadzącą do osiągniecia celu biznesowego określonego przez dany przypadek użycia. Scenariusze na poziomie wymagań oprogramowania powinny określać wszystkie zidentyfikowane alternatywne ścieżki wykonania przypadku użycia oraz obsługę sytuacji wyjątkowych (np. spowodowanych wystąpieniem błędu podczas wykonania przypadku). Model danych składa się z elementów reprezentujących wszystkie dane i operacje wykonywane na tych danych zachodzące w opisywanym systemie. Ważne jest, że elementy modelu danych muszą być jednoznacznie oparte na elementach słownika dziedziny tworzonego w ramach wymagań użytkownika. Pojęcia dziedziny problemu zamieniamy w precyzyjnie wyspecyfikowane klasy w modelu danych. W trakcie specyfikacji wymagań oprogramowania powstają także nowe pojęcia – klasy reprezentujące elementy interfejsu użytkownika oraz parametry konfiguracyjne systemu. Scenariusze wraz ze zidentyfikowanymi elementami interfejsu użytkownika są podstawą do stworzenia projektu interfejsu użytkownika oraz scenopisów. Dla kolejnych kroków scenariuszy należy uzgodnić z klientem i zaprojektować wygląd (w tym – treść) poszczególnych elementów ekranowych. Tak zaprojektowane elementy ekranowe układają się w odpowiednią sieć definiującą możliwość nawigacji poprzez interfejs użytkownika oraz realizację celów zadanych przypadkami użycia.
Wymagania oprogramowania w cyklu życia
Punktem wyjścia dla specyfikowania wymagań oprogramowania w cyklu iteracyjnym są przypadki użycia lub historie użytkownika przydzielone do danej iteracji. Dla takiego zestawu wymagań użytkownika tworzone są szczegółowe scenariusze oraz powstają inne produkty na poziomie wymagań oprogramowania. Na podstawie szczegółowych scenariuszy powstają produkty dyscypliny projektowania (np. diagramy opisujące dynamikę działania systemu) oraz docelowy kod. Z drugiej strony, scenariusze dla wymagań są podstawą do stworzenia scenariuszy przypadków testowych. Na tej podstawie sprawdzana jest poprawność wytworzonego kodu. Podstawą do przeprowadzenia testów systemu są precyzyjnie sformułowane wymagania oprogramowania. Na podstawie specyfikacji wymagań można również sformułować instrukcje użytkownika budowanego systemu.
Czym są scenariusze przypadków użycia?
Scenariusz określa w sposób precyzyjny interakcję użytkownika z systemem prowadzącą do osiągnięcia określonego celu biznesowego. Scenariusze na poziomie wymagań oprogramowania powinny określać wszystkie zidentyfikowane alternatywne ścieżki wykonania przypadku użycia oraz obsługę sytuacji wyjątkowych (np. spowodowanych wystąpieniem błędu działania systemu). Scenariusz przypadku użycia powinien spełniać trzy cechy: opisywać sekwencję interakcji między aktorem i systemem, zaczynać się od interakcji aktora (w większości przypadków), kończyć się, kiedy zostanie osiągnięty cel przypadku użycia, lub kiedy na drodze do tego celu nastąpiła porażka.
Notacja dla scenariuszy
Podstawowym typem zdania scenariusza w gramatyce kontrolowanej jest zdanie typu POD(D) (Podmiot, Orzeczenie, Dopełnienie bliższe, opcjonalne Dopełnienie dalsze). Zdanie POD(D) składa się z podmiotu określającego wykonawcę akcji (np. „system”), orzeczenia określającego wykonaną akcję (np. „wybiera”) oraz dopełnień określających pojęcia, których ta akcja dotyczy (np. „plan zajęć”). Zdania sterujące warunkowe pozwalają na kontrolowanie przebiegu scenariuszy przypadków użycia. Użycie zdania warunkowego pozwala na rozgałęzienie sterowania w zależności od spełnienia bądź niespełnienia danego warunku. Zdania powrotu pozwalają na ponowne połączenie rozgałęzionych scenariuszy bądź zdefiniowanie powtarzanych interakcji (pętli). Zdania warunków rozpoczęcia i zakończenia określają dopuszczalny stan system przed i po zakończeniu wykonania scenariuszy. Zdania wywołania określają krok scenariusza, w którym uruchamiany jest inny przypadek użycia. Mogą one mieć charakter zarówno warunkowy, jak i bezwarunkowy. Zdania tego typu możemy na przykład oznaczyć stereotypem «invoke», opcjonalnym warunkiem (w nawiasach kwadratowych) i nazwą przypadku użycia.
Graficzna reprezentacja scenariuszy
Oprócz notacji tekstowej scenariusze mogą być również reprezentowane w formie graficznej. Graficzne reprezentacje scenariuszy niosą ze sobą dokładnie tę samą informację, ale przedstawioną w inny sposób oraz odpowiednią dla różnych grup odbiorców. Jednym ze sposobów przedstawiania scenariuszy przypadków użycia jest prezentacja za pomocą diagramów czynności. Pozwala to na przedstawienie wielu scenariuszy na jednym diagramie, co w wielu przypadkach pomaga lepiej zrozumieć logikę działania danej aplikacji. Taka forma może być pomocna w trakcie analizy możliwych rozgałęzień scenariuszy oraz poszukiwaniu scenariuszy alternatywnych. Wykorzystana została standardowa notacja diagramów czynności języka UML.
Projektowanie graficznego interfejsu użytkownika
Aby poddać projekt graficznego interfejsu ocenie, należy stworzyć jego wizualizację. Tworzenie projektów graficznych interfejsów na papierze jest bardzo niewygodne. Dlatego też współcześnie w powszechnym użyciu są różnego rodzaju narzędzia do projektowania interfejsu użytkownika. Z uwagi na popularność interfejsów WWW, wiele narzędzi tego typu stanowi aplikacje WWW. Wsparcie projektowania graficznego interfejsu użytkownika może być realizowane w różnych typach narzędzi wspomagających proces wytwórczy oprogramowania. Mogą to być odpowiednie moduły dostępne w ramach zintegrowanych środowisk programistycznych. Mamy również możliwość skorzystania z szerokiego wyboru narzędzi desktop, dedykowanych do projektowania interfejsów użytkownika. Proste szkielety interfejsu użytkownika pozwalają również projektować narzędzia do modelowania. Pozwalają one na powiązanie projektu interfejsu użytkownika z modelami dziedziny czy diagramami opisującymi scenariusze.
Tworzenie scenopisów i prototypów
Rolą scenopisu jest wstępna wizualizacja działania systemu w trakcie wykonywania scenariuszy przypadku użycia. Scenopis jest serią „zdjęć ekranu” odpowiadających stanom systemu w trakcie wykonania scenariusza. Poszczególne kroki scenopisu odpowiadają scenom lub przejściom między nimi. Sceny zawierają elementy projektu interfejsu użytkownika. Oprócz kroków scenariusza i projektu wyglądu elementu interfejsu użytkownika, można przedstawić także informacje o pojęciach dziedziny oraz o parametrach konfiguracyjnych. Projektowanie i wykonanie interfejsu związane jest z prototypowaniem oprogramowania. Prototyp jest początkową wersją systemu oprogramowania, która służy do prezentacji założeń, do wypróbowania wariantów projektu, a bardziej ogólnie do coraz lepszego poznawania problemu i jego możliwych rozwiązań. Istnieją dwa rodzaje prototypowania: zamknięte (z porzuceniem) i otwarte (ewolucyjne).