Inżynieria oprogramowania 4 (Przypadki użycia)

background image

Inżynieria oprogramowania

Wykład IV. Przypadki użycia

Politechnika Radomska

background image

O czym będzie ?

definicja przypadków użycia,
tworzenie przypadków użycia,
zawieranie przypadków użycia,
rozszerzanie przypadków użycia,
rozpoczynanie analizy przypadków użycia.
przedstawienie modelu przypadków użycia,
pokazanie związków między przypadkami użycia,
zrozumienie roli diagramów przypadków użycia w

procesie budowania systemu,
tworzenie i stosowanie modeli przypadków użycia,
tworzenie ogólnego obrazu przeglądowego UML-a.

background image

Potrzebny jest obraz

systemu widzianego od

strony użytkownika

Na poprzednich wykładach zajmowaliśmy się głównie

diagramami dającymi statyczny obraz systemu. Teraz pora na

zajęcie

się

diagramami

ukazującymi

perspektywę

dynamiczną i pokazanie, w jaki sposób system i jego klasy

zmieniają się w czasie.
Perspektywa statyczna ułatwia analitykowi komunikowanie

się z klientem. Perspektywa dynamiczna, jak się przekonacie,

pozwala na komunikowanie się z grupą tworzącą

oprogramowanie — z projektantami i z programistami.
To prawda, że klient i twórcy oprogramowania stanowią grupę

osób zainteresowanych systemem i mających wielki wpływ

na jego tworzenie, ale dla dopełnienia obrazu nie możemy

pominąć jeszcze jednego ważnego elementu tej układanki -

użytkownika.

background image

Spróbujemy wyjaśnić

czym są przypadki użycia

Ani perspektywa statyczna, ani dynamiczna nie ilustrują

zachowania systemu z punktu widzenia użytkownika.

Zrozumienie jego punktu widzenia jest sprawą kluczową,

jeżeli chcemy zbudować system przydatny i łatwy w

użyciu, to znaczy taki, który wypełnia żądania

użytkowników i nie sprawia im kłopotu, a może nawet

dostarcza rozrywki.
Modelowanie systemu z punktu widzenia użytkownika

oznacza zajmowanie się przypadkami użycia. Spróbujemy

zatem wyjaśnić, czym są przypadki użycia i do czego służą.
W drugiej części wykładu wyjaśnimy, w jaki sposób

przypadki użycia są przedstawiane na diagramach UML-a.

background image

Przykład - Kupowanie

faksu

Kilka lat temu kupiłem faks. Gdy poszedłem do sklepu, znalazłem

wielki wybór różnego rodzaju urządzeń różnych marek. W jaki

sposób dokonałem wyboru?

– Zastanowiłem się, do czego właściwie ten przyrząd ma służyć.
– Jakie jego funkcje są mi potrzebne?
– Które funkcje są absolutnie niezbędne?
– Czy chcę również kopiować?
– Czy będę łączyć faks z komputerem?
– Czy będę używać faksu jako skanera?
– Czy będę wysyłać faksy tak szybko, że potrzebna będzie funkcja

szybkiego wybierania numerów?

– Czy potrzebna będzie funkcja automatycznego odróżniania

przychodzącego faksu od przychodzącej rozmowy telefonicznej?

background image

Analiza przypadków

użycia

Zawsze, gdy dokonujemy zakupów, przechodzimy przez tego

rodzaju proces - poza przypadkami, gdy bez namysłu

odpowiadamy na wewnętrzny impuls.
Wszystkie rozważania tego rodzaju są formą analizy

przypadków użycia.
Pytamy siebie, w jaki sposób chcemy używać danego produktu

lub systemu, na który zamierzamy wydać sporą sumę, tak aby

później spełniał nasze potrzeby.
Ważne jest, abyśmy zdawali sobie sprawę z tego, jakie

naprawdę są nasze potrzeby i wymagania.
Dokonanie tego jest sprawą zasadniczą w fazie analizy

systemu, który ma powstać. Sposób korzystania z systemu

przez użytkowników określa, jak należy go projektować i

budować.

background image

Przypadek użycia,

scenariusz, aktorzy

Przypadek użycia to konstrukcja, która pomaga analitykowi

wspólnie z użytkownikami określić, jak system ma być

używany.
Zbiór przypadków użycia opisuje system za pomocą pojęć

określających, co użytkownicy zamierzają z nim robić.
Myśl o przypadku użycia jako o zbiorze scenariuszy

opisujących używanie systemu.
Każdy scenariusz to ciąg zdarzeń.
Każdy ciąg jest inicjowany przez osobę, inny system, jakieś

urządzenie lub upływ czasu.
Byty, które inicjują ciąg zdarzeń, nazywamy aktorami.
Rezultatem zainicjowanego ciągu zdarzeń jest coś, co służy

aktorowi, który dokonał inicjacji, albo innemu aktorowi.

background image

Przypadki użycia —

dlaczego są ważne?

Diagram klas jest doskonałym narzędziem skłaniającym klienta

do mówienia o systemie z jego punktu widzenia, zaś przypadki

użycia pobudzają do mówienia użytkowników i pozwalają

spojrzeć na system z ich perspektywy.
Użytkownikom często trudno wyrazić słowami, w jaki sposób

zamierzają

korzystać

z

systemu.

Ponieważ

tradycyjnie

tworzeniem systemów rządził raczej przypadek, wstępna analiza

była zwykle krótka. Użytkownicy bywają zdumieni, gdy ktoś pyta

o ich punkt widzenia.
Podstawą omawianego działania jest skłonienie użytkowników do

udziału we wczesnym stadium analizowania i projektowania

systemu. Zwiększa to prawdopodobieństwo, że system

ostatecznie stanie się przydatnym i przyjaznym narzędziem, a

nie

niezrozumiałym

i

niepotrzebnym

ludziom

biznesu

monumentem wyspecjalizowanej wiedzy.

background image

Przykład: automat do

sprzedaży napojów

gazowanych

Załóżmy, że mamy zaprojektować automat do sprzedaży

napojów

gazowanych.

Aby

poznać

punkt

widzenia

użytkowników, przeprowadzamy z nimi wywiady i staramy się

dowiedzieć, w jaki sposób wyobrażają sobie własną interakcję

z tym urządzeniem.
Ponieważ głównym zadaniem automatu jest umożliwienie

użytkownikowi kupienia puszki napoju, jest prawdopodobne,

że użytkownicy szybko powiedzą nam, że powinniśmy się

skupić na zbiorze scenariuszy - mówiąc inaczej: przypadku

użycia - który można nazwać „Kup napój”.
Przyjrzymy się zatem możliwym scenariuszom tworzącym ten

przypadek użycia. Pamiętajmy, że podczas rzeczywistego

tworzenia systemu te scenariusze pojawiają się w wyniku

rozmów z użytkownikami.

background image

Scenariusz „Kupuj napój”

Przypadek

użycia

określa

zbiór

scenariuszy wykonujących dla aktora

jakieś pożyteczne zadanie.
W tym przykładzie zajmujemy się

przypadkiem użycia „Kup napój”
W tym przypadku użycia aktorem jest

osoba, która chce kupić puszkę napoju

gazowanego.
Osoba ta inicjuje scenariusz, wrzucając

monetę do maszyny. Potem dokonuje

selekcji. Jeżeli wszystko przebiegnie

bez zakłóceń i w automacie jest choć

jedna puszka, klient otrzyma to, co

chciał.

background image

Inne aspekty scenariusza

Oprócz powyższej sekwencji kroków należy
wziąć pod uwagę inne aspekty scenariusza.

– Jakie

warunki

początkowe

motywują

kupującego do zainicjowania scenariusza z
przypadku użycia „Kup napój”? Najbardziej
oczywistą przyczyną jest pragnienie.

– Jakie są warunki końcowe wykonania kolejnych

kroków scenariusza? To również jest oczywiste:
dana osoba ma puszkę napoju.

background image

Inne możliwe scenariusze

Czy zbiór scenariuszy tworzących przypadek
użycia „Kup napój” składa się tylko z tego jednego
ciągu zdarzeń? Na myśl natychmiast przychodzą
inne. Może się zdarzyć, że w automacie brakuje
puszek, których potrzebuje użytkownik.
Może się zdarzyć, że kupujący nie ma dokładnie
takiej sumy, jaką powinien wrzucić do automatu.
Jak powinniśmy zaprojektować automat do
sprzedaży napojów gazowanych, aby realizował
różne scenariusze?

background image

Zajmijmy się scenariuszem „brak

towaru” , który również należy do

przypadku użycia „Kup napój”.

Myśl o nim jako o alternatywnym ciągu zdarzeń. Kupujący

inicjuje przypadek użycia przez wrzucenie pieniędzy do

automatu.
Potem dokonuje wyboru. W automacie nie ma ani jednej

puszki wybranego rodzaju, więc wysyła on do kupującego

komunikat informujący o braku. Komunikat ten powinien

zawierać propozycję wybrania puszki innego rodzaju.
Automat powinien także udostępnić kupującemu możliwość

zwrotu pieniędzy. W tym momencie kupujący żąda zwrotu

pieniędzy lub wybiera inny rodzaj puszki, którą automat

następnie dostarcza (jeżeli ją ma).
Warunkiem początkowym jest spragniony kupujący, a

warunkiem końcowym — kupujący z puszką napoju lub ze

zwróconymi pieniędzmi.

background image

Teraz przyjrzyjmy się

scenariuszowi

„niewłaściwa suma

pieniędzy”.

Również w tym przypadku kupujący inicjuje przypadek użycia

przez wrzucenie pieniędzy i dokonanie wyboru.
Załóżmy, że w automacie jest odpowiednia puszka. Jeżeli automat

ma zapas odpowiednich monet do rozmienienia wrzuconej

monety na drobne, wyda kupującemu puszkę i wypłaci resztę.
Jeżeli automat nie ma odpowiednich monet do wydania reszty,

zwróci pieniądze i wyśle komunikat z prośbą o wrzucenie

odpowiedniej sumy.
Warunek wstępny nie zmienił się. Warunek końcowy to puszka

wody i wydana reszta lub zwrot wrzuconych pieniędzy.
Inną możliwością jest, że zaraz po wyczerpaniu pieniędzy na

wydawanie reszty wyświetlany jest komunikat o konieczności

wrzucania dokładnie odliczonej sumy pieniędzy. Komunikat ten

znikałby dopiero po uzupełnieniu zapasu monet.

background image

Dodatkowe przypadki

użycia

Przyjrzeliśmy się automatowi do wody sodowej z

