Model przypadków użycia - pjwstk
Model przypadków użycia - pjwstk
Model przypadków użycia - pjwstk
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
MAS – dr. Inż. Mariusz Trzaska<br />
Wykład 2<br />
<strong>Model</strong> przypadków użycia
Zagadnienia<br />
Prezentowanie diagramów<br />
Stereotypy; komentarze<br />
Klasyfikatory; wystąpienia klasyfikatorów<br />
Związki pomiędzy elementami modelowania<br />
<strong>Model</strong> przypadków użycia:<br />
• Notacja<br />
• Analiza aktorów<br />
• Analiza przypadków użycia<br />
• Relacje między przypadkami użycia<br />
• Związek uogólnienia między aktorami<br />
• Określanie aktorów<br />
• Określanie przypadków użycia<br />
• Dokumentowanie przypadków użycia<br />
• Diagram interakcji dla przypadku użycia<br />
• Podsumowanie Wykorzystano materiały z wykładu PRI autorstwa<br />
dr inż. Ewy Stemposz oraz prof. Kazimierza Subiety<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
2
Prezentowanie diagramów<br />
Diagramy mogą być prezentowane w formie:<br />
- nieobramowanej<br />
- obramowanej, gdzie diagram jest otoczony prostokątną ramą<br />
zawierającą nagłówek<br />
nagłówek-diagramu=(rodzaj) nazwa-diagramu (parametry)<br />
nagłówek<br />
rodzaj – wyróżnik diagramu<br />
nazwa – odzwierciedlająca merytoryczną zawartość<br />
diagramu<br />
parametry – parametry kluczowe dla danego<br />
diagramu<br />
Nazwa jest obligatoryjnym elementem składowym nagłówka;<br />
rodzaj i parametry są elementami nieobligatoryjnymi.<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
3
Stereotypy; komentarze<br />
Stereotypy: mechanizm rozszerzalności UML. Stereotypy są wykorzystywane<br />
do meta-klasyfikacji elementów modelu.<br />
Notacja: «nazwa stereotypu» lub ikona<br />
Przykłady stereotypów:<br />
P1<br />
«include»<br />
P2<br />
P3<br />
«extend»<br />
P4<br />
Komentarze: mechanizm rozszerzalności UML. Komentarze są<br />
wykorzystywane do wprowadzania do diagramu adnotacji przypisanych do<br />
fragmentu modelu.<br />
tekst adnotacji<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
4
Klasyfikatory; wystąpienia klasyfikatorów<br />
Klasyfikator: kategoria modelowania UML, stanowiąca uogólnienie grupy bytów o<br />
podobnych własnościach; pojęcie klasyfikatora odnosi się do każdego rodzaju<br />
diagramów UML.<br />
Notacja: zależna od rodzaju diagramów<br />
Wystąpienie klasyfikatora (instacja klasyfikatora): odpowiada konkretnemu<br />
bytowi z grupy bytów charakteryzowanych przez dany klasyfikator<br />
Notacja: zazwyczaj zgodna z notacją klasyfikatora; różnice występują głównie<br />
w nazwach wystąpień: nazwa_własna_danego_bytu : nazwa_klasyfikatora<br />
Osoba<br />
nazwisko : string<br />
wiek : integer<br />
O-Nowak : Osoba<br />
nazwisko = ” Nowak”<br />
wiek = 35<br />
klasyfikator<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
wystąpienie klasyfikatora<br />
5
<strong>Model</strong>e wg Jacobsona<br />
<strong>Model</strong> przypadków użycia: definiuje zarówno zewnętrze systemu (aktorzy ≡<br />
systemy zewnętrzne ≡ kontekst systemu), jak i jego wnętrze (przypadki użycia);<br />
służy określeniu zachowań systemu w odpowiedzi na akcje pochodzące z<br />
otoczenia systemu.<br />
Obiektowy model dziedziny: odwzorowywuje byty świata rzeczywistego<br />
(dziedziny problemowej ≡ dziedziny przedmiotowej) w obiekty istniejące w<br />
systemie.<br />
Obiektowy model analityczny: podzbiór modelu dziedziny (dotyczy<br />
konkretnego zastosowania).<br />
<strong>Model</strong> projektowy (logiczny): opisuje założenia przyszłej implementacji.<br />
<strong>Model</strong> implementacyjny (fizyczny): reprezentuje implementację systemu.<br />
<strong>Model</strong> testowania: określa plan testów, specyfikuje procedury, dane testowe,<br />
raporty.<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
6
<strong>Model</strong> analityczny<br />
<strong>Model</strong> analityczny z reguły wykracza poza zakres odpowiedzialności systemu.<br />
Przyczyny:<br />
Ujęcie w modelu pewnych elementów dziedziny problemu nie będących<br />
częścią systemu czyni model bardziej zrozumiałym. Przykładem jest ujęcie w<br />
modelu systemów zewnętrznych, z którymi system ma współpracować.<br />
Na etapie modelowania może nie być jasne, które elementy modelu będą<br />
realizowane przez oprogramowanie, a które w sposób sprzętowy lub ręcznie.<br />
Dostępne środki mogą nie pozwolić na<br />
realizację systemu w całości.<br />
Celem budowy modelu analitycznego może<br />
być wykrycie tych fragmentów dziedziny<br />
problemu, których wspomaganie za<br />
pomocą innego oprogramowania będzie<br />
szczególnie przydatne.<br />
Dziedzina problemu<br />
<strong>Model</strong> analityczny<br />
Zakres<br />
odpowiedzialności<br />
systemu<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
7
<strong>Model</strong> wymagań<br />
Składowe:<br />
• <strong>Model</strong> przypadków użycia<br />
• Obiektowy model analityczny<br />
<strong>Model</strong> przypadków użycia został oparty o dwa podstawowe pojęcia:<br />
Aktor<br />
Przypadek użycia<br />
Reprezentuje rolę, którą może grać w systemie<br />
jakiś jego użytkownik, np. kierownik, urzędnik,<br />
klient.<br />
Reprezentuje sekwencję operacji (realizowanych<br />
przez system), niezbędnych do wykonania zadania<br />
zleconego przez aktora, np. potwierdzenie pisma,<br />
złożenie zamówienia, itp.<br />
Aktorem jest dowolny byt z otoczenia systemu, który uczestniczy w interakcji z<br />
systemem. Każdy potencjalny aktor może wchodzić w interakcję z systemem na<br />
pewną liczbę jemu właściwych sposobów. Każdy z tych sposobów nosi nazwę<br />
przypadku użycia i reprezentuje przepływ operacji w systemie związany z<br />
obsługą zadania zleconego przez aktora w procesie interakcji.<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
8
Notacja<br />
Wypłata<br />
pieniędzy<br />
Klient<br />
Weryfikacja<br />
klienta<br />
«include»<br />
ud Obsługa klienta<br />
Przypadek użycia: Powinien mieć unikatową nazwę,<br />
opisującą przypadek użycia z punktu widzenia jego<br />
zasadniczych celów. Czy lepiej jest stosować nazwę<br />
opisującą czynność (“wypłata pieniędzy”/„wypłacanie<br />
pieniędzy”) czy polecenie (“wypłać pieniądze”) − zdania są<br />
podzielone.<br />
Aktor: Powinien mieć unikatową nazwę.<br />
Interakcja: Ilustruje związek asocjacji zachodzący<br />
pomiędzy przypadkiem użycia (systemem) a aktorem.<br />
Blok ponownego użycia: Wewnętrzny fragment systemu,<br />
używany przez kilka przypadków użycia; blok ponownego<br />
użycia nie jest elementem UML.<br />
Relacja typu «include» lub «extend»: Pokazuje związek<br />
zależności zachodzący pomiędzy dwoma przypadkami<br />
użycia lub przypadkiem użycia a blokiem ponownego<br />
użycia.<br />
Nazwa diagramu wraz z nagłówkiem i ramą: ud (ang.<br />
use case diagram) – wyróżnik diagramu.<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
9
Aktor − kto (co) może wystąpić w roli<br />
aktora<br />
Metoda przypadków użycia wymaga od analityka określenia wszystkich<br />
aktorów związanych z planowanym wykorzystywaniem projektowanego<br />
systemu, innymi słowy wymaga ustalenia zbioru “przyszłych<br />
użytkowników systemu”.<br />
Zazwyczaj aktorem jest osoba, ale może nim być także pewna organizacja (np.<br />
biuro prawne), inny system komputerowy lub urządzenie. Aktor modeluje grupę<br />
osób pełniących pewną rolę, a nie konkretną osobę. Jedna osoba może<br />
wchodzić w interakcję z systemem z pozycji wielu aktorów; np. być zarówno<br />
sprzedawcą, jak i klientem. I odwrotnie, jeden aktor może odpowiadać wielu<br />
konkretnym osobom, np. aktor “strażnik budynku”.<br />
(1) Czy system może być aktorem sam dla siebie Aktor to przecież, zgodnie<br />
z definicją, byt z otoczenia systemu.<br />
(2) Aktor jest pierwotną przyczyną napędzającą przypadki użycia. Jest<br />
sprawcą zdarzeń powodujących uruchomienie przypadku użycia, jest też<br />
odbiorcą danych wyprodukowanych przez przypadek użycia. Sprawca<br />
zdarzeń Czy np. klient, nie posiadający bezpośredniego dostępu do funkcji<br />
systemu jest aktorem<br />
(3) Aktor pasywny a interakcja z systemem <br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
10
Analiza aktorów<br />
Wyjaśnienie różnicy pomiędzy pojęciem „konkretny<br />
użytkownik” a pojęciem „aktor”:<br />
Konkretny<br />
użytkownik<br />
Może grać rolę<br />
Aktor<br />
zleca<br />
Przypadek użycia<br />
Jan Kowalski<br />
Administrator systemu<br />
Przeładowanie systemu<br />
Adam Malina<br />
Konkretny<br />
gość<br />
Konkretny klient<br />
Pracownik<br />
Osoba informowana<br />
Klient<br />
Wejście z kartą i kodem<br />
Uzyskanie<br />
informacji ogólnych<br />
Wypłata z konta<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
11
Wykorzystanie stereotypów dla aktorów<br />
Aktor: człowiek,<br />
grupa ludzi,<br />
organizacja<br />
Klient<br />
«actor»<br />
Klient<br />
Klient<br />
Aktor: system zewnętrzny<br />
System<br />
ubezpieczeń<br />
Aktor: czas<br />
1-szy dzień<br />
roku<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
12
Przykład diagramu przypadków użycia (1)<br />
<br />
Wpłata pieniędzy<br />
Klient<br />
Wypłata pieniędzy<br />
Czy klient jest aktorem dla przypadku użycia: wpłata pieniędzy – to zależy od<br />
konkretnego systemu. W operacjach wpłaty i wypłaty pieniędzy mogą uczestniczyć<br />
także inni aktorzy, np. kasjer. Możemy go dołączyć jako kolejny element<br />
rozbudowujący nasz model.<br />
Wpłata pieniędzy<br />
Klient<br />
Wypłata pieniędzy<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
Kasjer<br />
alternatywna notacja dla przypadków<br />
użycia<br />
13
Przykład diagramu przypadków użycia (2)<br />
ud Automat do sprzedaży papierosów<br />
Uzupełnienie<br />
towaru<br />
Klient<br />
Zakup paczki<br />
papierosów<br />
Wykonanie operacji<br />
pieniężnej<br />
Operator<br />
Sporządzenie<br />
raportu<br />
Kontroler<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
14
Liczność związków asocjacji<br />
ud Automat do sprzedaży papierosów<br />
Uzupełnienie<br />
towaru<br />
*<br />
1<br />
Klient<br />
1<br />
*<br />
Zakup paczki<br />
papierosów<br />
Wykonanie operacji<br />
pieniężnej<br />
Sporządzenie<br />
raportu<br />
*<br />
*<br />
*<br />
1<br />
Operator<br />
1<br />
1<br />
Kontroler<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
15
Oznaczanie kierunków interakcji<br />
ud Automat do sprzedaży papierosów<br />
Uzupełnienie<br />
towaru<br />
Klient<br />
Zakup paczki<br />
papierosów<br />
Wykonanie operacji<br />
pieniężnej<br />
Operator<br />
Sporządzenie<br />
raportu<br />
System<br />
archiwizujący<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
16
Relacje między przypadkami użycia (1)<br />
Przypadki użycia mogą być konstruowane w dowolnej kolejności, chyba że<br />
występują między nimi związki zależności typu «include» czy «extend».<br />
W obu poniższych diagramach P1, nazywane tu przypadkiem bazowym,<br />
zawsze występuje jako pierwsze w kolejności działania.<br />
Przebieg podstawowy (sekwencyjny): P1 zawsze włącza (używa) P2, zwane tu<br />
przypadkiem włączanym.<br />
P1<br />
«include»<br />
P2<br />
Przebieg opcjonalny (alternatywny): P1 jest czasami rozszerzane o P2, zwane<br />
tu przypadkiem rozszerzającym (inaczej: P2 czasami rozszerza P1).<br />
Sformułowanie “czasami” oznacza, że warunek na wywołanie P2 musi być<br />
spełniony, aby P2 zostało wywołane z P1. O ile warunek nie został<br />
wyspecyfikowany − co jest dopuszczalne − P2 będzie wywołane zawsze.<br />
P1<br />
«extend»<br />
P2<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
17
Relacje między przypadkami użycia (2)<br />
Rejestracja<br />
klienta<br />
«include»<br />
Przegląd<br />
samochodu<br />
«include»<br />
«extend»<br />
«include»<br />
Sprzedaż<br />
samochodu<br />
Naprawa<br />
samochodu<br />
«include» wskazuje na wspólny<br />
fragment wielu przypadków<br />
użycia (wyłączony “przed<br />
nawias”); jest wykorzystywane w<br />
przebiegach podstawowych<br />
(przypadek włączany jest zawsze<br />
wykonywany) − strzałka jest<br />
skierowana w stronę przypadku<br />
włączanego<br />
Umycie<br />
samochodu<br />
«extend»<br />
«extend»<br />
Przyholowanie<br />
samochodu<br />
«extend» jest wykorzystywane w<br />
przebiegach opcjonalnych<br />
(przypadek rozszerzający nie<br />
zawsze będzie wykonywany) −<br />
strzałka jest skierowana w stronę<br />
przypadku bazowego<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
18
Relacje między przypadkami użycia (3)<br />
Naprawa<br />
samochodu<br />
extension points:<br />
Samochód poza warsztatem<br />
Samochód wymaga przeglądu<br />
«extend»<br />
extension point:<br />
Samochód poza<br />
warsztatem<br />
«exten<br />
d»<br />
extension point:<br />
Samochód wymaga<br />
przeglądu<br />
Punkty rozszerzające<br />
(extension points)<br />
Umożliwiają podanie warunków<br />
wymaganych do użycia<br />
przypadków rozszerzających<br />
(„opcjonalnych”).<br />
Przegląd<br />
samochodu<br />
extension points:<br />
Samochód jest brudny<br />
Przyholowanie<br />
samochodu<br />
Umycie<br />
samochodu<br />
«extend»<br />
extension point:<br />
Samochód jest<br />
brudny<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
19
Relacje między przypadkami użycia (3)<br />
Uwaga: Zabronione jest łączenie relacją «include» (czy «extend») przypadków<br />
użycia występujących w różnych przebiegach systemu, jak np. na poniższym<br />
diagramie.<br />
Złożenie zamówienia<br />
Klient<br />
«extend»<br />
Dostawca<br />
Realizacja zamówienia<br />
Między złożeniem zamówienia a jego realizacją z reguły upływa trochę czasu.<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
20
Związek uogólnienia między aktorami (1)<br />
Osoba<br />
Pracownik<br />
Gość<br />
Księgowa<br />
Pracownik<br />
administracji<br />
Np. Pracownik administracji dziedziczy dostęp do przypadków użycia<br />
wyspecyfikowanych dla każdego pracownika, oraz ma dostęp do przypadków<br />
związanych z jego własnym, specyficznym sposobem wykorzystywania systemu.<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
21
Związek uogólnienia między aktorami (2)<br />
ud Automat do operacji bankowych<br />
Podsystem<br />
zarządzania bazą<br />
danych banku<br />
Obsługa<br />
konta klienta<br />
«include»<br />
Informowanie o<br />
stanie konta klienta<br />
«include»<br />
Weryfikacja karty<br />
i kodu klienta<br />
Klient<br />
Administrator<br />
systemu<br />
Inicjalizacja<br />
karty klienta<br />
«include»<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
22
Związek uogólnienia między aktorami (3)<br />
ud Automat do operacji bankowych<br />
Podsystem<br />
zarządzania bazą<br />
danych banku<br />
Obsługa<br />
konta klienta<br />
«include»<br />
Informowanie o<br />
stanie konta klienta<br />
«include»<br />
Weryfikacja karty<br />
i kodu klienta<br />
Klient<br />
Administrator<br />
systemu<br />
Inicjalizacja<br />
karty klienta<br />
«include»<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
23
Rozbudowa modelu przypadków użycia<br />
Wpłać<br />
pieniądze<br />
Wpłać<br />
pieniądze<br />
Kasjer<br />
Klient<br />
banku<br />
Wypłać<br />
pieniądze<br />
Sprawdź<br />
stan konta<br />
Kasjer<br />
Klient<br />
banku<br />
Wypłać<br />
pieniądze<br />
«include»<br />
Sprawdź<br />
stan konta<br />
«extend»<br />
«include»<br />
Uaktualnianie<br />
stanu konta<br />
Weź<br />
pożyczkę<br />
Zarząd<br />
banku<br />
Weź<br />
pożyczkę<br />
Zarząd<br />
banku<br />
<strong>Model</strong> przypadków użycia można rozbudowywać poprzez dodawanie nowych<br />
aktorów, nowych przypadków użycia czy też nowych relacji pomiędzy<br />
przypadkami.<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
24
Diagram kontekstowy<br />
Podsystem<br />
zarządzania bazą<br />
danych banku<br />
Klient<br />
«system»<br />
Automat do<br />
operacji<br />
bankowych<br />
Administrator<br />
systemu<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
25
Przepływ zdarzeń (1)<br />
Jednym z najważniejszych elementów w opisie każdego przypadku użycia<br />
– na etapie formułowania wymagań – jest specyfikacja przepływu zdarzeń<br />
między aktorem a systemem. Specyfikację przepływu zdarzeń należy<br />
formułować w języku naturalnym: prostą, spójną prozą i w oparciu o terminy<br />
zawarte w słowniku pojęć z dziedziny problemowej.<br />
Na przykład, przepływ zdarzeń między aktorem a systemem dla<br />
bankomatu, dla przypadku użycia “Wypłać pieniądze”, mógłby być<br />
opisany, jak poniżej:<br />
1. Przypadek użycia rozpoczyna się, gdy klient wkłada kartę do<br />
bankomatu.<br />
System czyta informacje na karcie i bada ich poprawność.<br />
2. System pyta o PIN. Klient wprowadza PIN. System sprawdza<br />
poprawność.<br />
3. System pyta o rodzaj operacji do wykonania. Klient wybiera: “Wypłać<br />
pieniądze”.<br />
4. System pyta o wielkość kwoty. Klient wprowadza kwotę.<br />
5. System komunikuje się z bankiem, żeby sprawdzić poprawność ID<br />
konta, PIN i dostępność kwoty.<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
26
Przepływ zdarzeń (2)<br />
6. System pyta klienta czy potrzebuje potwierdzenie.<br />
7. System komunikuje klientowi prośbę o zabranie karty. Klient zabiera<br />
kartę.<br />
Komunikat stanowi tu pewien mechanizm bezpieczeństwa chroniący<br />
klienta<br />
przed nie zabraniem karty.<br />
8. System wydaje pieniądze.<br />
9. System drukuje potwierdzenie (o ile klient sobie życzył) i to kończy<br />
przypadek użycia.<br />
Możliwe są różne, alternatywne przepływy dla tego przypadku użycia:<br />
• Dane od aktora: np. aktor może unieważnić transakcję w dowolnym momencie<br />
lub może nie chcieć potwierdzenia.<br />
• Stan systemu: np. bankomat może nie zawierać pieniędzy, może brakować<br />
papieru, może nastąpić blokada urządzenia wydającego pieniądze czy też<br />
blokada urządzenia drukującego potwierdzenie.<br />
• Time-out lub błędy: np. jeśli klient nie odpowie w określonym czasie, system<br />
może unieważnić transakcję.<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
27
Scenariusze<br />
Każdy alternatywny przepływ nie oznacza oddzielnego przypadku użycia<br />
raczej grupujemy wszystkie powiązane przepływy w jeden przypadek użycia.<br />
Taką grupę przepływów czasami nazywa się klasą przypadków użycia.<br />
Wystąpieniem klasy przypadków użycia jest wtedy jeden z pojedynczych,<br />
alternatywnych przepływów.<br />
Wystąpienie klasy przypadków użycia jest także nazywane scenariuszem.<br />
Scenariusze są używane do “ekstrahowania” z przypadku użycia<br />
unikatowej sekwencji akcji, inaczej: “wątków” w przypadku użycia.<br />
Na wczesnych etapach rozwoju systemu łatwiej jest rozpocząć prace od<br />
pewnego konkretnego scenariusza, a następnie dokładać przepływy<br />
alternatywne − w ten sposób tworzy się klasę przypadków użycia.<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
28
Kolejne kroki w konstrukcji modelu<br />
Konstrukcja modelu przypadków użycia opiera się na kilku krokach i wymaga ścisłej<br />
współpracy z przyszłym użytkownikiem, co implikuje zasadę: “nie opisuj przypadków<br />
użycia w sposób, który nie jest łatwo zrozumiały dla użytkownika”.<br />
Jednocześnie powinien być budowany obiektowy model analityczny (schemat pojęciowy<br />
1<br />
2<br />
Krok:<br />
Sporządzenie słownika pojęć<br />
Określenie aktorów<br />
Udokumentowany w:<br />
Słownik pojęć<br />
3<br />
4<br />
Określenie przypadków<br />
użycia<br />
Tworzenie opisu każdego<br />
przypadku<br />
użycia plus:<br />
• podział na nazwane części<br />
• znalezienie wspólnych części<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
Dokument opisu aktorów<br />
Diagram przypadków użycia +<br />
dokument z opisem przypadków<br />
użycia<br />
29
Krok 1: sporządzenie słownika pojęć<br />
• Ważnym jest, by już na tym etapie rozpocząć organizowanie słownika pojęć.<br />
• Słownik dotyczy dziedziny problemowej.<br />
• Tworzenie go polega na wyłowieniu wszystkich pojęć z wymagań<br />
użytkownika.<br />
• Pojęcia mogą odnosić się do aktorów, przypadków użycia, obiektów, operacji,<br />
zdarzeń, itp.<br />
• Pojęcia w słowniku powinny być zdefiniowane w sposób precyzyjny i<br />
jednoznaczny.<br />
• Posługiwanie się pojęciami ze słownika powinno być regułą przy opisie<br />
każdego kolejnego problemu, sytuacji czy modelu.<br />
Na co należy zwracać uwagę przy kwalifikowaniu pojęć do<br />
słownika:<br />
• na rzeczowniki − mogą oznaczać aktorów lub byty z dziedziny<br />
problemowej, na frazy opisujące funkcje, akcje, zachowanie się −<br />
mogą stanowić podstawę do wyróżniania przypadków użycia.<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
30
Krok 2: określanie aktorów<br />
Przy określaniu aktorów istotne są odpowiedzi na następujące<br />
pytania:<br />
• Jaka grupa użytkowników potrzebuje wspomagania ze strony systemu (np.<br />
osoba<br />
wysyłająca korespondencję)<br />
• Jacy użytkownicy są konieczni do tego, aby system działał i wykonywał<br />
swoje<br />
funkcje (np. administrator systemu)<br />
• Z jakich elementów zewnętrznych (innych systemów, urządzeń) musi<br />
Ustalanie korzystać potencjalnych aktorów musi być powiązane z ustalaniem granic<br />
systemu, system, tj. odrzucaniem aby realizować tych obszarów swoje funkcje. dziedziny problemowej, którymi system<br />
nie będzie się zajmował (ustalenie zakresu odpowiedzialności systemu).<br />
Po wyszukaniu aktorów, należy ustalić:<br />
• nazwę dla każdego aktora/roli,<br />
• zakresy znaczeniowe dla poszczególnych nazw aktorów oraz relacje pomiędzy<br />
zakresami (np. sekretarka pracownik administracji pracownik dowolna<br />
osoba). Niekiedy warto ustalić hierarchię dziedziczenia dostępu do funkcji<br />
systemu dla aktorów.<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
31
Krok 3: określanie przypadków użycia (1)<br />
Nazwy dla przypadków użycia powinny być krótkie, ale jednoznacznie<br />
określające charakter zadania zlecanego systemowi przez aktora. Ponadto,<br />
nazwy powinny odzwierciedlać czynności z punktu widzenia aktorów, a nie<br />
systemu, czyli np. “wpłacanie pieniędzy”, a nie “przyjęcie pieniędzy od klienta”.<br />
funkcja systemu ≡ zachowanie systemu ≡ przypadek użycia<br />
Dla każdego aktora, znajdź zadania: (1) w których system może go wesprzeć w<br />
działalności związanej z dziedziną przedmiotową, (2) niezbędne dla wspomagania<br />
działania systemu jako takiego (np. zakładanie kont użytkowników).<br />
Staraj się powiązać w jeden przypadek użycia zespół zadań realizujących<br />
podobne cele. Unikaj rozbicia jednego przypadku na zbyt wiele pod-przypadków.<br />
Opisz przypadki użycia przy pomocy zdań w języku naturalnym, używając<br />
terminów ze słownika.<br />
Uporządkuj aktorów i przypadki użycia w postaci diagramu.<br />
Przeanalizuj zarówno wyspecyfikowane przypadki użycia (niektóre z nich mogą<br />
być „mutacjami” innych przypadków użycia), jak i powiązania aktorów z przypadkami<br />
użycia. Ustal, co jest zbędne, a co może być uogólnione.<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
32
Określanie przypadków użycia (2)<br />
W pierwszym podejściu skup się na tzw. „przypadkach krytycznych”, czyli takich,<br />
które stanowią istotę systemu (są normalnym, standardowym użyciem) lub są<br />
ważne z powodu istniejących w projekcie ryzyk (np. ryzyk technologicznych). Pomiń<br />
czynności wyjątkowe, uzupełniające lub opcjonalne; pomiń przypadki użycia typu<br />
Create Read Update Delete.<br />
Określ wzajemne powiązania przypadków, wyspecyfikuj rodzaj zależności:<br />
sekwencja («include») czy alternatywa («extend»).<br />
Dodaj zachowania wyjątkowe, uzupełniające, opcjonalne i CRUD. Ustal związki<br />
“przypadków krytycznych” z tego rodzaju zachowaniami.<br />
Tworząc podział każdego przypadku użycia na nazwane części (bloki), staraj się,<br />
aby nie były one ani zbyt ogólne ani zbyt szczegółowe. Zbyt szczegółowe bloki<br />
utrudniają analizę, a zbyt ogólne zmniejszają możliwość wykrycia fragmentów<br />
oprogramowania posiadających potencjał ponownego użycia. Całość diagramu nie<br />
może być ani zbyt duża ani zbyt złożona.<br />
Przeanalizuj przypadki użycia pod kątem wyizolowania bloków ponownego<br />
użycia. Przeanalizuj podobieństwo nazw przypadków użycia, Wydzielenie bloku<br />
ponownego użycia może być powiązane z określeniem bardziej ogólnych zadań lub<br />
dodaniu nowych elementów do już istniejącego zadania.<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
33
Krok 4: dokumentowanie przypadków użycia<br />
Dokumentacja przypadków użycia powinna zawierać:<br />
1. Diagramy przypadków użycia: aktorzy, przypadki użycia i relacje zachodzące<br />
między<br />
przypadkami.<br />
2. Krótki, ogólny opis każdego przypadku użycia:<br />
• jak i kiedy przypadek użycia zaczyna się i kończy,<br />
• opis interakcji przypadku użycia z aktorami, włączając w to kiedy<br />
interakcja ma<br />
miejsce i co jest przesyłane,<br />
• kiedy i do czego przypadek użycia potrzebuje danych zapamiętanych w<br />
systemie oraz jak i kiedy zapamiętuje dane w systemie,<br />
• wyjątki występujące przy obsłudze przypadku,<br />
• specjalne wymagania, np. czas odpowiedzi, wydajność,<br />
3. Opis szczegółowy każdego przypadku użycia:<br />
• scenariusz(e)<br />
• specyfikację uczestniczących obiektów,<br />
• diagram(y) interakcji.<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
34
Dokumentacja przypadku Wypożycz kasetę<br />
Nazwa<br />
Nr id 7<br />
Autor<br />
Priorytet<br />
Typ<br />
Aktorzy<br />
Opis<br />
Warunek początkowy<br />
Warunek końcowy<br />
(1)<br />
Wypożycz kasetę<br />
Jan Kowalski - analityk<br />
Wysoki<br />
Ogólny<br />
Pracownik wypożyczalni<br />
Przypadek dotyczy rejestracji wypożyczenia kaset; kasety<br />
przeznaczone dla dorosłych można wypożyczać od 18-tego roku<br />
życia; jednocześnie można mieć wypożyczonych co najwyżej 5<br />
kaset; nie wolno wypożyczać osobie, która aktualnie znajduje<br />
się w okresie karencji<br />
Osoba wypożyczająca powinna być zarejestrowana jako klient<br />
wypożyczalni<br />
O ile warunki wypożyczenia zostały zrealizowane, to powinny<br />
zostać zarejestrowane następujące informacje o wypożyczeniu<br />
kasety : kto wypożyczył, co wypożyczył i kiedy wypożyczył
Dokumentacja przypadku Wypożycz kasetę<br />
(2)<br />
Główny przepływ zdarzeń<br />
Alternatywne przepływy<br />
zdarzeń<br />
1. Pracownik wypożyczalni uruchamia przypadek Wypożycz<br />
kasetę.<br />
2. System odpytuje o nazwisko i imię osoby wypożycząjącej.<br />
Pracownik wprowadza odpowiednie informacje.<br />
3. System odpytuje o tytuł filmu. Pracownik wprowadza tytuł.<br />
4. System rejestruje wypożyczenie kasety z filmem (kto, co,<br />
data wypożyczenia).<br />
2a O ile osoba wypożyczająca nie jest zarejestrowana w<br />
systemie, system informuje o tym aktora i kończy<br />
przypadek użycia<br />
2b. O ile jest zarejestrowana więcej niż jedna osoba o tym<br />
samym nazwisku i imieniu, system wyświetla okno z<br />
listą osób. Pracownik wybiera odpowiednią osobę z listy.<br />
3a O ile aktualnie nie ma filmu o tym tytule w zasobach<br />
wypożyczalni, lub wszystkie kasety z filmem są<br />
wypożyczone, system informuje o tym aktora i kończy<br />
przypadek.<br />
3b O ile film jest przeznaczony dla osób dorosłych a osoba<br />
wypożyczająca nie ukończyła 18-tu lat, system informuje o<br />
tym aktora i kończy przypadek.
Dokumentacja przypadku Wypożycz kasetę<br />
(3)<br />
Alternatywne przepływy<br />
zdarzeń, cd.<br />
Wymagania niefunkcjonalne<br />
3c Jeśli osoba wypożyczająca ma już aktualnie co najmniej<br />
pięć wypożyczonych kaset na koncie, system informuje<br />
o tym aktora i kończy przypadek.<br />
3d Jeśli osoba wypożyczająca znajduje się aktualnie w<br />
okresie karencyjnym, system informuje o tym aktora i<br />
kończy przypadek.<br />
Brak<br />
Uwagi dodatkowe<br />
Brak
Podsumowanie<br />
Główne zadanie modelu przypadków użycia to określenie poprawnych<br />
wymagań funkcjonalnych na projektowany system, co jest uznawane za<br />
jeden z podstawowych problemów w procesie budowy systemu.<br />
Ponadto, model przypadków użycia pozwala na:<br />
• lepsze zrozumienie możliwych sposobów wykorzystania projektowanego<br />
systemu (przypadków użycia), lepsze zrozumienie jego funkcjonalności − co w<br />
efekcie oznacza zwiększenie stopnia świadomości uczestników projektu co do<br />
celów systemu,<br />
• umożliwienie interakcji zespołu projektowego z przyszłymi użytkownikami<br />
systemu,<br />
• ustalenie praw dostępu do zasobów,<br />
• zrozumienie strukturalnych własności systemu, a przez to ustalenie<br />
składowych systemu i związanego z nimi planu budowy systemu,<br />
• dostarczenie podstawy do sporządzenia harmonogramu prac,<br />
• dostarczenie bazy do budowy planu testów systemu,<br />
Przypadki użycia powinny odwzorowywać strukturę systemu<br />
tak, jak tę strukturę widzą przyszli użytkownicy systemu.<br />
<strong>Model</strong>owanie Systemów Informacyjnych (MSI), wykład 2<br />
38