Inżynieria oprogramowania

Podobne dokumenty
Modelowanie i analiza systemów informatycznych Spis treści

Michał Adamczyk. Język UML

UML w Visual Studio. Michał Ciećwierz

Diagram przypadków użycia

Diagramy przypadków uŝycia. związków między nimi

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Modelowanie obiektowe - Ćw. 5.

Diagramy przypadków użycia. WYKŁAD Piotr Ciskowski

Modelowanie obiektowe - Ćw. 3.

UML. dr inż. Marcin Pietroo

Spis treúci. 1. Wprowadzenie... 13

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2

Modelowanie i Programowanie Obiektowe

Podstawy języka UML UML

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Podstawy programowania III WYKŁAD 4

INŻYNIERIA OPROGRAMOWANIA. laboratorium

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski

UML (Unified Modeling Language jest to sposób formalnego opisu modeli reprezentujących projekty informatyczne.

Wykład 1 Inżynieria Oprogramowania

Język UML w modelowaniu systemów informatycznych

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Diagramy klas. WYKŁAD Piotr Ciskowski

Projektowanie systemów multimedialnych

Unified Modeling Language

Modelowanie i analiza systemów informatycznych

Projektowanie systemów informatycznych. wykład 6

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Spis treści. Część I Diagramy języka UML Wstęp 7. Rozdział 1. Studia przypadków 13. Rozdział 2. Diagramy przypadków użycia 29

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia. Materiały dla nauczyciela

Jêzyk UML 2.0 w modelowaniu systemów informatycznych

Podstawy języka UML UML

Paweł Kurzawa, Delfina Kongo

Świat rzeczywisty i jego model

WPROWADZENIE DO UML-a

Wykład I. Wprowadzenie do baz danych

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Źródło: S. Wrycza, B. Marcinkowski, K. Wyrzykowski Język UML 2.0 w modelowaniu systemów informatycznych Helion DIAGRAMY INTERAKCJI

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Modelowanie Procesów Biznesowych Wykład 3 Notacja UML cz. 1

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Rysunek 1: Przykłady graficznej prezentacji klas.

Analiza i projektowanie obiektowe w UML Kod przedmiotu

Modelowanie i analiza systemów informatycznych.

Modelowanie. Wykład 1: Wprowadzenie do Modelowania i języka UML. Anna Kulig

UML - zarys 2007/2008

Diagramy przypadków użycia

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Wymiar poziomy: oś na której umieszczono instancje klasyfikatorów biorące udział w interakcji.

Podstawy języka UML2 w realnych projektach

Inżynieria oprogramowania

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Podstawy inżynierii oprogramowania

Inżynieria oprogramowania Wprowadzenie. WYKŁAD Piotr Ciskowski

Projektowanie Systemów Informatycznych 2011/2012

Podstawy modelowania programów Kod przedmiotu

PRZEWODNIK PO PRZEDMIOCIE

problem w określonym kontekście siły istotę jego rozwiązania

UML cz. II. UML cz. II 1/38

Określanie wymagań. Cele przedsięwzięcia. Kontekst przedsięwzięcia. Rodzaje wymagań. Diagramy przypadków użycia use case diagrams

Diagramy sekwencji. wymienianych między nimi

Analiza i projektowanie obiektowe 2017/2018. Wykład 3: Model wiedzy dziedzinowej

Podstawy projektowania systemów komputerowych

MODELOWANIE OBIEKTOWE

Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych. Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska

PRZEWODNIK PO PRZEDMIOCIE

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

STANDARD UML 2.3 W ZARZĄDZANIU WYTWARZANIEM OPROGRAMOWANIA

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Programowanie obiektowe - 1.

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD

Projektowanie systemów informatycznych. Diagramy przypadków użycia

UML cz. I. UML cz. I 1/1

Modelowanie obiektowe - Ćw. 6.

KARTA PRZEDMIOTU. 1) Nazwa przedmiotu: INŻYNIERIA SYSTEMÓW I ANALIZA SYSTEMOWA. 2) Kod przedmiotu: ROZ-L3-20

1. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla nauczyciela

Oprogramowanie o wysokiej jakości to oprogramowanie spełniające następujące kryteria:

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

Inżynieria oprogramowania Wprowadzenie. WYKŁAD Piotr Ciskowski

Modelowanie obiektowe

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji

Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji

PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH 2010/2011 MGR DOROTA MIROWSKA

Diagramy interakcji. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

KARTA MODUŁU KSZTAŁCENIA

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

Faza analizy (modelowania) Faza projektowania

Diagramy czynności Na podstawie UML 2.0 Tutorial

Transkrypt:

Inżynieria oprogramowania Wprowadzenie do Unified Modeling Language. Diagramy przypadków życia dr Beata Kuźmińska-Sołśnia

Wprowadzenie Czym jest model? Model to układ (...) możliwie mało skomplikowany, działający analogicznie do oryginału Świat rzeczywisty - Słownik Języka Polskiego, PWN 1998 Model System komputerowy

Analiza i modelowanie systemów Elementy świata i modelu użytkownicy, systemy zewnętrzne; dane, ich struktura, sposób przetwarzania, zależności statyczne i dynamiczne; procesy, ich struktura i rozmieszczenie;... Metodyka modelowania jest opisem czynności, sposobu i kolejności ich realizacji; czynności te mają prowadzić ku MODELOWI, zapewniając jednocześnie metody utrzymania wysokiej jakości (spełnienia wymagań użytkownika)

Istota modelowania Czym jest analiza? analiza to studium problemu przed podjęciem działania Tom DeMarco, 1978 Sposoby zarządzania złożonością: abstrakcja: omijanie rzeczy nieistotnych hermetyzacja: ukrywanie rzeczy złożonych dziedziczenie: uogólnianie wspólnych cech kojarzenie: porównywanie analogii komunikacja: jak porozumiewają się elementy modelu skalowanie: dopasowanie opisu do rozmiaru problemu klasyfikacja: grupowanie zachowań elementów modelu.

Cele modelowania 1. divide et impera, czyli dekompozycja 2. łatwiejsze wyobrażenie systemu 3. specyfikacja struktury i zachowania 4. dokumentacja decyzji podjętych w trakcie realizacji

Cztery zasady modelowania 1. Dobór modelu ma istotny wpływ na końcowy produkt - Różne sposoby postrzegania rzeczywistości prowadzą do różnych rozwiązań 2. Każdy model można przedstawić na różnych poziomach szczegółowości. Wybór poziomu zależy od celu 3. Model powinien być dobrą abstrakcją rzeczywistości 4. System powinien być opisany przez kilka spójnych i komplementarnych modeli. Do różnych celów potrzebne są modele o różnym poziomie szczegółowości

W świecie obiektowym Elementy świata świat składa się z obiektów procesy i dane są zintegrowane Komunikacja między nimi obiekty komunikują się za pomocą przekazywania zdarzeń

Wzrost znaczenia obiektowości wyzwania postępu technologicznego w informatyce, polegające na coraz bardziej powszechnym użytkowaniu systemów czasu rzeczywistego i systemów wbudowanych różnorodność i powszechność aplikacji internetowych w gospodarce opartej na wiedzy, czyli w takich dziedzinach jak e-business, e-health, e-government, e-learning multimedialny charakter aplikacji, wykorzystujących w coraz większym stopniu dźwięk, głos, grafikę, film globalizacja gospodarki, a zatem integracja systemów informatycznych - w telekomunikacji, bankowości, edukacji, turystyce, transporcie powszechność i dostępność aplikacji, zwłaszcza internetowych, dla potrzeb społeczeństwa informacyjnego

Podejście obiektowe w zastosowaniach metodykach tworzenia oprogramowania (przede wszystkim Rational Unified Process) graficznych językach ogólnego przeznaczenia (UML) obiektowych językach programowania (JAVA, platforma.net) bazach danych (np. ObjectStore)

Podstawowe pojęcia obiektowości Obiekt (object) reprezentacja konkretnego elementu świata, posiadająca pewne cechy i oferująca pewne usługi Klasa (class) Uogólnienie zbioru obiektów, które mają takie same atrybuty, operacje, związki i znaczenie (zbiór obiektów podobnych lub o wspólnych cechach) Komunikat (message) specyfikacja wymiany informacji między obiektami, zawierająca zlecenia wykonana określonej operacji