punktu widzenia tylko jednego użytkownika -

kupującego, ale na scenie pojawiają się inni

użytkownicy.
Dostawca musi napełniać automat puszkami z wodą

sodową, a inkasent (może to być ta sama osoba)

musi odbierać zebrane pieniądze.
Oznacza to, że musimy stworzyć przynajmniej dwa

dodatkowe przypadki użycia „Dostarcz towar” i

„Zainkasuj pieniądze”. Ich szczegóły staną się jasne

po przeprowadzeniu wywiadów z dostawcą i

inkasentem.

background image

Weźmy pod uwagę

przypadek użycia

„Dostarcz towar”

Dostawca inicjuje ten przypadek użycia po upływie

pewnego określonego czasu (powiedzmy tygodnia lub

dwóch).
Przedstawiciel

dostawcy

odbezpiecza

automat

(prawdopodobnie otwiera zamek, ale to sprawa

implementacji), otwiera drzwi i wypełnia przedziały

puszkami odpowiedniego rodzaju.
Uzupełnia także zapas pieniędzy do wydawania reszty.

Potem zamyka drzwi automatu i zabezpiecza je.

Warunkiem

początkowym

jest

tutaj

upłynięcie

odpowiedniego czasu, a warunkiem końcowym -

przywrócenie automatowi możliwości sprzedawania

puszek.

background image

Przypadek „Zainkasuj

pieniądze”

W przypadku użycia „Zainkasuj pieniądze”

inkasent również rozpoczyna działanie wskutek

upływu ustalonego czasu.
Najpierw wykonuje tę samą sekwencję kroków co

dostawca w przypadku użycia „Dostarcz towar”,

tzn. odbezpiecza automat i otwiera drzwi.
Potem wyjmuje z automatu pieniądze.
Kolejne kroki są znów takie same jak w przypadku

użycia „Dostarcz towar”. Warunek początkowy to

upływ wyznaczonego czasu, a warunek końcowy

to pieniądze w rękach inkasenta.

background image

Określając przypadki

użycia nie zajmujemy się

ich implementacją

W naszym przykładzie nie skupialiśmy się na tym, co

znajduje się w środku automatu do sprzedaży napojów

gazowanych. Nie interesuje nas, jak działa mechanizm

chłodzący i co urządzenie robi z wrzucanymi pieniędzmi.
Próbujemy jedynie spojrzeć na urządzenie z perspektywy

kogoś, kto ma go użyć. Celem jest otrzymanie zbioru

przypadków

użycia,

który

przekażemy

projektantom

automatu

sprzedającego

napoje

gazowane

i

jego

konstruktorom.
Aby rozszerzyć nasz zbiór przypadków użycia, zastanówcie

się, czego jeszcze mogą potrzebować kupujący napój, jego

dostawcy i inkasenci pieniędzy. Jeżeli zbiór będzie pełny,

powstanie

automat

zadawalający

wszystkie

grupy

użytkowników.

background image

Zawieranie przypadków

użycia

Oba przypadki użycia: „Dostarcz towar” i „Zainkasuj pieniądze”

częściowo zawierają te same sekwencje kroków. Oba zaczynają się od

odbezpieczenia automatu i otwarcia drzwi i kończą zamknięciem drzwi i

zabezpieczeniem automatu. Czy możemy wyeliminować powtarzanie się

tych samych kroków w różnych przypadkach użycia?
Tak. Rozwiązaniem jest wydzielenie powtarzających się ciągów zdarzeń i

uznanie ich za oddzielne przypadki użycia. Połączymy kroki „odbezpiecz

automat” i „otwórz drzwi” w przypadek użycia „Udostępnij wnętrze”, zaś

kroki „zamknij automat” i „zabezpiecz drzwi” w przypadek „Zablokuj

dostęp”.
Mając w ręku te dwa nowe przypadki użycia, przypadek „Dostarcz towar”

rozpoczynamy od przypadku „Udostępnij wnętrze”, potem wykonujemy

te same kroki co poprzednio i kończymy przypadkiem „Zablokuj dostęp”.
Jak widać, przypadki użycia „Dostarcz towar” i „Zainkasuj pieniądze”

zawierają w sobie inne przypadki użycia. Tę technikę wielokrotnego

używania nazywamy zawieraniem przypadków użycia.

background image

Rozszerzanie przypadków

użycia

Nie tylko zawieranie umożliwia wielokrotne korzystanie z przypadków
użycia. Czasami tworzymy nowy przypadek przez dodanie kilku kroków
do już istniejącego.
Wróćmy do przypadku „Dostarcz towar”. Przypuśćmy, że przed
włożeniem puszek do automatu pracownik dostawcy notuje, które
rodzaje sprzedają się dobrze, a które źle. Następnie przed ponownym
napełnieniem pojemników osobnik ten opróżnia pojemniki z puszkami
napojów, które się źle sprzedają i wkłada tam puszki firm, które
zdobyły sobie popularność na rynku. Potem na przedniej ścianie
automatu umieszcza informacje o zmianie asortymentu.
Po dodaniu nowych kroków do „Dostarcz towar” otrzymujemy nowy
przypadek użycia, który możemy nazwać „Dostarcz towar według
wyników sprzedaży”. Ten nowy przypadek będzie rozszerzeniem
przypadku oryginalnego, a zastosowaną technikę nazywamy
rozszerzaniem przypadków użycia.

