Podstawą i
punktem wyjściowym do tworzenia systemu informatycznego są potrzeby jego
przyszłych użytkowników. Potrzeby zwane również wymaganiami określają to, jaki
ma być system i jakie powinien pełnić funkcje. Dzięki zastosowaniu języka UML
wymagania funkcjonalności mogą być zapisane w formie graficznej za pomocą
diagramów przypadków użycia. Możliwość prezentacji graficznej wymagań
dotyczących funkcjonalności jest łatwym i zrozumiałym sposobem komunikacji
między osobami zaangażowanymi w proces budowy systemu.
Istnieją dwa
rodzaje diagramów przypadków użycia. Pierwszy z nich dotyczy biznesowych
przypadków użycia i koncentruje się na procesach biznesowych. Natomiast drugi skupia
się wokół systemowych przypadków użycia i odnosi się do oprogramowania. Post
ten został napisany bardziej w kontekście systemowych przypadków użycia –
biznesowe przypadki użycia będą szerzej omówione przy okazji tematu modelowania
biznesowego.
Diagramy
przypadków użycia są metodą dokumentowania wymagań przyszłych użytkowników
systemu. Dzięki nim możliwe jest określenie funkcjonalności tworzonego systemu
oraz sposobu komunikowania się z nim użytkowników, czyli jego interakcji z
otoczeniem. Na diagramie przypadków użycia przedstawione są przypadki użycia
systemu oraz powiązani z nimi aktorzy. Dzięki temu możliwe jest odczytanie
tego, jakie role pełnia aktorzy wobec systemu - jakie są właściwości systemu
widziane po stronie użytkownika, oraz jakie usługi świadczy system wobec
aktorów. Przypadki użycia są pewnego rodzaju zagregowanymi usługami – mogą być
dekomponowane na mniejsze i bardziej szczegółowe zadania/czynności. Diagramy
przypadków użycia są zazwyczaj doprecyzowywane przez diagramy czynności lub też
diagramy sekwencji.
Oprócz celu podstawowego, którym jest identyfikacja i dokumentacja wymagań, diagramy przypadków użycia realizują również cele dodatkowe. Umożliwiają m.in. analizę dziedziny problemowej badanego obszaru funkcjonalności (jak np. identyfikacja użytkowników) oraz stanowią podstawę do opracowania projektu przyszłego systemu. Pełnią także rolę interfejsu komunikacyjnego pomiędzy interesariuszami – aktorami, inwestorami, twórcami, itp. Diagramy przypadków użycia stanowią też umowne ramy funkcjonalności budowanego systemu, a także są podstawą do opracowywania testów na dalszych etapach rozwoju oprogramowania. Nie opisują rozwiązań technicznych prezentowanych funkcjonalności – wymieniają jedynie jakie usługi są świadczone przez system na rzecz jego aktorów.
Oprócz celu podstawowego, którym jest identyfikacja i dokumentacja wymagań, diagramy przypadków użycia realizują również cele dodatkowe. Umożliwiają m.in. analizę dziedziny problemowej badanego obszaru funkcjonalności (jak np. identyfikacja użytkowników) oraz stanowią podstawę do opracowania projektu przyszłego systemu. Pełnią także rolę interfejsu komunikacyjnego pomiędzy interesariuszami – aktorami, inwestorami, twórcami, itp. Diagramy przypadków użycia stanowią też umowne ramy funkcjonalności budowanego systemu, a także są podstawą do opracowywania testów na dalszych etapach rozwoju oprogramowania. Nie opisują rozwiązań technicznych prezentowanych funkcjonalności – wymieniają jedynie jakie usługi są świadczone przez system na rzecz jego aktorów.
Głównymi elementami notacji stosowanymi na tego typu diagramie są przypadki użycia, aktorzy i związki.
Przypadek użycia
Przypadek użycia (use
case) jest graficzną formą reprezentacji wymagań funkcjonalnych. Określa
zakres funkcjonalności, którą użytkownik uruchamia podczas korzystania z
systemu. Nie informuje o wewnętrznej strukturze i nie narzuca sposobu
implementacji. Przypadek użycia jest zgodny z wymaganiami i określa ciąg akcji
i ich wariantów, które system wykonuje za pośrednictwem interakcji z aktorami.
Jest to kompleksowe działanie, które jak już wspomniano, może być dekomponowane w dalszych etapach
projektowania systemu, np. na diagramach czynności. Funkcjonalność
reprezentowana przez przypadek użycia musi mieć istotne znaczenie jako całość z
punktu widzenia powiązanego z nią aktora.
Każdy
przypadek użycia powinien być opisany przez scenariusze – czyli ciągi kolejno
wykonywanych czynności, służących do realizowania funkcjonalności danego
przypadku użycia. Scenariusze zawierają:
- podstawowy przebieg zdarzeń, czyli bazowy i oczekiwany zestaw czynności, oraz
- alternatywne przebiegi zdarzeń, czyli możliwe warianty zestawu czynności uzależnione od pewnych z góry określonych warunków, wyjątków lub błędów.
Każdy
scenariusz może być opisany za pomocą diagramów czynności w dalszych etapach
opracowywania systemu.
Graficznie
przypadki użycia reprezentowane są za zwyczaj za pomocą elipsy z nazwą wewnątrz
niej. Nazwa przypadku użycia wyrażana jest w postaci wyrażenia w trybie
rozkazującym (np. Rezerwuj miejsce)
lub wyrażenia z rzeczownikiem odczasownikowym (np. Rezerwowanie miejsca). Poniżej możliwe warianty notacji.
Ponadto,
możliwe jest stosowanie nazwy ścieżkowej. W tej sytuacji nazwę przypadku poprzedza
nazwa pakietu, w którym dany przypadek użycia się znajduje.
Aktor
Aktor jest
kategorią pojęciową reprezentującą użytkowników/klientów systemu. Aktor określa
zbiór ról odgrywanych przez użytkowników przypadku użycia w czasie interakcji z
tym przypadkiem użycia. Rozróżniamy dwie kategorie aktorów. Pierwsza z nich
reprezentuje aktorów osobowych, czyli np. osobę, jednostkę organizacyjną firmy,
zespół, dział. Druga kategoria to aktorzy nieosobowi. Zaliczamy do nich systemy
zewnętrzne, bazy danych, różnego typu urządzenia, a także czas determinujący
rozpoczęcie bądź zakończenie jakiegoś procesu. Różne rodzaje aktorów mogą być
stereotypowane graficznie lub słownie, np. <<system>>. Nazwa aktora
jest wyrażana rzeczownikiem w liczbie pojedynczej. Odzwierciedla
najczęściej stanowisko pracownika lub rolę w organizacji, czy też projekcie.
Aktor może wchodzić w interakcję z wieloma (ale co najmniej jednym) przypadkami
użycia. Podobnie jeden przypadek użycia może być w interakcji z wieloma
aktorami. Aktor może uruchomić i realizować funkcjonalność przypadku użycia, a
także dostarczać i odbierać od niego dane. Należy pamiętać, że aktor jest
otoczeniem systemu – nie jego częścią.
W celu
określenia zakresu funkcjonalności budowanego systemu można wykorzystać granicę
obszaru zastosowań. Graficznie jest to rozwiązane za pomocą prostokąta
grupującego przypadki użycia z jednej dziedziny przedmiotowej. Aktorzy
komunikujący się z systemem są umieszczani poza tym prostokątem.
Poza tym,
istnieje również pojęcie diagramu kontekstowego, który przysłania
funkcjonalność systemu i prezentuje go jako całość na zasadzie „czarnej
skrzynki”. Diagram kontekstowy stanowi zestawienie aktorów będących w
interakcji z systemem. Na diagramie nie są widoczne poszczególne przypadki
użycia – aktorzy są połączeni z prostokątem reprezentującym system lub
podsystem. Stosowanie tego typu diagramu może okazać się pomocne w
identyfikacji zbioru aktorów przed sporządzeniem szczegółowego diagramu
przypadków użycia.
Związek
Związek
łączy aktora z przypadkiem użycia oraz przypadki użycia z innymi przypadkami
użycia. Występują cztery kategorie związków:
- asocjacja,
- zależność,
- generalizacja,
- realizacja.
Asocjacja
wskazuje na komunikację pomiędzy aktorem i przypadkiem użycia. Chociaż
domyślnie, komunikacja ta jest dwukierunkowa, może wskazywać także kierunek
nawigacji – kiedy ważne jest pokazanie tego, kto lub co inicjuje interakcję. W
tym przypadku element inicjujący zawsze zna element inicjowany, natomiast
element inicjowany nie zna elementu inicjującego. Na diagramie przypadków
użycia asocjacje nie posiadają nazw. Nie jest to konieczne, ponieważ ważne jest
tutaj jedynie pokazanie odpowiedzialności za wywołanie określonych
funkcjonalności systemu oraz ewentualnie odebranie wyników jego pracy. Przy
asocjacji dopuszczalne jest stosowanie liczności. Liczność określa ile razy
może być wywołana określona funkcjonalność w odniesieniu do jednego aktora.
Zależność
jest rodzajem związku, w którym zmiana jednego elementu wpływa na drugi, będący od niego zależny. Na diagramie przypadków użycia wykorzystane mogą być dwa
rodzaje związków zależności:
- zawieranie,
- rozszerzanie.
Zależność
zawierania stereotypowana słowem <<include>>
dotyczy relacji pomiędzy przypadkiem zawierającym (podstawowym), a przypadkiem
zawieranym. Zawierany przypadek użycia jest uruchamiany wyłącznie przy
odwołaniu się do zawierającego przypadku użycia. Inaczej mówiąc, podstawowy
przypadek użycia rozszerza swoją funkcjonalność o inny przypadek użycia.
Uruchomienie podstawowego, zawierającego przypadku użycia wiąże się z
zainicjowaniem zawieranego przypadku użycia. Zawierany przypadek użycia jest
wykonywany obligatoryjnie. Po zakończeniu się realizacji zawieranego przypadku
użycia, następuje uruchomienie funkcjonalności zawierającego przypadku użycia.
Jeden zawierany przypadek użycia może być wykorzystywany przez inne zawierające
przypadki użycia. Stanowi zakres funkcjonalności wielokrotnego użytku, co
przyczynia się do redukcji złożoności modelu.
Zależność
rozszerzania <<extend>>
również opisuje relację pomiędzy dwoma przypadkami użycia. W tym wypadku,
przypadek podstawowy nazwany jest rozszerzanym przypadkiem użycia. Przypadek
uzupełniający go jest nazywany rozszerzającym przypadkiem użycia.
Funkcjonalność reprezentowana przez rozszerzający przypadek użycia może być
opcjonalnie wykorzystana przy realizacji rozszerzanego przypadku użycia.
Następuje to po spełnieniu określonych warunków. Warunki te zdefiniowane są
jako punkty rozszerzania (extension points).
Punkty rozszerzania umieszczane są zazwyczaj w podstawowym (rozszerzanym)
przypadku użycia. Rzadziej występują w formie notatki połączonej z zależnością
rozszerzania. Po zakończeniu wykonywania funkcjonalności rozszerzającego
przypadku użycia, kontynuowana jest realizacja rozszerzanego przypadku użycia. W
odróżnieniu do zależności zawierania, zależność rozszerzania skierowana jest od
przypadku rozszerzającego do rozszerzanego.
Związek
generalizacji może być stosowany zarówno w przypadku aktorów, jak i przypadków
użycia. Opisuje dziedziczenie cech elementu ogólnego przez element szczegółowy,
który może te cechy rozszerzać. Element
szczegółowy może zastąpić element ogólny. Zależność generalizacji skierowana
jest od elementu szczegółowego do elementu ogólnego.
Realizacja
to związek pomiędzy dwoma elementami modelu, z których jeden określa kontrakt,
a drugi zapewnia wywiązanie się z niego. W odniesieniu do przypadków użycia
pozwala modelować relacje występujące pomiędzy ogólnym, funkcjonalnym opisem
systemu w postaci diagramu przypadków użycia a jego wdrożeniem. W ten sposób
diagram przypadków użycia zostaje jawnie powiązany z innymi diagramami
(statycznymi i dynamicznymi), które zawierają bardziej szczegółowe informacje
dotyczące implementacji. Modele opisujące wdrożenie przypadku użycia określane
są mianem współdziałań (cooperations).
Współdziałania można łączyć w ciągi coraz bardziej szczegółowych za pomocą
zależności ze stereotypem <<refine>>,
która wskazuje, że element docelowy jest bardziej szczegółowy niż element
źródłowy.
Diagram przypadków użycia pozwala na określenie
funkcjonalności systemu i jego otoczenia. Wskazuje co system robi i jaką
funkcjonalność realizuje. Dokumentuje wymagania dotyczące funkcjonalności i użytkowników systemu, co
stanowi dobry punkt wyjścia do kolejnych etapów analizy i projektowania
systemu.
Brak komentarzy:
Prześlij komentarz