Podstawowe pojęcia obiektowości Hermetyzacja (encapsulation) różnicowanie dostępu do obiektu poprzez ujawnienie otoczeniu tylko tych informacji o jego atrybutach lub operacjach, które są niezbędne do efektywnego odwoływania się do obiektu w systemie za pośrednictwem komunikatu Polimorfizm (polymorphism) - możliwość nadawania tej samej nazwy różnym atrybutom i operacjom oraz wykonywania różnych procedur i akcji poprzez operacje o tych samych nazwach; pozwala na redukcję liczby nazw atrybutów i operacji Dziedziczenie (inheritance) - przyporządkowanie atrybutów i operacji klasom obiektów na podstawie hierarchicznej zależności między nimi. Możliwe jest wielokrotne dziedziczenie, co oznacza, że dana klasa dziedziczy atrybuty i operacje z dowolnej liczby klas nadrzędnych

Czym jest UML? Metodyką - UML nie określa metody modelowania - zaleca jedynie stosowanie podejścia przyrostowego Narzędziem - UML to specyfikacja dla narzędzi Językiem programowania - Generowanie kodu z modelu stosowane obecnie na niewielką skalę Notacją graficzną - UML określa sposób zapisu modeli UML nie jest UML jest

Menedżerowie, projekty i zespoły

Czym jest UML? UML oznacza Ujednolicony Język Modelowania (Unified Modelling Language) UML jest językiem wizualizacji, specyfikacji, konstrukcji i dokumentacji artefaktów związanych z tworzeniem oprogramowania Model UML jest wypadkową wielu widoków różnych aspektów systemu UML abstrahuje od obiektu modelowania i metodologii modelowania

UML ma być: Gotowy do użytku Ekspresywny Prosty Precyzyjny Rozszerzalny Niezależny od implementacji Niezależny od procesu

UML - historia OOPSLA 1995: wesja 0.8 Metody Zunifikowanej (Booch & Rumbaugh, Rational Software), dołącza Jacobson UML 2.1 niezależne notacje modelowania: Booch, Coad/Yourdon, OMT, OOSE, Fusion Włącznie się do prac OMG UML 1.0 (Rational Software) i UML 1.1 (OMG) UML 1.3 UML 1.5 UML 2.0 ok. 1990 1995 1996 1997 2000 2003 2004 2006/07

Geneza i ewolucja języka

Wkład dominujących podejść w standard UML

Język UML powinien w sposób ścisły definiować podstawowe i zaawansowane kategorie oraz zasady modelowania obiektowego umożliwiać dostosowywanie wykorzystywanej semantyki i notacji do rozwiązywania szerokiego spektrum problemów wykazywać elastyczność wystarczającą do modelowania, obok systemów oprogramowania, także systemów biznesowych wykazywać daleko posuniętą niezależność od konkretnych języków programowania oraz metodyk tworzenia systemów informatycznych uwzględniać skalę realizowanych współcześnie projektów, związanych z bardzo rozbudowanymi systemami o kluczowym znaczeniu dla funkcjonowania przedsiębiorstw

Zakres UML Skupiono się na standardzie języka do modelowania a nie na standardzie procesów tworzenia oprogramowania Wysiłek autorów jest skoncentrowany na stworzeniu wspólnego metamodelu i wspólnej notacji Promowany jest proces: ukierunkowany na przypadki użycia systemu skoncentrowany na architekturze iteracyjny i przyrostowy

Zakres UML c.d. Bloki konstrukcyjne elementy strukturalne (np. przypadki użycia, klasy, interfejsy, komponenty, węzły ) czynnościowe (np., interakcja i maszyna stanowa) grupujące (pakiety) komentujące (notatki) Związki (zależności, powiązania, uogólnienia, realizacje) Diagramy struktury zachowania

UML dwa podstawowe elementy Notacja istotna z punktu widzenia modelowania elementy graficzne składnia języka modelowania istotna przy szkicowaniu modeli Metamodel - istotny z punktu generacji kodu definicje pojęć języka i powiązania pomiędzy nimi istotny przy graficznym modelowaniu

Diagramy UML 2.0 Diagram struktury Diagram klas Diagram pakietów Diagram obiektów Diagram struktur połączonych Diagram przypadków użycia Diagram zachowania (dynamiki) Diagram czynności Diagram maszyny stanowej Diagram wdrożeniowy Diagram sekwencji Diagram interakcji Diagram komunikacji Diagram komponentów Diagram rozlokowania Diagram harmonogramowania Diagram sterowania interakcją

Charakterystyka diagramów Diagramy struktury Diagram klas (Class Diagram) kls / cld Diagram obiektów (Object Diagram) obk / od Graficzne przedstawienie statycznych, deklaratywnych elementów dziedziny przedmiotowej oraz związków między nimi Wystąpienie diagramu klas, odwzorowujące strukturę systemu w wybranym momencie jego działania

Charakterystyka diagramów Diagram pakietów (Packade Diagram) pkt / pd Diagramy struktury Graficzne przedstawienie logicznej struktury w postaci zestawu pakietów połączonych zależnościami i zagnieżdżeniem Diagram struktur połączonych (Composite Structure Diagram) spl / csd Graficzne przedstawienie wzajemnie współdziałających części dla osiągnięcia pożądanej funkcjonalności współdziałania

Charakterystyka diagramów Diagram wdrożeniowy Diagram komponentów (Component Diagram) kmp / cod Rodzaj diagramu wdrożeniowego, który wskazuje organizację i zależności między komponentami Diagram rozlokowania (Deploymet Diagram) rzk / dd Rodzaj diagramu wdrożeniowego, który przedstawia sieć połączonych ścieżkami komunikowania węzłów z ulokowanymi na nich artefaktami

Charakterystyka diagramów Diagram przypadków użycia (Use Case Diagram) uzc / ud Diagram czynności (Activity Diagram) czn / ad Diagram maszyny stanowej (Stare Machine Diagram) stn / sm Diagramy zachowania Graficzne przedstawienie przypadków użycia, aktorów oraz związków między nimi, występujących w danej dziedzinie przedmiotowej Graficzne przedstawienie sekwencyjnych i (lub) współbieżnych przepływów sterowania oraz danych pomiędzy uporządkowanymi ciągami czynności, akcji i obiektów Graficzne odzwierciedlenie dyskretnego, skokowego zachowania skończonych systemów stan-przejście

Charakterystyka diagramów Diagramy interakcji Diagram sekwencji (Sequence Diagram) skw / sd Rodzaj diagramu interakcji, opisujący interakcje pomiędzy instancjami klasyfikatorów systemu w postaci sekwencji komunikatów wymienianych między nimi Diagram komunikacji (Communication Diagram) kmn / cd Rodzaj diagramu interakcji, specyfikujący strukturalne związki pomiędzy instancjami klasyfikatorów biorącymi udział w interakcji oraz wymianę komunikatów pomiędzy tymi instancjami

Charakterystyka diagramów Diagramy interakcji Diagram harmonogramowania (Timing Diagram) hrm / td Rodzaj diagramu interakcji, reprezentujący na osi czasu zmiany dopuszczalnych stanów, jakie może przyjmować instancja klasyfikatora uczestnicząca w interakcji Diagram sterowania interakcją (Interaction Overview Diagram) sin / iod Rodzaj diagramu interakcji, dokumentujący przepływ sterowania pomiędzy logicznie powiązanymi diagramami i fragmentami interakcji z wykorzystaniem kategorii modelowania diagramów czynności

Język UML Klasyfikator to abstrakcyjna kategoria modelowania systemu w języku UML, która uogólnia kolekcję instancji o tych samych cechach Instancja jest wystąpieniem, egzemplarzem klasyfikatora Klasyfikator ustrukturyzowany zawiera specyfikację wewnętrznej struktury. Pojęcie to odnosi się do diagramów struktur połączonych

Nieobramowanej Diagramy mogą być w postaci Obramowanej - diagram w postaci obramowanej otoczony jest prostokątną ramą (ang.frame) zawierającą nagłówek nagłówek Merytoryczna zawartość diagramu <nagłówek-diagramu> ::= [<rodzaj>] <nazwa> [<parametry>] rama rodzaj - pełny lub skrótowy wyróżnik diagramu zawartego w ramie; nazwa - syntetyczna nazwa odzwierciedlająca merytoryczną zawartość diagramu; parametry - szczegółowe parametry kluczowe dla danego diagramu, np. nazwy instancji klasyfikatorów, wartości zwrotne, operatory interakcji.

Perspektywy w opisie architektury systemu perspektywa przypadków użycia - kluczowa i dominująca wobec pozostałych, definiuje zakres i oczekiwaną funkcjonalność tworzonego systemu; perspektywa dynamiczna - wskazuje, w jaki sposób jest realizowane zachowanie instancji klasyfikatorów w systemie; perspektywa logiczna - dokumentuje statykę systemu; perspektywa komponentów - przeznaczona głównie dla programistów, specyfikuje oprogramowanie na poziomie komponentów; perspektywa rozlokowania - specyfikuje sprzęt informatyczny niezbędny do funkcjonowania konkretnych komponentów systemu.

Modelowanie perspektyw architektury systemu Diagram klas Diagram obiektów Diagram struktur połączonych Diagram pakietów Perspektywa dynamiczna (Dynamic View) Perspektywa logiczna (Logical View) Perspektywa przypadków użycia (Use Case View) Diagram interakcji Diagram czynności Diagram maszyny stanowej Diagram struktur połączonych Diagram pakietów Diagram przypadków użycia Diagram pakietów Perspektywa komponentów (Implementation View) Diagram komponentów Diagram pakietów Perspektywa rozlokowania (Deployment View) Diagram rozlokowania Diagram pakietów

Mechanizmy rozszerzalności stereotyp ograniczenie metka

Stereotyp Stereotyp to mechanizm rozszerzalności, który wzbogaca zbiorowość standardowych kategorii modelowania języka UML Stereotypy Tekstowe pakietów jest «subsystem», związku zależności - «include» czy też «extend», komponentu - «file». Graficzne mają domyślnie postać specyficznych symboli graficznych umieszczanych na stereotypowanych elementach

Ograniczenie Ograniczenie to wyrażenie semantyczne określające warunek bądź zastrzeżenie związane z ograniczanym elementem modelowania bądź grupą elementów Ograniczenie jest w istocie tekstem wyrażonym w języku naturalnym, formułą matematyczną, predykatem logiki formalnej bądź instrukcją pseudokodu Ograniczenia umieszczane są w nawiasach klamrowych w bezpośrednim sąsiedztwie elementu lub elementów, których znaczenie jest precyzowane; np. {disjoint} {czas < 15 min}.

Metka Metka stanowi jawne zdefiniowanie właściwości w postaci przyporządkowania nazwawartość Najpowszechniej metki stosuje się celem określenia właściwości istotnych w generowaniu kodu oraz zarządzaniu konfiguracjami; np. {wersja = beta} {model = HP LaserJet 1500L}

Diagramy przypadków użycia Diagram przypadków użycia to graficzne przedstawienie przypadków użycia, aktorów oraz związków między nimi, występujących w danej dziedzinie przedmiotowej

Znaczenie diagramów przypadków użycia Celem podstawowym jest identyfikacja i dokumentacja wymagań Zadania powiązane z celem głównym umożliwiają analizę obszaru zastosowań, dziedziny przedmiotowej; pozwalają na opracowanie projektu przyszłego systemu; stanowią przystępną i zrozumiałą platformę komunikacji i współpracy udziałowców (ang. stakeholders) systemu - aktorów, twórców systemu, inwestorów i właścicieli są rodzajem umowy, kontraktu pomiędzy udziałowcami co do zakresu i funkcjonalności przyszłego systemu stanowią podstawę testowania funkcji i systemu na dalszych etapach jego cyklu życia.

Podstawowe kategorie pojęciowe oraz notacja graficzna Przypadki użycia Aktorzy Związki Kategorie te w każdym diagramie są ze sobą ściśle powiązane

Przypadek użycia Przypadek użycia to specyfikacja ciągu akcji i ich wariantów, które system (lub inna jednostka) może wykonać poprzez interakcje z aktorami tego systemu Przypadek użycia (ang. use case) jest więc kompleksowym działaniem realizowanym w systemie w konsekwencji określonej aktywności aktora (ang. actor) Nazwę przypadku użycia stanowi zwięzłe polecenie wykonania funkcji w projektowanym systemie, sformułowane w trybie rozkazującym Rezerwuj wycieczkę Sprzedaj towar Oznaczenia przypadków użycia

Przypadek użycia Alternatywne notacje przypadków użycia Rezerwuj wycieczkę Sprzedaj towar Rezerwuj wycieczkę Sprzedaj towar

Aktor Aktor jest to spójny zbiór ról odgrywanych przez użytkowników przypadku użycia w czasie interakcji z tym przypadkiem użycia Podstawowe rodzaje aktorów Konsultant System rezerwacji miejsc hotelowych Dział sprzedaży Bank hipoteczny Termin płatności Nagrywarka DVD-RAM

Związek Związek stanowi semantyczne powiązanie pomiędzy elementami modelu W diagramach języka UML wyróżnić można cztery rodzaje związków: asocjację uogólnienie zależność realizację