background image

W świecie rzeczywistym

przystąpienie do analizy przypadków

użycia wymaga poddania się

wymogom kilku procedur.

Po rozpoczęciu wywiadów z klientem lub z ekspertami przystępujemy do

tworzenia diagramów klas, o czym mówiliśmy na poprzednich wykładach.

To pozwala na ogólne zapoznanie się z dziedziną, z którą mamy do

czynienia, i z pojęciami, które będą stosowane. W ten sposób tworzy się

bazę do rozmów z użytkownikami.
W wywiadach z użytkownikami (lepiej z grupami użytkowników) należy

wypytywać o wszystko, co zamierzają robić z systemem, którego

projektowanie rozpoczynacie. Ich odpowiedzi pozwolą na stworzenie

zestawu kandydatów na przypadki użycia. Potem ważną rzeczą jest

opisanie każdego przypadku użycia. Musicie także ustalić listę aktorów

inicjujących i korzystających z przypadków użycia. Ta faza zwiększy

Waszą umiejętność rozmawiania z użytkownikami ich własnym językiem.
Przypadki użycia okażą się pomocne również w kilku następnych fazach

procesu tworzenia systemu. Pomogą w projektowaniu interfejsu

użytkownika, tworzącym oprogramowanie ułatwią dokonywanie wyborów

oraz staną się podstawą testowania nowo utworzonego systemu.

background image

Korzyści ze stosowania

„przypadków użycia”

Stosowanie pojęcia „przypadek użycia” przynosi sporo

korzyści, a stają się one znacząco większe, jeżeli na

dodatek

za

pomocą

języka

UML

zastosujemy

wizualizację.
Pokazanie użytkownikom przypadków użycia w postaci

graficznej ułatwia uzyskanie dodatkowych informacji.

Jest rzeczą sprawdzoną, że użytkownicy zwykle wiedzą

więcej, niż potrafią wypowiedzieć, a stosowanie

przypadków użycia ułatwia przełamanie tej niemożności.
Ponadto graficzne przedstawienie ułatwia łączenie

diagramów przypadków użycia z diagramami innych

typów.

background image

Cel analizy systemu

Jednym z celów procesu analizy systemu jest
stworzenie zbioru przypadków użycia.
Dążymy do skatalogowania przypadków użycia,
aby można się było do nich odwoływać w celu
poznania

systemu

z

punktu

widzenia

użytkownika.
Gdy nadejdzie pora na opracowanie nowej wersji
systemu, katalog przypadków użycia posłuży
jako podstawa do zbierania informacji na temat
wymagań, które ma spełniać nowa wersja.

background image

Aktorzy

Aktor inicjuje przypadek użycia i aktor (być może

ten sam, ale niekoniecznie) otrzymuje jakąś

wartość przez ten przypadek utworzoną.
Łatwo to przedstawić w postaci graficznej. Aktora

inicjującego umieszczamy na lewo od przypadku

użycia, a aktora czerpiącego korzyść - na prawo.
Nazwę przypadku użycia umieszczamy wewnątrz

elipsy lub tuż pod nią. Linia powiązania łączy aktora

z przypadkiem użycia i reprezentuje komunikację

między nimi. Jest to linia ciągła, taka sama, jaką

stosujemy, przedstawiając powiązania klas.

background image

Granice systemu

Jedną z korzyści płynących ze stosowania
analizy przypadków użycia jest wyznaczanie
granicy

między

systemem

i

światem

zewnętrznym.
Aktorów zwykle umieszczamy poza systemem,
przypadki użycia - wewnątrz.
Granice systemu przedstawiamy w postaci
prostokąta z nazwą systemu umieszczoną
gdzieś w środku. Wewnątrz tego prostokąta
umieszczamy przypadki użycia.

background image

Prezentacja modelu

przypadków użycia

W modelu przypadków użycia schematyczna
figurka człowieka reprezentuje aktora, elipsa
- przypadek użycia, a ciągła linia powiązania
- komunikacją między aktorem i przypadkiem
użycia

background image

Wracamy do przypadku

automatu do sprzedaży

napojów gazowanych

Zastosujmy wprowadzone symbole

do

przypadku

rozważanego

poprzednio.

Jak

zapewne

pamiętacie, zajmowaliśmy się tam

automatem sprzedającym napoje

gazowane. Przypadek użycia „Kup

napój”

został

umieszczony

wewnątrz

systemu

razem

z

przypadkami „Dostarcz towar” i

„Zainkasuj pieniądze”.
Aktorzy to: kupujący, pracownik

dostawcy i inkasent. Na rysunku

widzimy

UML-owy

model

przypadków użycia dla automatu

do sprzedaży napojów.

background image

Śledzenie kroków

scenariuszy

Każdy przypadek użycia jest zbiorem scenariuszy, a
każdy scenariusz — ciągiem kroków. Jak widać, kroki
te nie są pokazywane na diagramie. Nie ma ich
także w notatkach załączanych do przypadków
użycia.
Choć UML tego nie zakazuje, przypisywanie notatek
do każdego przypadku użycia znacznie pogorszyłoby
klarowność diagramu, a właśnie klarowność jest
rzeczą podstawową. A zatem w jaki sposób i gdzie
możemy prześledzić kroki scenariuszy?

background image

Diagramy umieszczamy w

dokumentacji produktu

Diagramy przypadków użycia są zwykle częścią dokumentacji

projektu przeznaczonej dla klientów i twórców oprogramowania.
Każdemu diagramowi jest poświęcana oddzielna strona. Oddzielną

stronę tworzy się także dla scenariusza każdego przypadku

użycia. Oto elementy wyliczane na takiej liście:

 aktor, który inicjuje przypadek użycia,
 warunki wstępne przypadku użycia,
 kroki scenariusza,
 warunki końcowe scenariusza,
 aktor, który czerpie korzyść z przypadku użycia.

Można także dodać listę założeń dla danego scenariusza (na

przykład, że w danej chwili z automatu do napojów może

korzystać tylko jeden użytkownik) oraz jego krótki, jednozdaniowy

opis.

background image

Pokazywanie kroków

scenaruisza

Poprzednio omówiliśmy kilka alternatywnych
scenariuszy przypadku użycia „Kup napój”. W
opisie

można

podać

dwa

niezależne

scenariusze („Niewłaściwa suma pieniędzy” i
„Brak towaru”) lub potraktować je jako
odstępstwa od scenariusza podstawowego.
Szczegóły realizacji zależą od Was, od klientów
i użytkowników.
Innym sposobem pokazania kroków scenariusza
jest diagram czynności.

background image

Związki między

przypadkami użycia

We wspomnianym przykładzie zostały pokazane dwa

przykłady związków między przypadkami użycia. Jeden

to zawieranie, które pozwala na wielokrotne użycie

ciągu kroków z jednego przypadku użycia wewnątrz

innego. Druga możliwość - rozszerzanie pozwala na

tworzenie nowych przypadków użycia przez dodawanie

kroków do przypadków już istniejących.
Dwa inne rodzaje związków to uogólnienie i

grupowanie.

Uogólnienie

oznacza,

że

jeden

przypadek użycia dziedziczy z innego przypadku użycia

- dokładnie tak, jak było w przypadku uogólnienia klas.

Grupowanie jest prostym sposobem tworzenia

zestawów przypadków klas.

background image

Zawieranie

Przypatrzmy się przypadkom użycia „Dostarcz towar” i

„Zainkasuj

pieniądze”.

Oba

rozpoczynały

się

od

odbezpieczenia automatu i otwarcia jego drzwi i oba

kończyły się zamknięciem i zabezpieczeniem drzwi. Kilka

pierwszych kroków zostało wyodrębnionych w przypadku

„Udostępnij wnętrze”, a kilka ostatnich - w przypadku

„Zlikwiduj dostęp”. Zarówno „Dostarcz towar”, jak i

„Zainkasuj pieniądze” zawierają oba te przypadki częściowe.
Zawieranie przypadków użycia oznaczamy tym samym

symbolem co zależność klas. Jest to linia przerywana

zakończona grotem strzały wskazującym na niezależny

przypadek użycia (czyli ten, od którego zależy inny

przypadek). Nad linią związku zawierania umieszczamy w

nawiasach francuskich stereotyp «include».

background image

Model przypadków użycia z

zawieraniem na przykładzie

automatu do napojów

Na

rysunku

widzimy

związek zawierania w

modelu

przypadków

użycia

automatu

do

napojów.
W notatce tekstowej

opisującej kolejne kroki

ciągu zdarzeń należy

wyliczyć

zawarty

przypadek

użycia.

Pierwsze

kroki

przypadku

„Dostarcz

towar”

zawierają

przypadek „Udostępnij

wnętrze”.

background image

Rozszerzenie

W przykładzie przypadek użycia „Dostarcz towar” został rozszerzony do

przypadku „Dostarcz towar według wyników sprzedaży”, w którym,

zamiast zwykłego uzupełnienia zapasu puszek we wszystkich

pojemnikach, przedstawiciel dostawcy zwraca uwagę na to, które rodzaje

sprzedają się dobrze, a które zalegają w pojemnikach, i ładuje automat

najbardziej popularnymi.
Ten nowy przypadek użycia nazywamy rozszerzeniem oryginalnego,

ponieważ poprzedni ciąg zdarzeń zostaje uzupełniony o nowe kroki.

Przypadek oryginalny nazywamy podstawowym.
Rozszerzenie może mieć miejsce jedynie w wybranych punktach ciągu

kroków przypadku podstawowego. Punkty te nazywamy miejscami

rozszerzenia. W przypadku użycia „Dostarcz towar” nowe kroki

(dotyczące sprawdzania sprzedaży i wypełniania pojemników) powinny

znaleźć się w tym miejscu, gdzie pracownik dostawcy po otworzeniu

automatu jest gotów do napełniania pojemników puszkami różnych

rodzajów. W tym przypadku miejscu rozszerzenia można nadać nazwę

„Napełnij pojemniki”.

background image

Diagram przypadków

użycia z rozszerzeniem i

zawieraniem

Tak samo jak zawieranie,

rozszerzenie

przedstawiamy za pomocą

oznaczenia zależności (linii

przerywanej

z

grotem

strzały) z ujętą w nawiasy

francuskie

nazwą

stereotypu «extend».

Punkt rozszerzenia wpisujemy wewnątrz elipsy przypadku

użycia pod jego nazwą.
Na rysunku widzimy związek rozszerzający przypadek użycia

„Dostarcz towar” do przypadku „Dostarcz towar według

wyników sprzedaży” oraz związki zawierania dla przypadków

„Dostarcz towar” i „Zainkasuj pieniądze”.

background image

Uogólnienie

Jedna klasa (potomek) może dziedziczyć po innej

(przodek). To samo dotyczy przypadków użycia,

które mogą dziedziczyć zachowanie i wartości.

Potomek do tego, co odziedziczy po przodku, może

dodać własne zachowanie. Potomka możemy

używać wszędzie, gdzie jest możliwe użycie

przodka.
W naszym przykładzie można wyobrazić sobie

przypadek użycia „Kup kubek napoju” dziedziczący

po przypadku „Kup napój”. Potomek dodaje takie

zachowania jak „Dodaj lodu” i „Zmieszaj kilka

rodzajów napojów”.

background image

Jeden przypadek użycia

może po innym

dziedziczyć zachowanie

Uogólnienie

przypadków

użycia

przedstawiamy na diagramie w taki
sam sposób jak uogólnienie klas — za
pomocą linii ciągłej z niewypełnionym
grotem wskazującym na przodka, jak
to zostało pokazane na rysunku.

background image

Związek uogólnienia może istnieć

między aktorami, tak samo jak

między klasami i przypadkami użycia

Tak

samo

jak

między

przypadkami użycia, związek

uogólnienia

może

istnieć

również między aktorami.
Pracownika dostarczającego

towar i inkasenta możemy

uznać

za

przedstawicieli

dostawcy.
Wówczas dostawca towaru i

inkasent będą potomkami

przedstawiciela dostawcy, co

zostało pokazane na rysunku.

background image

Grupowanie

Na niektórych diagramach występuje wiele przypadków
użycia i warto je w jakiś sposób uporządkować. Przydaje się
to, gdy system składa się z wielu podsystemów oraz gdy w
wywiadach z użytkownikami staramy się zebrać wymagania
stawiane systemowi. Każdy warunek powinien być
przedstawiony w postaci oddzielnego przypadku użycia.
Przyda się wówczas dzielenie warunków na kategorie.
Najprostszym sposobem wprowadzenia porządku jest
grupowanie związanych przypadków użycia w pakiety.
Pamiętajcie, że pakiety przedstawimy w postaci teczek z
zakładkami. Zgrupowane przypadki użycia są pokazywane
wewnątrz ikony takiej teczki.

background image

Stosowanie przypadków

użycia w procesie analizy

Proces zaczyna się od wywiadów z klientem. Ich
rezultatem jest stworzenie diagramu klas, który następnie
może służyć za podstawę wiedzy o domenie systemu
(zakresie, w którym system będzie rozwiązywał problemy).
Po poznaniu ogólnej terminologii używanej przez klienta
przychodzi pora na rozmowy z użytkownikami.
Wywiady z użytkownikami rozpoczynamy od terminologii
domeny, którą powinniśmy wzbogacić o terminologię
użytkowników. Już pierwsze wywiady powinny odkryć
aktorów i przypadki użycia wysokiego poziomu, opisujące
ogólne warunki funkcjonalne. Te informacje prowadzą do
poznania ograniczeń i zakresu systemu.

background image

Stosowanie przypadków

użycia w procesie analizy

Kolejne wywiady z użytkownikami są szczegółowym
zagłębianiem się w te warunki i prowadzą do tworzenia
modelu ukazującego scenariusze ze szczegółowymi ciągami
zdarzeń.
Może to prowadzić do tworzenia dodatkowych przypadków
użycia ze związkami zawierania i rozszerzania. Jest ważne, aby
w tej fazie polegać na własnym rozumieniu domeny (na
podstawie diagramu klas stworzonego w wyniku rozmów z
klientem).
Jeżeli nie rozumiecie domeny, możecie stworzyć zbyt wiele
przypadków użycia ze zbyt wieloma szczegółami, a to może w
sposób znaczący wpłynąć na projektowanie i budowanie
systemu.

background image

Stosowanie modeli

przypadków użycia —

przykład

Aby pogłębić wiedzę na temat przypadków użycia i

ich stosowania, rozpatrzmy przykład bardziej

złożony niż automat do sprzedaży napojów.
Załóżmy, że należy zaprojektować lokalną sieć

komputerową (LAN) dla firmy konsultingowej i

musicie wyobrazić sobie funkcjonowanie tej sieci.

Od czego zacząć?

Oczywiście chodzi o projekt przypadków użycia sieci

komputerowej w tej firmie, a nie o techniczne

aspekty wykonania takiej sieci, które to aspekty nie

należą do klasy zagadnień rozważanej na wykładzie.

background image

Poznanie domeny

Zacznijcie od

wywiadów z

klientem, co

pozwoli na

stworzenie

diagramu

będącego

odbiciem pracy

w firmie

konsultingowej.

Diagram ten może zawierać następujące klasy: Konsultant, Klient, Projekt,

Propozycja, Dane i Raport.
Przykład takiego diagramu został pokazany na rysunku.

background image

Zrozumienie

użytkowników

Po poznaniu domeny skupiamy uwagę na użytkownikach,

pamiętając, że naszym celem jest wyobrażenie sobie pełnej

funkcjonalności systemu.
W

świecie

rzeczywistym

z

użytkownikami

trzeba

przeprowadzać wywiady. W tym przypadku należy się opierać

na ogólnej znajomości konstrukcji sieci lokalnych i znajomości

