370 likes | 675 Views
UML cz. II. Prowadzący: Bartosz Walter. Plan wykładów. Zasady skutecznego działania Specyfikacja wymagań (przypadki użycia) Przeglądy artefaktów (inspekcje Fagana) Język UML, cz. I Język UML, cz. II Metody formalne (sieci Petriego) Wzorce projektowe Zarządzanie konfiguracją (CVS)
E N D
UML cz. II Prowadzący: Bartosz Walter
Plan wykładów Zasady skutecznego działania Specyfikacja wymagań (przypadki użycia) Przeglądy artefaktów (inspekcje Fagana) Język UML, cz. I Język UML, cz. II Metody formalne (sieci Petriego) Wzorce projektowe Zarządzanie konfiguracją (CVS) Wprowadzenie do testowania Automatyzacja wykonywania testów (jUnit) Programowanie Ekstremalne Ewolucja oprogramowania i refaktoryzacja
Agenda • Diagram komponentów • Diagram pakietów • Diagramy interakcji • Rodzaje komunikatów • Diagramy stanu i czynności • Mechanizm rozszerzeń UML • OCL • Narzędzia UML
Diagram komponentów Komponent reprezentuje podsystem (grupę powiązanych klas), który wymaga pewnych interfejsów, a pewne interfejsy implementuje. Diagram komponentów pokazuje zależności pomiędzy komponentami i interfejsami komponent korzysta z implementacji dostarczonej przez Katalog implementuje interfejs Przeszukiwanie
Zależności pomiędzy komponentami Katalog zależy od Menedżera wydawnictw Menedżer wydawnictw zależy od Bazy danych
Diagram pakietów Pakiety w UML służą do przechowywania innych elementów języka, przede wszystkim klas. Dzięki nim można uporządkować strukturę modelu. Pakiet Obsługa czytelników::GUI
Diagram wdrożenia Diagramy wdrożenia przedstawiają powiązania między oprogramowaniem (artefaktami) i sprzętem (węzłami). Są stosowane przy modelowaniu dużych systemów ścieżka komunikacyjna artefakt węzeł
Diagramy interakcji Diagramy interakcji w UMLu opisują komunikację między obiektami. Zwykle diagramy należą do określonych obiektów. Rodzaje diagramów interakcji w UML: • diagram sekwencji • diagram współdziałania (UML 1.x) lub diagram komunikacji (UML 2.0) • diagram przeglądu interakcji • diagram uwarunkowań czasowych
Diagram sekwencji Diagram sekwencji przedstawia sposób wymiany komunikatów pomiędzy obiektami z zachowaniem ich kolejności sd czas
Rodzaje komunikatów wywołanie procedury powrót z wywołania wyw. asynchroniczne UML 1.x UML 2.0
loop (0, zamówienie.size) Bloki Blok definiuje grupę komunikatów wspólnie posiadającą pewną właściwość.
: Katalog : Katalog : Karta : Karta : Egzemplarz : Czytelnik : Czytelnik wyszukaj sprawdź status wyszukaj przedłuż ustawStatus Przykład
1.1: wyszukaj 1.2: status 1.2: wypożycz Diagram współdziałania Diagram komunikacji przedstawia sposób wymiany komunikatów pomiędzy obiektami uczestniczącymi w interakcji. Jest rozszerzoną wersją diagramu współdziałania.
Diagram przeglądu interakcji Diagram przeglądu interakcji łączy diagramy interakcji w ogólny diagram czynności, przedstawiający schemat przepływu sterowania [książka niedostępna] [książka dostępna]
Diagram uwarunkowań czasowych Diagram uwarunkowań czasowych koncentruje się na zależnościach czasowych w interakcji pomiędzy grupą obiektów Bibliotekarz rezerwacja weryfikacja rozłącz rezerwacja Czytelnik { 1 min }
Diagram stanu Diagram stanu reprezentuje zachowanie obiektu o skończonej liczbie stanów i zdefiniowanych przejściach między nimi
Stan Stan jest etapem cyklu życia obiektu. Obiekt przebywający w danym stanie spełnia określony warunek. entry: w momencie wejścia do stanudo: wewnątrz stanu exit: w momencie wyjścia ze stanu event: w momencie nadejścia zdarzenia
[ liczba < 4 ] Nowa stan początkowy Otwarta [ liczba >=4 ] / sprawdź dostępność [ specjalna zgoda ] decyzja Zamknięta stan końcowy synchronizacja Usunięta Pseudostany Diagram zawiera także grupę stanów niezwiązanych z dziedziną zastosowań, tzw. pseudostanów
Przejście między stanami Przejście powoduje zmianę stanu i wykonanie pewnych akcji wyzwalacz [dozór] / akcja ^ wysyłane zdarzenia Zdarzenie wyzwalające przejście Wysyłane zdarzenia Warunek pozwalający na przejście Akcja wykonywana w momencie przejścia
Stany złożone Stany złożone posiadają wewnętrzną maszynę stanów. Wejście do stanu jest jej stanem początkowym, a wyjście – końcowym.
przedłużenie[ liczba przedłużeń < 3 ] / data oddania = teraz + 3 tygodnie wypożyczenie[ zarezerwowana ] Nabyta Dostępna Wypożyczona wypożyczenie[ nie zarezerwowana ] zwrot przegląd[ stan < 10% ] / dostępna = false ^zablokuj w katalogu zagubiebie[ time > do kiedy + 3 mies ] przegląd[ stan < 10% ] / dostępna = false ^zablokuj w katalogu Zgubiona Zniszczona Przykład
Diagram czynności Diagramy czynności przedstawiają akcje wykonywane w systemie oraz wynikające z nich zmiany stanów. stan początkowy akcja stan
czytelnik katalog lokalny katalog zdalny wyszukaj wyszukaj zdalnie lokalnie [ true ] pusta [ false ] analiza połącz wydawnictwo : Wydawnictwo Przykład
Mechanizm rozszerzeń UML UML posiada standardowy mechanizm rozszerzeń. Pozwala on na objęcie nowych dziedzin zastosowań bez potrzeby modyfikacji języka lub implementujących go narzędzi. Mechanizm obejmuje trzy elementy • profile • stereotypy • metki
Profile UML Profile UML są narzeczami języka UML przystosowanymi do modelowania pewnej dziedziny zastosowań. Profil obejmuje zdefiniowane stereotypy, metki, ograniczenia.
Stereotypy Stereotypy służą do zmieniania lub doprecyzowania semantyki elementów modelu. Dzięki nim można dokładnie określić ich rolę w systemie. Stereotypy są reprezentowane przez ikonę lub słowo kluczowe ujęte w "łapki": «stereotyp» Różne sposoby przedstawienia stereotypu «EJBSession» w klasie RejestratorCzytelników
Metki Metki (ang. tagged values) pozwalają dołączyć do elementu dodatkowe właściwości • Metki posiadają postać par klucz : wartość • Stereotypy i profile definiują własne zestawy metek • Metki są zapisywane w postaci notatki dołączonej do elementu, którego dotyczą metka EJBTransType określa sposób zarządzania transakcjami w ziarnie EJB
OCL OCL (Object Constraint Language) jest językiem formalnego wyrażania ograniczeń w UML • Własności OCL • wyraża dowolną regułę logiczną: warunki wstępne, końcowe, niezmienniki, wyniki metod etc. • nie może modyfikować modelu, jedynie go sprawdzać • można go związać z dowolnym elementem modelu (klasą, operacją, atrybutem, asocjacją etc.)
{self.wiek >= 21} {self.wiek >= 18} Mąż Żona 1 1 1 1 poślubieni data ślubu data ślubu +mąż +żona {mąż.data ślubu = żona.data ślubu, mąż.żona = żona} 1 1 1 1 +matka +ojciec {matka.dziecko = matka.mąż.dziecko} {ojciec.dziecko = ojciec.żona.dziecko} 0..n 0..n 0..n 0..n +dziecko +dziecko Dziecko Przykład
Wybrane narzędzia: ArgoUML ArgoUML • open source, licencja BSD • wsparcie dla UML 1.4 • możliwość stałej inspekcji modelu • synchronizacja modelu z kodem • http://argouml.tigris.org
Wybrane narzędzia: Rational Rational Rose, Rational Software Modeler • narzędzia komercyjne • integracja z innymi narzędziami Rational • wsparcie dla UML 1.x (Rose) i UML 2.0 (Modeler) • wsparcie dla modelowania wybranych dziedzin i technologii • modelowanie biznesowe • synchronizacja modelu z kodem • http://www-306.ibm.com/software/rational/
Podsumowanie • Diagramy komponentów i wdrożenia przedstawiają logiczną i fizyczną strukturę podsystemów • Diagramy interakcji służą do opisu komunikacji pomiędzy obiektami • Diagramy czynności definiują algorytmy realizacji funkcji, a diagramy stanu – zmianę zachowania obiektów • Mechanizm rozszerzeń UML pozwala na obejmowanie nowych obszarów zastosowań • OCL jest językiem formalnego opisu ograniczeń