Asocjacja Asocjacja jest związkiem pomiędzy dwoma lub więcej klasyfikatorami, opisującym powiązania pomiędzy ich instancjami W diagramach przypadków użycia asocjacja wskazuje zatem domyślnie na dwukierunkową komunikację pomiędzy aktorem a przypadkiem użycia Może ona dodatkowo występować w formie ze wskazaniem kierunku nawigacji Klient System obsługi kart kredytowych Rezerwuj wycieczkę Zweryfikuj wiarygodność płatności Związki asocjacji w diagramie przypadków użycia

Podstawowe elementy diagramów przypadku użycia nazwa pojęcia notacja graficzna Przypadek użycia Aktor Asocjacja

Diagram przypadków użycia aukcji internetowej Dokonaj rejestracji Dokonaj transakcji Licytuj Serwis transakcji Uczestnik Wyszukaj artykuł Obserwator

DPU system obsługi hurtowni Przyjmij dostawę towarów System obsługi hurtowni Magazyn Wydaj towar Generuj zestawienie sprzedaży miesięcznej Generuj zestawienie obrotów Kierownik magazynu Generuj zestawienie zapasów Wystaw fakturę Dział sprzedaży

Zaawansowane składniki diagramu rozbudowa DPU poprzez zróżnicowanie związków zależność zawierania zależność rozszerzania uogólnienie rodzaje aktorów liczebność nawigacja realizacja przypadki użycia typu CRUD diagram kontekstowy dokumentacja przypadków użycia

Rozbudowa DPU poprzez różnicowanie związków Asocjacja to podstawowy rodzaj związku wykorzystywany w konstruowaniu diagramów przypadków użycia Poza nią na diagramach przypadków użycia modelować można związki zależności, uogólnienia i realizacji Porządkującą rolę mogą odegrać tu diagramy pakietów, przedstawione. Szczególne możliwości rozbudowywania diagramów przypadków użycia stwarzają zależności (ang. dependencies) Zależność to taki związek pomiędzy dwoma elementami modelowania, w którym zmiana jednego z nich, niezależnego, wpływa na drugi, zależny Zależności zawierania, rozszerzania

Zależności zawierania Dokonaj rezerwacji «include» Sprawdź listę dostępnych pokoi Sens tworzenia zależności zawierani na diagramie przypadków użycia występuje w dwóch sytuacjach: istnieje możliwość wydzielenia w formie zawieranego przypadku użycia pewnej spójnej, wspólnej dla kilku innych przypadków użycia funkcjonalności; jest to przykład praktycznego zastosowania zasady ponownego użycia - nie zachodzi konieczność powielania analogicznej treści w wielu przypadkach użycia; tym samym często występująca funkcjonalność jest reprezentowana jednokrotnie na diagramie i wykorzystywana przez inne przypadki użycia interakcje aktor-system wyrażone w dokumentacji scenariusza tego przypadku są bardzo liczne

Zależności rozszerzania Zależność rozszerzania «extend» przedstawia powiązanie pomiędzy rozszerzanym przypadkiem użycia, tj. przypadkiem bazowym, a przypadkiem rozszerzającym. Związek ten, w odróżnieniu od zależności zawierania, ma charakter opcjonalny Tworzenie zależności rozszerzania znajduje uzasadnienie, o ile funkcjonalność reprezentowana przez rozszerzany przypadek użycia ma zostać uzupełniona o kilka dodatkowych kroków. Nie mają one być jednak automatycznie wykonywane przy każdym odwołaniu do tego przypadku użycia, a jedynie w określonych sytuacjach. Sprawdź listę dostępnych pokoi «extend» Zarządzaj pokojami

Różne rodzaje zależności stereotypowanych Dokonaj rezerwacji «include» Sprawdź listę dostępnych pokoi «extend» «extend» Zarządzaj pokojami Przekaż rezerwację centrali sieci

Miejsca rozszerzenia w przypadku użycia Sprawdź listę dostępnych pokoi Miejsca rozszerzenia: Modyfikacja danych o pokojach Brak pokoi spełniających kryteria «extend» «extend» Zarządzaj pokojami Przekaż rezerwację centrali sieci

Miejsca rozszerzenia - notacja alternatywna Sprawdź listę dostępnych pokoi «extend» Zarządzaj pokojami Miejsca rozszerzenia: Modyfikacja danych o pokojach Brak pokoi spełniających kryteria «extend» Przekaż rezerwację centrali sieci

Notatki w opisie miejsc rozszerzeń Miejsce rozszerzenia: modyfikacja danych o pokojach Sprawdź listę dostępnych pokoi «extend» «extend» Miejsce rozszerzenia: brak pokoi spełniających kryteria Zarządzaj pokojami Przekaż rezerwację centrali sieci