domeny. Pamiętajcie jednak, że w rzeczywistości nic nie

zastąpi wywiadów z ludźmi.
Jedną grupę będą stanowić konsultanci, drugą urzędnicy biura.

Inni potencjalni użytkownicy to: księgowi, handlowcy,

administratorzy

sieci,

kierownicy

działowi

kierownicy

projektów (czy możecie jeszcze kogoś dorzucić?).
W tym punkcie dobrze jest pokazać użytkownikom uogólnioną

hierarchię przedstawioną na rysunku (następny slajd)

background image

Hierarchia użytkowników

sieci LAN

background image

Zrozumienie

przypadków użycia

A co z przypadkami użycia? Oto kilka

możliwości: „Zapewnij bezpieczeństwo”,

„Przygotuj propozycję”, „Użyj poczty

elektronicznej”, „Udostępnij informację”,

„Wykonaj księgowanie”, „Połącz się z

siecią lokalną z innej sieci lokalnej”,

„Połącz się z Internetem”, „Współużytkuj

bazę danych”, „Zrób katalog propozycji”,

„Używaj

gotowych

propozycji”,

„Współużytkuj drukarki”. Na rysunku

został pokazany diagram przypadków

użycia wysokiego poziomu.
Ten zestaw przypadków użycia określa

warunki funkcjonalne sieci LAN.

background image

Przypadek użycia

„Przygotuj propozycję”

Zajmijmy się dokładnie jednym z
przypadków użycia wysokiego poziomu
i zbudujmy jego dokładny model.
Jedną z najważniejszych powinności
firmy

konsultingowej

jest

przygotowywanie propozycji, a więc
przyjrzyjmy się bliżej przypadkowi
użycia „Przygotuj propozycję”.

background image

Przypadek użycia

„Przygotuj propozycję”

Z rozmów przeprowadzonych z konsultantami

zapewne dowiesz się, ile kroków będzie liczył ciąg

czynności w tym przypadku użycia, którego aktorem

inicjującym jest właśnie konsultant.
Konsultant musi się załogować w sieci LAN i zostać

rozpoznany jako uprawniony użytkownik.
Potem, korzystając z oprogramowania pakietu

biurowego (procesora tekstu, arkusza kalkulacyjnego

i

programu

graficznego),

przystąpi

do

przygotowywania propozycji. Na tym etapie pracy

konsultant może korzystać z propozycji wcześniej

przygotowanych.

background image

Przypadek użycia

„Przygotuj propozycję”

W części firm konsultingowych przygotowane propozycje

przed przekazaniem klientowi są sprawdzane przez

jednego z członków zarządu i dwóch innych konsultantów.

Aby tego rodzaju praktyka była możliwa, konsultant

zapisuje gotową propozycję w centralnym repozytorium i

pocztą elektroniczną powiadamia trzy zainteresowane

osoby o miejscu jej zapisania.
Po otrzymaniu uwag i dokonaniu modyfikacji (znów za

pomocą pakietu oprogramowania biurowego) konsultant

drukuje propozycję i wysyłają do klienta.
Gdy wszystko jest skończone, wylogowuje się z sieci.

Konsultant, który przygotował skończoną propozycję, jest

aktorem czerpiącym korzyść z danego przypadku użycia.

background image

Uwaga !

Jeżeli podczas wywiadu odkrywa się coś takiego

jak wspomniana wyżej „polityka sprawdzania

przez trzech rewizorów”, należyte starannie

zanotować.
Oznacza to, że zaczyna się rozmowa o
logice

biznesowej firmy, czyli zbiorze zasad, według

których firma jest prowadzona.
Im lepszymi jesteście analitykami, tym dokładniej

tę logikę poznacie. Starajcie się zrozumieć

kulturę korporacyjną Waszych klientów, co

pozwoli poznać i zrozumieć ich potrzeby.

background image

Przypadek użycia

„Przygotuj propozycję”

Z wyliczonego poprzednio ciągu czynności wynika,
że niektóre kroki będą powtarzane w kilku
przypadkach użycia, zatem należy pomyśleć o
zastosowaniu zawierania, co na początku mogło nie
wydawać się takie oczywiste.
Z tego powodu można stworzyć przypadek użycia
„Sprawdź użytkownika”, który zostanie zawarty w
przypadku „Przygotuj propozycję”.

Razem z nim

zawarte zostaną dwa inne przypadki użycia: „Użyj
pakietu programów biurowych” i „Wyloguj się z
sieci”.

background image

Rozszerzenie przypadku użycia

„Przygotuj propozycję” o wariant

nowego klienta

Dalsze rozważania prowadzą do stwierdzenia, że
propozycje pisane dla nowych klientów różnią się
od

propozycji

pisanych

dla

klientów

dotychczasowych.
W tych pierwszych umieszcza się materiały
promocyjne i informacyjne o firmie. W drugim
przypadku nie jest to potrzebne.
A zatem przypadek użycia „Przygotuj propozycję”
może zostać rozszerzony przez nowy przypadek -
„Przygotuj propozycję dla nowego klienta”.

background image

Przypadek użycia „ Przygotuj

propozycją” w modelu LAN firmy

konsultingowej

Na

rysunku

widzimy

diagram

przypadków

użycia powstały w wyniku

analizy

przypadku

„Przygotuj propozycję” .
Ten

przykład

obrazuje

bardzo istotną kwestię, o

