nakreślenie perspektywy
Transkrypt
nakreślenie perspektywy
Projektowanie systemów multimedialnych Plan wykładu • Podstawy projektowania obiektowego - Elementy UML • Projektowanie dla web - WebML - Webratio • Projektowanie interfejsów / GUI • Multimedia w internecie Elementy UML Ujednolicony Język Modelowania. Twórcami UMLa są Grady Booch, James Rumbaugh i Ivar Jacobson ("trzej amigos") Język rozwijany początkowo przez firmę Rational, obecnie opiekuje się nim Object Management Group (OMG) – Zrzeszenie firm, w tym: IBM, Apple Computer, Sun Microsystems Obecna wersja 2.1.2 Specyfikacja http://www.omg.org/spec/UML/2.1.2/ Elementy UML „Zadaniem UML jest wyposażyć ludzi zajmujących się tworzeniem i rozwojem oprogramowania w narzędzia analizy, projektowania i implementacji systemów opartych na oprogramowaniu jak również narzędzia modelowania procesów biznesowych i podobnych.” – www.uml.org Język komunikacji między „architektami” i „budowniczymi” Elementy UML Wykorzystanie UML w cyklu życia oprogramowania (model kaskadowy) Określenie wymagań Projektowanie Implementacja Testowanie UML Konserwacja Elementy UML UML jest językiem obejmującym szeroki zakres zastosowań. Nie wszystkie jego elementy składowe są potrzebne przy opisywaniu konkretnej domeny tworzenia systemów lub konkretnej aplikacji. Modułowa budowa języka UML pozwala na wybór tylko tych jego części, które są właściwe do opisu danego problemu. Elementy UML Podział na moduły jest dopasowany do konieczności uwzględnienia różnych punktów widzenia na system Np. użytkownika projektanta programisty Perspektywy patrzenia Perspektywy • • • • • Perspektywa przypadków użycia Perspektywa dynamiczna Perspektywa logiczna Perspektywa komponentów Perspektywa rozlokowania UML 2.x Perspektywy • Perspektywa przypadków użycia • Definiuje zakres i oczekiwaną funkcjonalność projektowanego systemu • Kluczowa wobec pozostałych • Operuje pojęciami zrozumiałymi dla wszystkich udziałowców przedsięwzięcia Perspektywy • Perspektywa logiczna • Dokumentuje statykę systemu • Ukazuje powiązania logicznych elementów składowych systemu (klasyfikatory i ich instancje) Perspektywy • Perspektywa dynamiczna • Opisuje dynamikę systemu • Ukazuje sposób realizacji oczekiwanych zachowań instancji klasyfikatorów w systemie Perspektywy • Perspektywa komponentów • Dedykowana dla programistów • Specyfikacja oprogramowania na poziomie komponentów składowych Perspektywy • Perspektywa rozlokowania • Specyfikacja systemu od strony sprzętu niezbędnego do jego prawidłowego funkcjonowania Diagramy UML 2.0 W rzeczywistości język UML składa się z zestawu diagramów wykorzystywanych w poszczególnych perspektywach Każdy diagram posiada pewną ilość typów elementów składowych. Typy te mogą być dostosowywane do potrzeb konkretnego zastosowania - opisywanego konkretnego problemu Dla typowych zastosowań tworzone są zestawy elementów składowych wykorzystywanych na diagramach. Diagramy UML 2.0 Diagram klas (class diagram) + zamówienie 1..* PL + Zamówienie - dataZlozenia : int + klient + Hurtownia - nazwa : String - adres : String + zamówienie 1..1 + hurtownia 1..1 + podst. platnosci + platnosc 1..* *.kls *.cld + Naleznosc + Platnosc - terminPlatnosci : int - suma : float 1/13 + Wplyw + zaksieguj() Diagramy UML 2.0 Diagram obiektów (object diagram) PL *.obk *.od 2/13 • Rodzaj diagramu klas • Odwzorowanie struktury systemu w wybranym momencie działania • Tylko elementarne informacje Diagramy UML 2.0 Diagram pakietów (package diagram) *.pkt *.pd 3/13 • Porządkowanie dokumentacji rozbudowanego systemu • Stosowany we wszystkich perspektywach architektury systemu Diagramy UML 2.0 Diagram struktur połączonych (composite structure diagram) *.spl *.csd 4/13 • Ilustruje współdziałanie różnych elementów systemu (części współdziałania) przy realizacji konkretnego zadania Diagramy UML 2.0 Diagram komponentów (component diagram) • Modelowanie elementów oprogramowania i związków między nimi + oferta + Transakcja.exe IPrzelew IArtykul *.kmp *.cod IArtykul IKupujacy + aukcja IAkceptacja 5/13 ILicytacja ILogowanie + :Kwota Diagramy UML 2.0 Diagram rozlokowania (deployment diagram) • Modelowanie rozmieszczenia infrastruktury sprzętowej Komputer egzaminatora : klient Komputer studenta : klient *.rzk *.dd TCP/IP 6/13 ethernet Serwer obslugi egz. : serwer HP 1500 : drukarka USB Diagramy UML 2.0 Diagram przypadków użycia (use case diagram) • Określają funkcjonalność systemu i sposób komunikowania się użytkowników • Definiowanie wymagań od systemu + student + Dokonaj rejestracji *.uzc *.ud + Przeprowadz lekcje + wykladowca + Przeprowadz egzamin 7/13 + Przegladaj wyniki + Przygotuj zadanie Diagramy UML 2.0 Diagram czynności (activity diagram) • Graficzne przedstawienie przepływów sterowania i danych między uporządkowanymi ciągami czynności Wprowadz login *.czn *.ad [login nieznany] [else] wprowadz haslo 8/13 [trzecia pomylka] [bledne haslo] [else] Diagramy UML 2.0 Diagram maszyny stanowej (state machine diagram) • Pokazuje sekwencję stanów przez które przechodzi obiekt w odpowiedzi na zdarzenia Planowany H Edytowany *.stn *.sm Zatwierdzony Przeprowadzany 9/13 Anulowany Zakonczony Diagramy UML 2.0 Diagram sekwencji (sequence diagram) • Opisuje sekwencje komunikatów wymienianych między obiektami Recepcjonista : Rezerwacja : BazaDanych : otwórzRezerwacje() *.skw *.sd sprawdzDostepnoscPokoi() wprowadzDane() 10/13 zamknij() dokonajRezerwacji() Diagramy UML 2.0 Diagram komunikacji (communication diagram) • Uwidacznia strukturalną organizację i komunikowanie się między instancjami recepcjonista : *.kmn *.cd 1 : otworzRezerwacje() 2 : wprowadzDane() 3 : zamknij() IRezerwacja : recepcjonista irezerwacja irezerwacja 1.1 : sprawdzDostepnoscPokoi() 2.1 : dokonajRezerwacji() 11/13 2.1.1 : potwierdzRezerwacje() baza : baza Diagramy UML 2.0 Diagram harmonogramowania (timing diagram) *.hrm *.td 12/13 • Reprezentuje zmiany w czasie dopuszczalnych stanów instancji klasyfikatora • Pokazywane są stany instancji uczestniczących w interakcji Diagramy UML 2.0 Diagram sterowania interakcją (interaction overview diagram) *.kls *.cld 13/13 • Łączy diagramy sekwencji, komunikacji, harmonogramowania przepływami sterowania tworząc logiczny ciąg. Kolejność budowania diagramów • • • • Przypadków użycia Klas Czynności Sekwencji Niezobowiązująca Diagram przypadków użycia • Umożliwia jednoznaczną dokumentację wymagań użytkowników wobec projektowanego systemu • Określa funkcjonalność tworzonego systemu oraz sposób komunikowania się użytkowników z systemem • Przedstawia interakcję aktorów z przypadkami użycia systemu Diagram przypadków użycia • Umożliwia analizę obszaru zastosowań systemu • Umożliwia opracowanie projektu systemu • Dość zrozumiały dla typowego „śmiertelnika”. Ułatwia komunikację między grupami zajmującymi się systemem (inwestorzy – projektanci - programiści) Diagram przypadków użycia Aktor + student Określa rolę jaką pełni wobec systemu konkretny użytkownik, typ użytkownika Np. Student Wykładowca System obsługi stypendiów … Diagram przypadków użycia Przypadek użycia + przegladaj oceny Określa poszczególne usługi świadczone przez system na rzecz aktorów Np. Udostępnianie cennika Przyjmowanie zamówień Drukowanie faktur … Diagram przypadków użycia Związek Semantyczne powiązanie między elementami diagramu Najczęściej – asocjacja Asocjacja – opisuje powiązania między instancjami. Standardowo wskazuje na komunikację dwukierunkową, nie oznacza konkretnego przepływu Diagram przypadków użycia Pojedynczy przypadek użycia + Pacjent + Zapisz na wizyte Pokazuje, co system robi dla aktora a NIE jak to robi Diagram przypadków użycia Przypadki użycia z określoną granicą obszaru zastosowań systemu + Doktor + Przepisz recete + Zapisz na wizyte + Pacjent Klinika Diagram przypadków użycia Przypadki użycia wykorzystywane przez różnych aktorów + Doktor + Przepisz recepte + Pokaz wolne terminy + Pacjent + Zapisz na wizyte Diagram przypadków użycia Inne rodzaje związków Include - zawieranie • Związek obligatoryjny • Zawierany PU nie jest wykonywany samodzielnie + Zapisz na wizyte Przypadek zawierający <<include>> + Sprawdz karte pacjenta Przypadek zawierany Diagram przypadków użycia Inne rodzaje związków Include - zawieranie • Najczęściej stosowane gdy przypadek zawierany jest ponownie wykorzystywany + Doktor + Przepisz recepte <<include>> + Pokaz wolne terminy + Sprawdz karte pacjenta <<include>> + Pacjent + Zapisz na wizyte Diagram przypadków użycia Inne rodzaje związków Extend - rozszerzanie • Związek opcjonalny + Przeprowadz badanie Przypadek rozszerzany <<extend>> + Wykonaj analizy Przypadek rozszerzający Diagram przypadków użycia Inne rodzaje związków Extend - rozszerzanie • Czasem jawnie podane miejsca rozszerzeń + Przeprowadz badanie Extension Points Badania okresowe: Niepewna diagnoza: <<extend>> + Pobierz wymaz <<extend>> + Wykonaj analize krwi <<extend>> + Wykonaj USG Diagram przypadków użycia Inne rodzaje związków generalization - uogólnienie • ogólne określenie szeregu podobnych instancji + Zapisz wyniki badan Przypadek ogólny + Zapisz wynik morfologii pacjenta + Zapisz USG pacjenta Przypadek szczegółowy Diagram przypadków użycia Inne rodzaje związków generalization - uogólnienie + Pracownik Kliniki • dotyczy również aktorów Przypadek ogólny + Lekarz + Pracownik obslugi rejestracji + Laborant Przypadek szczegółowy Diagram przypadków użycia Inne rodzaje związków generalization - uogólnienie + Pracownik Kliniki • możliwa struktura drzewiasta + Lekarz + Pracownik obslugi rejestracji + Pediatra + Laborant + Gastrolog + Laryngolog Diagram przypadków użycia Liczebność na DPU + Doktor 1 0..* + Przepisz recepte Diagram przypadków użycia Przykłady + sprawdz stan zamowienia <<include>> + klient + Zaloguj + Zloz zamowienie <<include>> Extension Points Zbyt maly kredyt: + Sprzedawca <<extend>> + Obsluz zbyt maly kredyt + Dokonaj platnosci + Dokonaj platnosci przelewem + dokonaj platnosci karta Diagram przypadków użycia Przykłady + Technik + Pracownik banku + Kasjer + Wplac srodki <<extend>> + Serwisuj bankomat + Wplac gotowke w bankomacie + Pracownik dzialu pozyczek + Podejmij srodki <<extend>> + Podejmij gotowke w bankomacie + Zaopiniuj pozyczke <<extend>> + Zloz wniosek o pozyczke + Klient Diagram przypadków użycia Tworzenie DPU Proces iteracyjny Wyszczególnić można etapy • identyfikacja aktorów • identyfikacja przypadków użycia • opracowanie związków (asocjacje) • ewentualne rozszerzenie o związki dodatkowe (zawieranie, uogólnienie) • udokumentowanie przypadków użycia Diagram przypadków użycia Scenariusze przypadku użycia Sposób dokumentacji przypadku użycia Precyzyjny opis pełnej funkcjonalności reprezentowanej przez dany przypadek użycia Jeden PU ma scenariusz główny i ewentualnie scenariusze alternatywne Diagram przypadków użycia Scenariusze przypadku użycia Sposób dokumentacji przypadku użycia Precyzyjny opis pełnej funkcjonalności reprezentowanej przez dany przypadek użycia Jeden PU ma scenariusz główny i ewentualnie scenariusze alternatywne Diagram przypadków użycia Scenariusze przypadku użycia Przykład sformalizowanego zapisu scenariusza PU Nazwa: <W postaci wyrażenia czasownikowego> Kontekst użycia: <Cel, normalne warunki wystąpienia> Zakres i poziom: <Czy przypadek użycia dotyczy całego przedsiębiorstwa, wybranego systemu czy fragmentu oprogramowania? Na jakim poziomie szczegółowości jest opisany?> Aktor główny: <Nazwa głównego aktora, opis jego roli> Pozostali aktorzy i udziałowcy: <Nazwy aktorów, ich interesy> Wyzwalacze / Inicjacja: <Zdarzenie powodujące rozpoczęcie przypadku użycia> Warunki początkowe: <Co system zapewnia przed zezwoleniem na rozpoczęcie przypadku użycia?> Diagram przypadków użycia Scenariusze przypadku użycia Przykład sformalizowanego zapisu scenariusza PU (cd.) Warunki końcowe: - Gwarancje powodzenia: <Warunki spełnione po pomyślnym wykonaniu głównego scenariusza przypadku użycia> - Minimalne gwarancje: <Minimalne wymagania prawdziwe na końcu każdego przebiegu przypadku użycia (również niepoprawnego)> Główny scenariusz powodzenia / Przepływ podstawowy: <Numer kroku> <Opis akcji> <Numer kroku> <Opis akcji> Przepływy alternatywne: <Numer zmienionego kroku> <Opis akcji> Punkty rozszerzenia: <Miejsca i warunki występowania rozszerzeń> Specjalne wymagania (np. niefunkcjonalne): Dodatkowe informacje: