68
Inżynieria
oprogramowania
www.sdjournal.org
Software Developer’s Journal 07/2007
Wykorzystanie przypadków użycia
do modelowania zachowania
R
ozpoczynając budowę systemu informa-
tycznego pierwszym krokiem stanowiącym
podstawę dalszych działań jest próba zro-
zumienia strony klienta, co do zakresu funkcjonal-
ności, jaką ma oferować system. Klient ma pewne
wyobrażenie, co do sposobu funkcjonowania sys-
temu (ang. mental model), a naszym zadaniem
jest zrozumienie, często niejasnych życzeń klienta.
W tym celu tworzony jest model wymagań (ang.
requirements model). W zależności od wielkości
przedsięwzięcia, aby model taki zbudować, nie-
kiedy wystarczy krótka pogawędka, ale często ko-
nieczne jest wielomiesięczne studium wykonalno-
ści. Zawsze jednak dążymy do zrozumienia za-
chowania systemu wykorzystując przypadki użycia
i scenariusze przypadków użycia.
Pochodzenie przypadków użycia
Przypadki użycia były w sposób intuicyjny sto-
sowane w tradycyjnym projektowaniu systemów
informatycznych na długo przed pojawieniem
się metodyk obiektowych i języka UML. Zasłu-
gą Ivar’a Jacobsona jest zarówno wyodrębnie-
nie przypadków użycia, jak i stworzenie meto-
dyki i notacji graficznej dla tego paradygmatu.
Jak często bywa z powszechnie stosowanymi,
lecz nie nazwanymi rzeczami, kariera przypad-
ków użycia w literaturze z zakresu projektowa-
nia systemów informatycznych zaczęła się od
wprowadzenia dla nich specjalnej nazwy, przy-
pisaniu tej nazwie określonej semantyki i roz-
propagowaniu tego pojęcia jako sposobu mode-
lowania zachowania.
Semantyka przypadków użycia
Przypadek użycia jest to pewna nazwana, do-
brze określona interakcja pomiędzy użytkowni-
kiem a systemem komputerowym. Przypadek
użycia odwzorowuje pewną funkcjonalność sys-
temu w taki sposób, w jaki będą ją widzieć jego
przyszli użytkownicy. Jakkolwiek w tym stwier-
dzeniu można podejrzewać banał, rzecz tak
oczywistą, że nie warto o niej mówić, okazuje
się, że dla dużych systemów o wielu złożonych
i wzajemnie powiązanych funkcjach tego rodza-
ju podejście ma ogromny sens. Pozwala ono za-
pomnieć o detalach technicznych (nawet abs-
trahować od architektury) i skoncentrować się
na logice systemu. Podejście do projektowa-
nia od strony przypadków użycia jest uważane
za znacznie bardziej zdrowe od podejść „tech-
nokratycznych”, ponieważ sprzyja ono punktowi
widzenia, w którym centralnym ośrodkiem zain-
teresowania staje się człowiek – przyszły użyt-
kownik systemu. Jak pokazały doświadczenia
wielu projektów, jedną z głównych przyczyn ich
niepowodzeń było zbytnie skoncentrowanie się
projektantów na detalach technicznych, z pomi-
nięciem lub brakiem dostatecznej uwagi dla in-
terakcji użytkownik – system informatyczny.
Reasumując – przypadek użycia można definio-
wać na wiele sposobów. Oto kilka przykładowych
definicji:
• Przypadek użycia to wycinek funkcjonalności,
którą system musi realizować, aby spełnić wyma-
gania;
• Przypadek użycia jest zbiorem ciągów akcji
wykonywanych przez system w celu dostar-
czenia określonemu aktorowi godnego uwagi
wyniku;
• Przypadek użycia to zbiór scenariuszy powiąza-
nych wspólnym celem użytkownika. Przez sce-
nariusz rozumiany jest tu ciąg kroków opisują-
cych interakcje między użytkownikiem a syste-
mem.
Diagramy przypadków użycia są bardzo proste i głów-
nie dzięki temu tak użyteczne. Pomiędzy przypad-
kami użycia można wyróżnić trzy podstawowe za-
leżności.
Zawieranie
• Pozwala na współdzielenie fragmentu funkcjonal-
ności pomiędzy kilkoma przypadkami użycia. Do
relacji zawierania dochodzi wówczas, gdy kilka
przypadków użycia ma wspólną sekwencję po-
dobnych kroków, której nie warto wciąż kopiować
z jednego przypadku użycia do drugiego.
Rozszerzanie
• Pozwala na warunkowe rozszerzenie funkcjo-
nalności przypadku użycia „osadzone” w punk-
cie rozszerzenia. Rozszerzenie przypadku użycia
Rafał Kasprzyk
Autor jest absolwentem Wydziału Cybernetyki WAT,
gdzie od 2 lat zajmuje stanowisko asystenta w Instytu-
cie Systemów Informatycznych. Pracuje w firmie ISO-
LUTION będąc odpowiedzialnym za przygotowywa-
nie, prowadzenie i audyt szkoleń obejmujących analizę
i projektowanie systemów informatycznych z użyciem
notacji UML.
Kontakt z autorem: rafal.kasprzyk@wat.edu.pl
Wykorzystanie przypadków użycia do modelowania zachowania
69
www.sdjournal.org
Software Developer’s Journal 07/2007
może więc wzbogacić go o dodatkowe zachowanie, ale
w takiej sytuacji podstawowy przypadek użycia musi okre-
ślić pewne punkty rozszerzenia, a rozszerzający przypa-
dek użycia może dodać nowe zachowanie tylko w tych
punktach. Przypadek użycia może mieć wiele punktów
rozszerzeń, a rozszerzający przypadek użycia może roz-
szerzać podstawowy przypadek użycia w kilku z tych
punktów. Relacja rozszerzania służy do opisywania opcjo-
nalnego przepływu zdarzeń i pozwala na minimalizację
liczby zmian wprowadzanych do podstawowego przypad-
ku użycia.
Uogólnienie
• Pozwala na zilustrowanie różnych wariantów realizacji te-
go samego przypadku użycia. W istocie jest bardzo po-
dobne do rozszerzania, jest jednak mniej formalne. Re-
lacji uogólnienia używa się wówczas, gdy dany przypa-
dek użycia jest podobny do innego, ale jest nieco obszer-
niejszy. Specjalizowany przypadek użycia może przesło-
nić dowolną część podstawowego przypadku użycia, ale
zawsze powinien dotyczyć osiągnięcia tego samego celu
użytkownika, co podstawowy przypadek użycia. Relacja
uogólniania może być traktowana jako sposób na przed-
stawienie szczególnej realizacji uogólnionego przypadku
użycia.
Do czego wykorzystywane są przypadki użycia
Podejście przypadków użycia ma przede wszystkim na wzglę-
dzie określenie wymagań funkcjonalnych na projektowany
system.
Celem tej metody jest
• Identyfikacja wymagań funkcjonalnych;
• Każdy przypadek użycia powinien opisywać realizację
jakiegoś celu biznesowego opisanego z punktu widze-
nia aktora używającego system;
• Zbiór przypadków użycia stanowi podstawę do umowy
między klientem, a dostawcą;
• Przypadki użycia ułatwiają zadanie ustalenia prioryte-
tów dla wymagań funkcjonalnych;
• Odpowiedź na pytanie, co system ma robić bez określania
sposobu realizacji;
• Umożliwienie interakcji zespołu projektowego z użytkowni-
kami systemu;
• Określenie granic systemu;
• Ustalenie praw dostępu do zasobów;
• Ustalenie składowych systemu i związanego z nimi planu
konstrukcji systemu;
• Przygotowanie podstaw do szczegółowej analizy i projek-
towania:
• Podstawa do identyfikacji klas i obiektów;
• Określenie odpowiedzialności i współpracy obiektów;
• Definicja przepływu komunikatów miedzy obiektami;
• Weryfikacja poprawności i kompletności projektu;
• Dostarczenie podstaw do sporządzenia planu testów
systemu.
Podsumowanie
Przypadki użycia stały się podstawowym elementem współ-
czesnych metodyk wytwarzania oprogramowania. Mówi się,
że dobra metodyka winna być ukierunkowana właśnie na
przypadki użycia. Oznacza to, że przypadki użycia powinny
stanowić podstawowe narzędzie do zbierania i odkrywania
wymagań funkcjonalnych systemu (określanie pożądanego
zachowania systemu), planowania prac w projekcie (podsta-
wowe i stanowiące ryzyko przypadki użycia implementowa-
ne są w pierwszej kolejności), zarządzania projektem oraz do
testowania systemu. Przypadki użycia są niezbędne przy wy-
borze architektury i jej weryfikacji. Wykorzystuje się je rów-
nież do komunikacji wewnątrz zespołu projektowego pracują-
cego nad projektem, jak i przy rozmowie z klientem. n
Bibliografia
• [1] Marin Fowler UML Distilled: A Brief Guide To The Standard
Object Modeling Language, 3rd ed., Addison-Weslay Professio-
nal, 2004;
• [2] Grady Booch, James Rumbaugh, Ivar Jacobson, Unified
Modeling Language User Guide, 2nd ed., Addison-Weslay
Professional, 2005;
• [3] Michał Śmiałek, Zrozumieć UML 2.0. Metody modelowania
obiektowego, Helion, 2005;
• [4] http://www.holub.com/goodies/uml/;
• [5] http://www.agilemodeling.com/essays/umlDiagrams.htm
Rysunek 1
. Diagram przypadków użycia
���������
�������
���������
�������������
�������
����������
������
����������
������
�������������
������������
�������
��������������
�������������
���������
����������
����������
Rysunek 2
. Strona główna holub.com