której

już

wcześniej

wspominaliśmy - analiza

przypadków

użycia

opisuje

zachowanie

systemu i nie ma nic

wspólnego

z

implementacją.

background image

Podsumowanie

Przypadek użycia to konstrukcja opisująca, w jaki sposób

system

będzie

widziany

przez

potencjalnych

użytkowników. Jest to zbiór scenariuszy inicjowanych

przez byt zwany aktorem (osobę, urządzenie, upływ czasu

lub inny system). Rezultatem tego działania będzie

wartość potrzebna temu aktorowi, który przypadek

inicjował, lub innemu.
Wszystkie przypadki użycia mogą być stosowane

wielokrotnie. Jeden sposób („zawieranie”) pozwala na

„wmontowanie” ciągu kroków z jednego przypadku w ciąg

kroków innego przypadku. Drugi sposób („rozszerzanie”)

polega na tworzeniu nowego przypadku przez dodawanie

nowych kroków do już istniejącego przypadku.

background image

Podsumowanie

Robienie wywiadów z użytkownikami jest najlepszą

techniką tworzenia przypadków użycia. Przy tworzeniu

przypadku bardzo ważną rzeczą jest ustalenie

warunków początkowych inicjowania przypadku i

warunków końcowych określających rezultat działania.
Wywiady

z

użytkownikami

przeprowadzamy

po

wywiadach z klientami i po przygotowaniu listy

kandydatów na klasy. To pozwala na stworzenie

podstawowej terminologii wykorzystywanej później w

rozmowach z użytkownikami. Dobrym pomysłem jest

przeprowadzanie wywiadu z grupą użytkowników.

Celem jest sporządzenie kompletnej listy kandydatów

na wszystkie możliwe przypadki użycia i aktorów.

background image

Podsumowanie

Przypadek użycia jest potężnym narzędziem

służącym do poznania warunków funkcjonowania

systemu. Diagramy przypadków użycia są jeszcze

bardziej przydatne.
Ułatwiają one komunikowanie się analityków z

użytkownikami i klientami.
Na diagramach przypadki użycia oznaczamy

symbolem elipsy. Linia powiązania łączy ją z

schematycznym

wizerunkiem

człowieka

symbolizującym aktora. Elipsy przypadków użycia są

zwykle

umieszczane

wewnątrz

prostokąta

oznaczającego granice systemu.

background image

Podsumowanie

Zawieranie jest przedstawiane za pomocą linii

zależności z nazwą stereotypu «include», a

rozszerzenie - z nazwą stereotypu «extend».
Dwa inne powiązania przypadków użycia to

uogólnienie i grupowanie. W uogólnieniu jeden

przypadek użycia dziedziczy po innym znaczenie

i zachowanie, zaś grupowanie pozwala na

łączenie przypadków w zestawy.
Uogólnienie przypadków użycia jest oznaczane

taką samą linią jak dziedziczenie klas.

Grupowanie oznaczamy ikoną pakietu.

background image

Podsumowanie

Diagram przypadków użycia jest jednym z bardziej

znaczących

elementów

procesu

analizy.

Zawsze

rozpoczynajcie od wywiadów z klientami, co powinno

doprowadzić do stworzenia diagramu klas.
Ten z kolei będzie podstawą do rozmów z użytkownikami.

Wywiady z użytkownikami doprowadzą do stworzenia

diagramów przypadków użycia wysokiego poziomu, które

pokażą warunki funkcjonalne systemu.
Drążenie prowadzi do stworzenia modelu przypadków użycia.

Ostateczny diagram przypadków użycia będzie podstawą

dalszych prac projektowych i tworzenia oprogramowania.
Obiektowość i przypadki użycia to dwie podstawowe

koncepcje UML-a.


Document Outline


Wyszukiwarka

Podobne podstrony:
2007 07 Wykorzystanie przypadków użycia do modelowania zachowania [Inzynieria Oprogramowania]
Specyfikacja przypadku u, WAT, semestr IV, Inżynieria oprogramowania
Inzynieria oprogramowania w ujeciu obiektowym UML wzorce projektowe i Java iowuje
ZadanieNaZaliczenie, WAT, semestr IV, Inżynieria oprogramowania
Rafał Polak 12k2 lab8, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
zagadnienia egzaminacyjne z przedmiotu inżynieria oprogramowania zIO
Inżynieria oprogramowania Diagramy ERD
2006 06 Wstęp do Scrum [Inzynieria Oprogramowania]
sciąga moja, Informatyka SGGW, Semestr 4, Inżynieria oprogramowania, Od starszego rocznika
Tworzenie oprogramowania, Semestr 5, Inżynieria oprogramowania
2007 05 Mechanizm koncepcji w języku C nowe oblicze szablonów [Inzynieria Oprogramowania]
Inżynieria oprogramowania syllabus IV niestac 07 08, Prywatne, WAT, SEMESTR IV, IO, io, Materiały od
Rafał Polak 12k2 lab9, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
inżynieria oprogramowani5s 3D2LFW6JYNMO6D276CSZQV5ONUNVXOTKWFXHA3A
inżynieria oprogramowani1 2EM7Y2ON72DKTCAQF3UOSCLXHY5636FZE7C7PUQ
inżynieria oprogramowani5 G46UQE27RE6UDINZWBW2TXNEOUUYOYV2MMVZ2NI

więcej podobnych podstron