Uogólnienia Związki uogólnienia (ang. generalizations) dotyczą w kontekście charakteryzowanego diagramu zarówno przypadków użycia, jak i aktorów Uogólnienie to związek o charakterze taksonomicznym pomiędzy klasyfikatorem ogólnym a specjalizowanym Sporządź raport sprzedaży Recepcjonista Sporządź raport Pracownik hotelu Sporządź raport o reklamacjach a Kierownik restauracji hotelowej b

Hierarchia dziedziczenia wyrażona poprzez związki uogólnienia System obsługi płatności System obsługi płatności gotówkowych System obsługi płatności bezgotówkowych System obsługi kart kredytowych System rejestracji przelewów

Rodzaje aktorów Klasyczna reprezentacja - człowiek System zewnętrzny Urządzenie Czas Stereotypy graficzne aktorów

Zastosowanie stereotypów graficznych aktorów Zarządzaj danymi klientów Utwórz kopię zapasową Recepcjonista Ostatni dzień miesiąca Sporządź listę płac Zamów bilet Zarejestruj podatnika Kiosk multimedialny Wnieś opłatę System ubezpieczeń Wylicz kapitał początkowy

Stereotypy tekstowe aktorów <<Actor>> Recepcjonista <<Actor>> Ostatni dzień miesiąca <<Actor>> Kiosk multimedialny <<Actor>> System ubezpieczeń

Liczebność ud Aukcja internetowa 1 Dokonaj rejestracji Dokonaj transakcji O..* 1 1 1 1 O..* Licytuj Serwis transakcji Uczestnik O..* Wyszukaj artykuł O..* 1 Obserwator

Nawigacja na diagramach przypadków użycia ud Aukcja internetowa 1 Dokonaj rejestracji Dokonaj transakcji O..* 1 <<system>> Serwis transakcji 1 1 1 O..* Licytuj Uczestnik O..* Wyszukaj artykuł O..* 1 Obserwator

Realizacja Realizacja to związek znaczeniowy między klasyfikatorami, z których jeden określa kontrakt, a drugi zapewnia wywiązanie się z niego Dokonaj transakcji <<realize>> Przetwarzanie transakcji <<refine>> Zdjęcie artykułu z aukcji

Przypadki użycia typu CRUD CRUD Create - tworzenie, wprowadzanie Read - odczytywanie, wyszukiwanie Update - aktualizacja, modyfikowanie Delete - usuwanie, skreślanie Możliwości zaprojektować elementarne przypadki użycia Wprowadź zamówienie, Wyszukaj zamówienie, Aktualizuj zamówienie, Usuń zamówienie; wyspecyfikować uogólniony przypadek użycia Zarządzaj zamówieniami lub Utrzymuj dane zamówienia.

Stosowanie nazw ścieżkowych Nazwa przypadku użycia może być prosta lub ścieżkowa. Nazwa prosta jest rutynowym sposobem określania przypadków użycia, natomiast w ramach stosowania nazwy ścieżkowej nazwę przypadku użycia poprzedza nazwa pakietu, w którym dany przypadek użycia się znajduje Przyjmij zamówienie ObsługaZamówień:: Przyjmij zamówienie

Diagram kontekstowy Stanowi zestawienie aktorów będących w interakcji z danym systemem traktowanym w kategorii pojedynczego procesu Termin zakończenia sesji Student Dziekan <<system>> System administrowania Uczelnią System rezerwacji bibliotecznej System e-learningu Pracownik Rektoratu Pracownik Dziekanatu POS System obsługi stypendium

Dokumentacja przypadków użycia Każdy przypadek użycia powinien być uzupełniony o stosowną dokumentację, charakteryzującą scenariusze tego przypadku użycia (ang. use case scenarios). Scenariusz stanowi określony ciąg akcji dokumentujący zachowanie. Dla danego przypadku użycia zawsze należy wyróżnić scenariusz główny. Dokumentacja przypadku użycia może ponadto zawierać scenariusze alternatywne Scenariusz główny Scenariusze alternatywne Scenariusze alternatywne Scenariusze alternatywne W praktycznych zastosowaniach występują sytuacje zdeterminowane, charakteryzujące się niewystępowaniem alternatyw. Naturalnie w takich przypadkach opisuje się wyłącznie scenariusz główny

Dokumentacja przypadków użycia Opisy mogą przybrać postać: niesformalizowanego tekstu, formalnego tekstu strukturalnego, pseudokodu, tabeli

