slajd 1 Model przypadków użycia Anna Bobkowska Materia ły pomocnicze do wy kładu z Inżynierii Opr ogramowania na Wy dziale E TI PG. Ich lektura nie zastępuje obecności na wykładzie. Wykorzystanie materiałów w innym celu oraz ich rozpowszechnianie jest zabronione.
Diagram przypadków użycia Pokazuje: funkcjonalność systemu widzianą od zewnątrz, zbiór usług Identyfikowani są: aktorzy, przypadki użycia oraz powiazania i związki między nimi Określa: granice systemu: użytkowników i inne systemy współpracujące z systemem - aktorzy funkcjonalność realizowana przez system: przypadki użycia Aktor 1 Przypadek użycia 1 Przypadek użycia 2 Przypadek użycia 3 Aktor 2 System Model przypadków użycia można rozbudowywać poprzez dodawanie nowych aktorów, nowych przypadków użycia oraz nowych powiązań slajd 2
Definicje Model przypadków użycia - funkcjonalność z punktu widzenia użytkownika, system widziany jako czarna skrzynka. Przypadek użycia (ang. use case) - (spójna) jednostka funkcjonalności dostarczana przez system, która jest realizowana jako ciąg interakcji pomiędzy aktorem a systemem. Aktor (ang. actor) - abstrakcyjny użytkownik systemu, reprezentujący grupę rzeczywistych użytkowników o podobnych funkcjach i sposobie komunikacji z systemem; najczęściej aktor jest sprawcą zdarzenia powodującego uruchomienie przypadku użycia. Powiązanie Aktor - Przypadek użycia (ang. association) - usługa określona przez przypadek użycia jest dostępna dla aktora, aktor i system komunikują się podczas realizacji przypadku użycia. System lub obiekt (ang. Subject) posiada przypadki użycia slajd 3
Klasyfikacja aktorów Aktor główny - korzysta z podstawowych funkcji systemu Aktor drugorzędny - korzysta głównie z funkcji służących do realizacji zadań pomocniczych (np. administrowania i pielęgnacji systemu) Aktor aktywny - inicjuje przypadek użycia Aktor pasywny - nie inicjuje przypadku użycia, lecz tylko w nim uczestniczy Aktor ożywiony reprezentacja grupy ludzi Aktor nieożywiony system urządzenie Aktor zewnętrzny domyślnie Aktor wewnętrzny w modelowaniu biznesowym slajd 4
Identyfikacja aktorów Kto komunikuje się z systemem? Kto będzie korzystał z funkcji systemu? Kto będzie system pielęgnował? Jakie urządzenia system obsługuje? (aktorzy nieożywieni) Z jakimi innymi systemami system się komunikuje? (aktorzy będący innymi systemami) Kto lub co jest zainteresowane wynikami pracy systemu? slajd 5
Identyfikacja przypadków użycia Dla każdego aktora odpowiedz na pytania: jakiej funkcji aktor wymaga od systemu: czy aktor musi pamiętać, tworzyć, usuwać, modyfikować informacje w systemie czy aktor ma być powiadamiany o zdarzeniach w systemie, i na odwrót Rozważ, jakie są wejścia i wyjścia systemu Staraj się powiązać w jeden przypadek użycia zespół funkcji wspólnie realizujących ten sam cel Opisz przypadki użycia w języku naturalnym, według określonego szablonu Zobrazuj aktorów i przypadki użycia na diagramie przypadków użycia Przeanalizuj powiązania pomiędzy aktorami, pomiędzy przypadkami użyciaoraz pomiędzy aktorami i przypadkami użycia slajd 6
Przypadki użycia biznesowe i programowe BIZNESOWE Cel: pokazanie roli i usług dostarczanych przez organizację Granica: Usługi wykonywane przez ludzi mogą być wewnątrz systemu Aktorzy wewnętrzni użytkownicy systemu w danej organizacji PROGRAMOWE, funkcjonalne Cel: pokazanie wymagań względem systemu Granica: Wewnątrz systemu tylko funkcjonalność oprogramowania (ewent. obsługiwanych urządzeń) Zameldowanie Rezerwacj a Recepcjonistka Rejestracja zameldowania <<include>> Gość W ymeldowanie Recepcjonista Rejestracja wymeldowania <<include>> Płacenie Sprzątaczka Pobieranie nr pokoju do sprzątniecia Zaznaczenie do sprzątnięcia Sprzą tnię cie pokoju Rejestracja sprzątnięcia slajd 7 Pokojowa
Przykład: : Hotel - Opis problemu Hotel Hilton przyjmuje gości. Recepcjonista rejestruje i wymeldowuje gości oraz pobiera opłatę. W hotelu jest wiele pokoi; sprzątają je pokojowe. Pokój może być wynajęty bezpośrednio przy przyjeździe gościa, jeżeli istnieją wolne pokoje. Gość płaci recepcjoniście przed wymeldowaniem. Pokój może być posprzątany dopiero po zwolnieniu. Pokój musi być sprzątnięty przed wynajęciem kolejnemu gościowi. slajd 8
Diagram przypadków użycia (biznesowy) Zameldowanie Gość Wymeldowanie Recepcjonista Sprzątnięcie pokoju Pokojowa slajd 9
Opis tekstowy przypadków użycia Przypadek użycia: Zameldowanie OPIS TEKSTOWY Sposób postępowania podczas zameldowania gościa do pokoju PROCEDURA S1: Gość wchodzi do hotelu. S2: System sprawdza, czy Gość zarezerwował pokój. S3: Jeśli TAK, wtedy przejdź do S4. Jeśli NIE, system sprawdza, czy są wolne pokoje. Jeśli TAK, pokój jest rezerwowany dla Gościa; przejdź do S4. Jeśli NIE, przypadek jest kończony z komunikatem: BRAK MIEJSC. S4: Pokój jest przydzielony Gościowi. Do Recepcjonisty jest wysyłany komunikat PODAJ KLUCZ I KARTĘ. Gość otrzymuje klucz i kartę gościa. slajd 10
Opis tekstowy przypadków użycia Przypadek użycia: Wymeldowanie S1: Gość przybywa do recepcji z zamiarem opuszczenia hotelu. S2: System oblicza rachunek. Gość płaci. S3: Recepcjonista wysyła komunikat do Pokojowej, aby sprzątnęła zwalniany pokój. S4: Do Recepcjonisty system wysyła komunikat ODBIERZ KLUCZ. Gość zwraca klucz i kartę gościa. Przypadek użycia: Sprzątnięcie pokoju S1: Pokojowa otrzymuje komunikat od Recepcjonisty o konieczności sprzątnięcia podanego pokoju. S2: Pokojowa sprząta pokój. S3: Pokojowa wysyła komunikat do Recepcjonsty o sprzątnięciu pokoju. slajd 11
Związki między przypadkami użycia Zawiera (include) - w starszych wersjach używa (uses) związek A include B oznacza, że w czasie wykonywania przypadku użycia A jest wykonywana także funkcjonalność zdefiniowana przez B Rozszerza (extend) przypadek użycia C rozszerza przypadek użycia D, gdy opcjonalnie (w określonych warunkach) do D zostaje włączone wykoanie funkcjonalności C, np. C uzwględnia nową sytuację wyjątkową nie obsługiwaną przez D. Rejestracja samochodu «include» Przegląd samochodu «extend» Mycie samochodu slajd 12 Uogólnienie (Aktor-Aktor) (Przypadek użycia-przypadek użycia)
Opis warunków na związku ze stereotypem <<extend extend>> Punkt rozszerzeń (ang. extensionpoint) miejsce w którym może nastąpić Rozszerzenie wyspecyfikowane przez związek <<extend>> slajd 13
Możliwość specyfikacji krotności na powiązaniu aktora z przypadkiem użycia slajd 14 Krotności
Hotel model funkcjonalny Re zerwacj a Recepcjonistka Rejestracja zameldowania <<include>> Rejestracja wymeldowania Płacenie <<include>> Sprzątaczka Pobieranie nr pokoju do sprzątniecia Zaznaczenie do sprzątnięcia Rejestracja sprzątnięcia slajd 15
Opis nieformalny Opis ustrukturalizowany Opis przypadku użycia Interakcje pomiędzy aktorami a systemem lub pomiędzy obiektami w systemie na diagramach opisujących dynamikę systemu Cechy opisu: Powinien opisywać użyteczną funkcjonalność systemu. Powinien określać, jak i kiedy przypadek się zaczyna i kończy. Powinien zawierać opis interakcji przypadku użycia z aktorami (przepływ zdarzeń, uczestniczące obiekty). Powinien składać się z przebiegu podstawowego oraz przebiegów alternatywnych (wyjątkowych). Powinien uwzględniać związki pomiędzy przypadkami użycia. slajd 16
Ustrukturalizowany opis przypadku użycia Wzorzec opisu Nazwa przypadku Nazwa przypadku użycia Nazwy obiektów Nazwy obiektów, których dotyczy przypadek użycia Aktorzy Obiekty inicjujące/biorące udział w przypadku Streszczenie Skrótowy opis najważniejszych zachowań modelowanych przez przypadek użycia Zdarzenie inicjujące Zdarzenie rozpoczynające sekwencję interakcji Struktura Opis struktury przypadku użycia Warunki początkowe Warunki umożliwiające wystąpienie danego przypadku użycia Pełny opis Opis interakcji pomiędzy obiektami, z wyszczególnieniem miejsc, w których mogą wystąpić sytuacje wyjątkowe Sytuacje wyjątkowe Opis nietypowych sytuacji (przebiegów) mogących wystąpić w ramach przypadku użycia Warunki końcowe Stan, w jakim przypadek użycia pozostawia uczestniczące w nim obiekty Komentarz Dodatkowe informacje nie związane z funkcjonalnością danego przypadku użycia, przydatne w dalszych etapach modelowania slajd 17
Ustrukturalizowany opis przypadku użycia Przykład opisu Nazwa przypadku Nazwa obiektu Aktorzy Streszczenie Wymeldowanie System hotelowy Gość, Recepcjonista Procedura realizowana przy opuszczaniu hotelu przez gościa Zdarzenie inicjujące Zgłoszenie wyjazdu przez Gościa Struktura Brak Warunki początkowe Brak Pełny opis Sytuacje wyjątkowe Warunki końcowe Komentarz Gość zgłasza wyjazd, płaci i zwraca klucze od pokoju (wyjątek: zgubione klucze). Recepcjonista sprawdza zapłacenie rachunku (wyjątek: nie zapłacono) i wydaje Pokojowej polecenie sprzątnięcia pokoju. Zgubiono klucze: żądanie zapłacenia przez Gościa kosztu kluczy. Nie zapłacono: żądanie zapłacenia rachunku przez Gościa. Pobyt opłacony, klucz zwrócony, zainicjowane sprzątanie pokoju. Sprzątanie pokoju jest osobnym przypadkiem użycia. Obsługa sytuacji Zgubiono klucze oraz obsługa płacenia mogą być modelowane osobnymi przypadkami użycia. slajd 18
Use Case Model in Context Functional requirements specification User interface design Use case model System design Configuration of the system Test design slajd 19
Przypadki użycia w cyklu wytwarzania oprogramowania Specyfikacja wymagań funkcjonalnych na system Weryfikacja poprawności i kompletności specyfikacji wymagań Wspomaganie walidacji wymagań Punkt wyjścia do opracowania testów (w tym akceptacyjnych) systemu Identyfikacja składowych (obiektów) systemu Podstawa do opracowania diagramów interakcji (scenariuszy) Możliwość śledzenia, jak wymagania przeradzają się w klasy obiektów i operacje systemu Podstawa do oceny rezultatów testów slajd 20
Zalety modelowania przypadkami użycia Określenie granic systemu i aktorów zewnętrznych Funkcjonalność systemu wyrażona w terminach istotnych dla aktorów zewnętrznych Określenie logiki realizacji funkcjonalności w systemie Zrozumiałość i komunikatywność Przydatność w różnych fazach cyklu wytwarzania oprogramowania Przydatność dla celów prezentacji i dokumentacji slajd 21
Biblioteka model biznesowy Wypożyczenie książki Czytelnik Zwrot książki Bibliotekarz Korzystanie z książki w czytelni slajd 22
Biblioteka poglądowy model programowy Przeglądanie katalogu Zamawianie książki W ydawanie książek Czytelnik Zwrot książek Sprawdzanie konta <<extend>> odnotownie opłaty za przetrzymywanie Bibliotekarz Wysyłanie upomnień Dodawanie/usuwanie książek Zarządzanie kontami czytelników slajd 23