Szablon dokumentacji przypadku użycia Nazwa Numer Twórca Poziom ważności Typ przypadku użycia Aktorzy Krótki opis Warunki wstępne Warunki końcowe Główny przepływ zdarzeń Alternatywne przepływy zdarzeń Specjalne wymagania Notatki i kwestie Numer identyfikacyjny przypadku użycia Pełna nazwa przypadku użycia Dane twórcy przypadku użycia, np.. imię, nazwisko, stanowisko Określenie poziomu ważności przypadku z perspektywy użytkownika, np.. niski, średni, wysoki Określenie typ przypadku użycia z punktu widzenia jego złożoności oraz ważności dla zaspokojenia potrzeb użytkownika, np.. Ogólny/szczegółowy; niezbędny/istotny/przeciętnie istotny/mało istotny Lista aktorów będących w związku z przypadkiem użycia Krótka, ogólna charakterystyka przypadku użycia Charakterystyka koniecznych warunków inicjujących przypadek Charakterystyka stanu systemu po realizacji przypadku użycia Wypunktowana i scharakteryzowana lista przepływów zdarzeń zachodzących podczas realizacji przypadku użycia: scenariusz głowy Wypunktowana i scharakteryzowana lista możliwych, alternatywnych przepływów zdarzeń przypadku użycia Wypunktowana i scharakteryzowana lista dodatkowych zintegrowanych wymagań niefunkcjonalnych, które mogą być istotne przykładowo podczas projektowania czy kodowania Lista wszelkich komentarzy dotyczących przypadku użycia i lista pozostałych otwartych kwestii, które powinny zostać rozwiązane wraz z propozycjami osób, które mogłyby je rozwiązać

Dokumentacja przypadku użycia Anuluj rezerwacje Nazwa Anuluj rezerwacje Numer 5 Twórca Poziom ważności Typ przypadku użycia Aktorzy Krótki opis Warunki wstępne Warunki końcowe Główny przepływ zdarzeń Henryk Kowalski - Projektant Średni Ogólny Recepcjonista, Kierownik recepcji Anulowanie istniejącej rezerwacji pokoju lub apartamentu Co najmniej jeden pokój lub apartament hotelowy musi być zarezerwowany System odnotowuje pokój lub (i) apartament jako dostępny 1. Recepcjonista weryfikuje rezerwacje, uruchamiając funkcję Rezerwacje 2. System wyświetla okno z informacjami o rezerwacjach (pokoje i apartamenty hotelowe) 3. Pracownik recepcji zaznacza rezerwacje do anulowania i uruchamia funkcję Anuluj rezerwacje 4. System wyświetla komunikat Czy anulować zaznaczone rezerwacje? 5. Pracownik recepcji potwierdza operację anulowania zaznaczonych rezerwacji 6. System potwierdza wykonanie operacji komunikatem Anulowano wybrane rezerwacje i odświeża ekran monitora

Dokumentacja przypadku użycia Anuluj rezerwacje c.d. Nazwa Anuluj rezerwacje Alternatywne przepływy zdarzeń Specjalne wymagania 2a. System wyświetla komunikat Brak rezerwacji 3a. Pracownik recepcji rezygnuje z anulowania rezerwacji 3b. Jeśli podczas rezerwacji podany został adres e-mail, pracownik może wysłać do klienta pocztą elektroniczną informację o anulowaniu rezerwacji 1. Wysoka niezawodność systemu 2. Czas przetwarzania operacji anulowania rezerwacji może przekroczyć 5 sekund Notatki i kwestie Brak

Proces tworzenia diagramu przypadków użycia kolejne etapy identyfikacja aktorów, opcjonalne opracowanie diagramu kontekstowego identyfikacja przypadków użycia opracowanie związków - w szczególności asocjacji, wykorzystanie wszystkich kategorii zaawansowanych do opracowania diagramu przypadków użycia udokumentowanie przypadków użycia z wykorzystaniem szablonów

Bibliografia Stanisław Wrycza, Bartosz Marcinkowski, Krzysztof Wyrzykowski, Język UML 2.0 w modelowaniu systemów informatycznych, Helion, Gliwice 2005. Janusz Górski, Inżynieria oprogramowania w projekcie informatycznym, MIKOM, Warszawa 2000. Andrzej Jaszkiewicz, Inżynieria oprogramowania, Helion, Gliwice 1997.