Wydawnictwo Helionul. Chopina 644-100 Gliwicetel. (32)230-98-63e-mail: [email protected]
PRZYK£ADOWY ROZDZIA£PRZYK£ADOWY ROZDZIA£
IDZ DOIDZ DO
ZAMÓW DRUKOWANY KATALOGZAMÓW DRUKOWANY KATALOG
KATALOG KSI¥¯EKKATALOG KSI¥¯EK
TWÓJ KOSZYKTWÓJ KOSZYK
CENNIK I INFORMACJECENNIK I INFORMACJE
ZAMÓW INFORMACJEO NOWOŒCIACH
ZAMÓW INFORMACJEO NOWOŒCIACH
ZAMÓW CENNIKZAMÓW CENNIK
CZYTELNIACZYTELNIAFRAGMENTY KSI¥¯EK ONLINEFRAGMENTY KSI¥¯EK ONLINE
SPIS TREŒCISPIS TREŒCI
DODAJ DO KOSZYKADODAJ DO KOSZYKA
KATALOG ONLINEKATALOG ONLINE
Jêzyk UML 2.0 w modelowaniusystemów informatycznych
Autorzy: Stanis³aw Wrycza, BartoszMarcinkowski, Krzysztof WyrzykowskiISBN: 83-7361-892-9Format: B5, stron: 448
Poznaj uniwersalne narzêdzie projektowania obiektowego
• Diagramy jêzyka UML• Modelowanie biznesowe• Metodyki projektowe oparte na UML• Narzêdzia CASE
Rosn¹ca popularnoœæ programowania obiektowego zmieni³a równie¿ metody modelowania systemów informatycznych. Modelowanie strukturalne zosta³o zast¹pione przez modelowanie obiektowe. Standardem w tej dziedzinie sta³ siê jêzyk UML(Unified Modelling Language) — graficzny system wizualizacji, specyfikowania oraz dokumentowania sk³adników systemów informatycznych. Opis systemu wykonanyza pomoc¹ jêzyka UML jest jednoznaczny, co bardzo u³atwia napisanie kodu Ÿród³owego w oparciu o modele. Narzêdzia do modelowania obiektowego umo¿liwiaj¹ wygenerowanie szkieletu klas i obiektów, a po odpowiednim zintegrowaniu ze œrodowiskiem programistycznym — pozwalaj¹ na dwukierunkow¹ synchronizacjê modelu z kodem Ÿród³owym. W oparciu o jêzyk UML stworzona zosta³a metodyka projektowania oprogramowania nosz¹ca nazwê RUP (Rational Unified Process) zyskuj¹ca coraz wiêksze uznanie. Znajomoœæ jêzyka UML i metodologii RUP jest dziœ istotnym elementem kwalifikacji kierownika projektów informatycznych. Znajomoœæ jêzyka UML i metodyki RUP jest aktualnie istotnym elementem kwalifikacji analityków, projektantów i kierowników projektów informatycznych a tak¿e sk³adnikiem nowoczesnych programów studiów informatycznych.
• Definiowanie wymagañ funkcjonalnych systemu za pomoc¹ diagramów przypadków u¿ycia• Strukturyzacja przypadków u¿ycia i tworzenie diagramów klas• Opis dzia³ania systemu w postaci diagramu czynnoœci i diagramu stanów• Prezentacja komunikacji pomiêdzy elementami systemu za pomoc¹ diagramu interakcji• Tworzenie diagramów wdro¿eniowych• Modelowanie biznesowe i analityczne w metodyce RUP• Narzêdzia CASE• Plakat syntetycznie ujmuj¹cy notacjê UML 2.0
Modelowanie obiektowe to technologia przysz³oœci. Poznaj j¹ ju¿ dziœ
Spis treści Wstęp .............................................................................................. 9
Część I Podstawy języka UML 2.0 .............................................13
Rozdział 1. Język UML — rozwój, struktura, pojęcia .......................................... 15Znaczenie obiektowości w modelowaniu systemów informatycznych .......................... 15Geneza i ewolucja języka UML ..................................................................................... 17Diagramy UML 2.0 ........................................................................................................ 21Perspektywy w opisie architektury systemu ................................................................... 25Mechanizmy rozszerzalności .......................................................................................... 27
Stereotyp .................................................................................................................. 27Ograniczenie ............................................................................................................ 28Metka ....................................................................................................................... 28
Podstawowe pojęcia ....................................................................................................... 29Pytania i zadania ............................................................................................................. 30
Rozdział 2. Diagramy przypadków użycia ........................................................... 33Znaczenie diagramów przypadków użycia ..................................................................... 33Podstawowe kategorie pojęciowe oraz notacja graficzna ............................................... 34
Przypadek użycia ..................................................................................................... 34Aktor ........................................................................................................................ 35Związek .................................................................................................................... 36
Zaawansowane składniki diagramu ................................................................................ 39Rozbudowa DPU poprzez różnicowanie związków ................................................. 40Zależności zawierania .............................................................................................. 40Zależności rozszerzania ........................................................................................... 41Uogólnienia .............................................................................................................. 43Rodzaje aktorów ...................................................................................................... 45Liczebność ............................................................................................................... 46Nawigacja ................................................................................................................ 47Realizacja ................................................................................................................. 49Przypadki użycia typu CRUD .................................................................................. 49Stosowanie nazw ścieżkowych ................................................................................ 50Diagram kontekstowy .............................................................................................. 50Dokumentacja przypadków użycia .......................................................................... 51
Proces tworzenia diagramu przypadków użycia ............................................................. 54Studium diagramu przypadków użycia .......................................................................... 55Podstawowe pojęcia ....................................................................................................... 56Pytania i zadania ............................................................................................................. 57
4 Język UML 2.0 w modelowaniu systemów informatycznych
Rozdział 3. Diagramy klas ................................................................................ 61Znaczenie diagramów klas ............................................................................................. 61Podstawowe kategorie pojęciowe oraz notacja graficzna ............................................... 61
Asocjacja .................................................................................................................. 64Nazwy asocjacji ....................................................................................................... 65Role .......................................................................................................................... 66Nawigacja ................................................................................................................ 66Liczebność ............................................................................................................... 66Agregacja ................................................................................................................. 67
Zaawansowane składniki diagramu ................................................................................ 70Rodzaje diagramów klas .......................................................................................... 71Zobowiązania ........................................................................................................... 71Widoczność .............................................................................................................. 72Atrybuty i operacje statyczne ................................................................................... 73Nazwy klas, atrybutów i operacji ............................................................................. 73Notacja atrybutów i składnia operacji ...................................................................... 74Klasy asocjacyjne ..................................................................................................... 77Asocjacje zwrotne i wielokrotne .............................................................................. 79Kwalifikacja ............................................................................................................. 79Uogólnienia, klasy abstrakcyjne oraz konkretne ...................................................... 80Zależność ................................................................................................................. 83Realizacja ................................................................................................................. 83
Diagramy obiektów ........................................................................................................ 85Proces tworzenia diagramu klas ..................................................................................... 86Studium diagramu klas ................................................................................................... 87Podstawowe pojęcia ....................................................................................................... 89Pytania i zadania ............................................................................................................. 91
Rozdział 4. Diagramy czynności ........................................................................ 95Znaczenie diagramów czynności .................................................................................... 95Podstawowe kategorie pojęciowe oraz notacja graficzna ............................................... 96
Czynności a akcje ..................................................................................................... 96Zaawansowane składniki diagramu ................................................................................ 99
Przepływy sterowania .............................................................................................. 99Znacznik sterowania ................................................................................................ 99Przepływy decyzyjne ............................................................................................. 100Decyzja .................................................................................................................. 100Łącznik ................................................................................................................... 104Złączenie ................................................................................................................ 104Przepływy współbieżne .......................................................................................... 106Akcje ...................................................................................................................... 107Przepływy danych .................................................................................................. 111Przekaźniki danych ................................................................................................ 112Parametr czynności ................................................................................................ 116Wagi ....................................................................................................................... 117Sygnały .................................................................................................................. 118Bufor centralny ...................................................................................................... 118Składnica danych ................................................................................................... 120Partycje diagramów czynności ............................................................................... 121Obszar rozszerzenia ............................................................................................... 127Obszar przerwania .................................................................................................. 130Manipulator wyjątków ........................................................................................... 131
Spis treści 5
Proces tworzenia diagramu czynności .......................................................................... 132Studium diagramu czynności ....................................................................................... 133Podstawowe pojęcia ..................................................................................................... 135Pytania i zadania ........................................................................................................... 136
Rozdział 5. Diagramy maszyny stanowej .......................................................... 143Znaczenie diagramów maszyny stanowej ..................................................................... 143Podstawowe kategorie pojęciowe oraz notacja graficzna ............................................. 144Zaawansowane składniki diagramu .............................................................................. 146
Sekcje symbolu graficznego stanu ......................................................................... 146Klasyfikacja stanów ............................................................................................... 148Obszary współbieżne ............................................................................................. 150Pseudostany ............................................................................................................ 152Rodzaje przejść ...................................................................................................... 157Protokołowe maszyny stanowe .............................................................................. 158Maszyny stanowe zachowania ............................................................................... 161Zdarzenia ............................................................................................................... 163
Proces tworzenia diagramu maszyny stanowej ............................................................ 164Studium diagramu maszyny stanowej .......................................................................... 165Podstawowe pojęcia ..................................................................................................... 168Pytania i zadania ........................................................................................................... 169
Rozdział 6. Diagramy interakcji ....................................................................... 173Interakcje ...................................................................................................................... 173Diagramy interakcji ...................................................................................................... 173Składnia komunikatu .................................................................................................... 174Podstawowe pojęcia ..................................................................................................... 177Pytania i zadania ........................................................................................................... 177
Rozdział 7. Diagramy sekwencji ...................................................................... 179Znaczenie diagramów sekwencji .................................................................................. 179Podstawowe kategorie pojęciowe oraz notacja graficzna ............................................. 180
Rodzaje diagramów sekwencji ............................................................................... 180Klasyfikator, komunikat i linia życia ..................................................................... 181Rodzaje klasyfikatorów .......................................................................................... 183Ośrodek sterowania ................................................................................................ 184
Zaawansowane składniki diagramu .............................................................................. 185Rodzaje komunikatów ............................................................................................ 187Tworzenie i niszczenie obiektów ........................................................................... 190Warunki ................................................................................................................. 191Samowywołanie ..................................................................................................... 192Iteracja ................................................................................................................... 192Rozgałęzienie ......................................................................................................... 194Fragmenty wyodrębnione i operatory interakcji ..................................................... 196Przywoływane wystąpienia interakcji .................................................................... 214Bramy ..................................................................................................................... 216
Proces tworzenia diagramu sekwencji .......................................................................... 219Studium diagramu sekwencji ....................................................................................... 219Podstawowe pojęcia ..................................................................................................... 223Pytania i zadania ........................................................................................................... 224
6 Język UML 2.0 w modelowaniu systemów informatycznych
Rozdział 8. Diagramy komunikacji ................................................................... 231Znaczenie diagramów komunikacji .............................................................................. 231Podstawowe kategorie pojęciowe oraz notacja graficzna ............................................. 232
Numerowanie komunikatów .................................................................................. 233Zasady wprowadzania komunikatów do diagramu ................................................ 234
Zaawansowane składniki diagramu .............................................................................. 235Izomorfizm ............................................................................................................. 235Zagnieżdżenie ........................................................................................................ 235Poprzednik ............................................................................................................. 239Współbieżność ....................................................................................................... 239Obiekty wielokrotne ............................................................................................... 240Klasy aktywne ........................................................................................................ 241Inne kategorie zaawansowane ................................................................................ 242
Proces tworzenia diagramu komunikacji ...................................................................... 244Studium diagramu komunikacji .................................................................................... 245Podstawowe pojęcia ..................................................................................................... 247Pytania i zadania ........................................................................................................... 247
Rozdział 9. Diagramy harmonogramowania ...................................................... 251Znaczenie diagramów harmonogramowania ................................................................ 251Podstawowe kategorie pojęciowe oraz notacja graficzna ............................................. 252Zaawansowane składniki diagramu .............................................................................. 253
Zdarzenia i ograniczenia czasowe .......................................................................... 253Alternatywne sposoby prezentacji stanów ............................................................. 254Harmonizacja linii zmiany stanów ......................................................................... 254Przesyłanie komunikatów ...................................................................................... 256Diagramy sekwencji a harmonogramowanie ......................................................... 258
Proces tworzenia diagramu harmonogramowania ........................................................ 259Podstawowe pojęcia ..................................................................................................... 260Pytania i zadania ........................................................................................................... 260
Rozdział 10. Diagramy sterowania interakcją .................................................... 263Znaczenie diagramów sterowania interakcją ................................................................ 263Podstawowe kategorie pojęciowe oraz notacja graficzna ............................................. 264Zaawansowane składniki diagramu .............................................................................. 266Proces tworzenia diagramu sterowania interakcją ........................................................ 268Studium diagramu sterowania interakcją ...................................................................... 268Podstawowe pojęcia ..................................................................................................... 270Pytania i zadania ........................................................................................................... 271
Rozdział 11. Diagramy wdrożeniowe .................................................................. 273Znaczenie diagramów wdrożeniowych ........................................................................ 273Diagramy komponentów .............................................................................................. 273
Interfejsy ................................................................................................................ 277Specyfikacja komponentów ................................................................................... 278Porty ....................................................................................................................... 280Konektory .............................................................................................................. 280Implementacyjny diagram komponentów .............................................................. 281
Diagramy rozlokowania ............................................................................................... 282Węzły ..................................................................................................................... 284Ścieżki komunikowania ......................................................................................... 285Osadzone artefakty i komponenty .......................................................................... 286Manifestowanie ...................................................................................................... 287Specyfikacja rozlokowania .................................................................................... 289Diagramy rozlokowania na poziomie fizycznym ................................................... 290
Spis treści 7
Proces tworzenia diagramów wdrożeniowych ............................................................. 291Podstawowe pojęcia ..................................................................................................... 292Pytania i zadania ........................................................................................................... 293
Rozdział 12. Diagramy struktur połączonych ..................................................... 299Znaczenie diagramów struktur połączonych ................................................................ 299Podstawowe kategorie pojęciowe oraz notacja graficzna ............................................. 300Proces tworzenia diagramu struktur połączonych ........................................................ 302Podstawowe pojęcia ..................................................................................................... 303Pytania i zadania ........................................................................................................... 303
Rozdział 13. Diagramy pakietów ....................................................................... 305Znaczenie diagramów pakietów ................................................................................... 305Podstawowe kategorie pojęciowe oraz notacja graficzna ............................................. 305
Pakiet ..................................................................................................................... 306Zależność ............................................................................................................... 307Zagnieżdżenie pakietów ......................................................................................... 308
Zaawansowane składniki diagramu .............................................................................. 309Stereotypowanie pakietów ..................................................................................... 310Stereotypowanie zależności ................................................................................... 311
Proces tworzenia diagramu pakietów ........................................................................... 312Studium diagramu pakietów ......................................................................................... 312Podstawowe pojęcia ..................................................................................................... 314Pytania i zadania ........................................................................................................... 314
Część II Metodyki, modele i narzędzia wspomagające UML 2 ....317
Rozdział 14. Metodyka RUP ............................................................................. 319Znaczenie iteracyjno-przyrostowego procesu projektowania systemów ...................... 319Struktura RUP .............................................................................................................. 321
Dyscypliny ............................................................................................................. 323Fazy ........................................................................................................................ 325
Podstawowe pojęcia ..................................................................................................... 327Pytania i zadania ........................................................................................................... 328
Rozdział 15. Modelowanie biznesowe ................................................................ 329Znaczenie modelowania biznesowego ......................................................................... 329Podstawowe kategorie pojęciowe oraz notacja graficzna ............................................. 330Studium modelu biznesowego ...................................................................................... 331Podstawowe pojęcia ..................................................................................................... 341Pytania i zadania ........................................................................................................... 341
Rozdział 16. Modelowanie analityczne .............................................................. 343Znaczenie modelowania analitycznego ........................................................................ 343Podstawowe kategorie pojęciowe oraz notacja graficzna ............................................. 344Proces tworzenia modelu analitycznego ....................................................................... 346Studium modelu analitycznego .................................................................................... 349Podstawowe pojęcia ..................................................................................................... 350Pytania i zadania ........................................................................................................... 350
Rozdział 17. Komputerowe wspomaganie modelowania systemu ........................ 353Pakiety CASE wspomagające UML i RUP .................................................................. 353
Zakres wspomagania diagramów UML ................................................................. 355Generowanie szkieletowego kodu źródłowego ...................................................... 356Inżynieria zwrotna .................................................................................................. 357Obsługiwane platformy .......................................................................................... 358
8 Język UML 2.0 w modelowaniu systemów informatycznych
Sparx Systems Enterprise Architect ............................................................................. 359Narzędzia CASE firmy IBM pod marką Rational ........................................................ 362
IBM Software Development Platform .................................................................... 362Zastosowanie IBM Rational Software Modeler ..................................................... 363
Poseidon for UML ........................................................................................................ 366Platforma Eclipse ......................................................................................................... 366UML i RUP w zasobach Internetu ............................................................................... 368Podstawowe pojęcia ..................................................................................................... 369Pytania i zadania ........................................................................................................... 369
Dodatki ......................................................................................371
Dodatek A Definicje i pojęcia ......................................................................... 373
Dodatek B Notacja graficzna .......................................................................... 381
Dodatek C Diagramy ...................................................................................... 389
Dodatek D UML 2.0 w liczbach ...................................................................... 399
Dodatek E Słownik polsko-angielski ............................................................... 401
Dodatek F Słownik angielsko-polski ............................................................... 409
Dodatek G Spis rysunków .............................................................................. 417
Dodatek H Spis tabel ..................................................................................... 423
Dodatek I Literatura ..................................................................................... 425
Contents ...................................................................................... 431
Skorowidz ..................................................................................... 437
Rozdział 9.
Diagramyharmonogramowania
Znaczenie diagramówharmonogramowania
Analizowane i projektowane interakcje w systemie realizowane są w określonym cza-sie. Spełnienie kryterium czasu przez interakcję jest ważnym czynnikiem oceny tychsystemów — zwłaszcza systemów wbudowanych i systemów czasu rzeczywistego. Wy-chodząc naprzeciw tym oczekiwaniom, zaproponowano diagramy harmonogramowania.
Diagram harmonogramowania jest rodzajem diagramu interakcji, reprezentującymna osi czasu zmiany dopuszczalnych stanów, jakie może przyjmować instancjaklasyfikatora uczestnicząca w interakcji.
Diagramy te stosuje się w celu sporządzenia harmonogramów interakcji, a więc spe-cyfikacji interakcji instancji klasyfikatorów w aspekcie zmian czasu trwania ich sta-nów. Punktem wyjścia tych diagramów są podstawowe kategorie diagramów sekwen-cji oraz maszyn stanowych. Terminowa realizacja interakcji wymaga niekiedy wielkiejdokładności czasowej. W związku z tym na diagramach harmonogramowania możnaprzedstawiać kolejność występowania stanów instancji klasyfikatorów oraz czas ichtrwania. Wprowadzenie diagramów harmonogramowania w UML 2.0 jest istotną zmia-ną w stosunku do poprzednich wersji. Ich tworzenie i użytkowanie jest szczególniezalecane w systemach o rozbudowanej dynamice.
252 Część I ♦ Podstawy języka UML 2.0
Podstawowe kategorie pojęcioweoraz notacja graficzna
Diagramy harmonogramowania dokumentują aspekt czasu interakcji. Stąd w diagra-mie harmonogramowania na osi poziomej zaznacza się skalę czasu w postaci ustalo-nych odcinków. Natomiast na osi pionowej przedstawia się poszczególne instancjeklasyfikatorów biorące udział w interakcji, a przy każdej z nich jej stany. Z zasadydiagramy harmonogramowania tworzy się po opracowaniu diagramów sekwencji lubkomunikacji. Na diagramach tych bowiem precyzyjnie wskazane są instancje klasyfi-katorów występujące w systemie, a wyszczególnienie linii życia, ośrodków sterowaniai komunikatów ułatwia ustalenie jednostek na skali czasu. W ten sposób osiąga sięharmonizację interakcji pomiędzy instancjami klasyfikatorów w układzie czasowym.Akceptowalne jest również autonomiczne podejście do tworzenia wspomnianych dia-gramów, bez uwzględniania powiązanych diagramów sekwencji czy komunikacji, napodstawie innych posiadanych specyfikacji systemu.
W podstawowej postaci diagramu harmonogramowania ilustrowane są jego podstawo-we kategorie pojęciowe (por. rysunek 9.1):
klasyfikator,
nazwa stanu,
linia zmiany stanów instancji klasyfikatora.
Pojęcie klasyfikatora wprowadzono i omówiono w rozdziale 1., podczas gdy powszech-nie stosowane rodzaje klasyfikatorów języka UML 2 wskazano w rozdziale 7.
Lista możliwych stanów jest specyficzna dla każdej instancji klasyfikatora, jednakmożna wyróżnić kilka typowych stanów (ang. states), takich jak:
bezczynność,
czuwanie,
oczekiwanie,
wykonywanie,
obliczanie.
Linia zmiany stanów (ang. timeline) może przedstawiać stany instancji klasyfikatoralub określonej, mierzalnej zmiennej — np. natężenia hałasu lub poziomów wybranegoindeksu giełdowego. Diagram harmonogramowania w odniesieniu do instancji klasyfi-katora Rezerwacja ze stanami sporządzanie, potwierdzanie, opłacanie oraz wysyłanieprzedstawia rysunek 9.1.
Rozdział 9. ♦ Diagramy harmonogramowania 253
Rysunek 9.1.Diagramharmonogramowaniadla obiektu klasyRezerwacja
td Obsługa Rezerwacji
R
ezer
wac
ja
wysyłanie
opłacanie
potwierdzanie
sporządzanie
Kwadrans 0 1 2 3 4 5 6 7 8 9 10
Zaawansowane składniki diagramuPrzedstawiony na rysunku 9.1 diagram harmonogramowania jest użyteczny w dokumen-towaniu stosunkowo prostych interakcji. Istnieje jednak możliwość jego rozszerzeniao szereg zaawansowanych kategorii, takich jak:
zdarzenia,
ograniczenia czasowe,
alternatywne sposoby prezentacji stanów,
harmonizacja linii zmiany stanów dla kilku instancji klasyfikatorów biorącychudział w interakcji,
przesyłanie komunikatów.
Zdarzenia i ograniczenia czasowe
Załamanie linii zmiany stanów instancji klasyfikatora oznacza wystąpienie zdarzeniapowodującego zainicjowanie nowego stanu tej instancji. Zdarzenia w harmonogramierezerwacji przedstawia rysunek 9.2. Sprecyzowano na nim stany instancji klasyfikatoraRezerwacja i czas ich trwania poprzez określenie ograniczeń czasowych (ang. con-straints) w odniesieniu do stanów:
potwierdzanie — {<30 min},
sporządzanie — {30 min +/- 15 min},
opłacanie — {<=1 godzina}.
Jeśli skala czasu w sposób jednoznaczny określa długość trwania stanu, nie zaznaczasię ograniczeń czasowych, co zilustrowano na rysunku 9.2 dla stanu wysyłanie.
254 Część I ♦ Podstawy języka UML 2.0
td Obsługa Rezerwacji
Rez
erw
acja
wysyłanie
opłacanie
potwierdzanie
sporządzanie
{< 30 min}
nadejściePotwierdzenia
{30 min +/- 15 min}
wydrukPotwierdzenia
sporządzenieFaktury
{<= 1 godzina}
Kwadrans 0 1 2 3 4 5 6 7 8 9 10 Rysunek 9.2. Diagram harmonogramowania ze zdarzeniami i ograniczeniami czasowymi
Alternatywne sposoby prezentacji stanówPoza podstawową formą prezentacji diagramów harmonogramowania istnieje alterna-tywna konwencja ich dokumentowania. Obie notacje mogą być stosowane zamienniei wzajemnie przekształcane. Diagram harmonogramowania utworzony z wykorzysta-niem alternatywnej konwencji, będący odpowiednikiem rysunku 9.2, zaprezentowanona rysunku 9.3.
td Obsługa Rezerwacji
Rez
erw
acja
{< 30 min}
potwierdzanie nadejściePotwierdzenia
{30 min +/- 15 min}
sporządzanie
wydrukPotwierdzenia
wysyłanie
{<= 1 godzina}
opłacanie
Kwadrans 0 1 2 3 4 5 6 7 8 9 10
sporządzenieFaktury
Rysunek 9.3. Alternatywna notacja diagramów harmonogramowania
Harmonizacja linii zmiany stanówW interakcji w praktyce uczestniczy kilka, kilkanaście, a w niektórych sytuacjachnawet więcej instancji klasyfikatorów. Każda z nich może przyjmować określone sta-ny. Diagramy harmonogramowania umożliwiają przedstawienie interakcji w pełnym
Rozdział 9. ♦ Diagramy harmonogramowania 255
wymiarze, tzn. ze wszystkimi współpracującymi instancjami klasyfikatorów w hory-zoncie czasowym harmonogramu. W tak opracowanym diagramie harmonogramowa-nia osiąga się nie tylko specyfikację zmian stanu instancji klasyfikatora. Umożliwia onrównież przedstawienie interakcji instancji klasyfikatorów, które biorą udział w tej inte-rakcji w każdym momencie okresu, dla którego jest opracowany harmonogram. Stwarzato możliwość harmonizacji współdziałania instancji klasyfikatorów w czasie. Harmo-nizacja poszczególnych instancji klasyfikatorów i ich stanów na osi czasu może byćwłaściwie oddana wyłącznie z wykorzystaniem podstawowej notacji. Diagram na ry-sunku 9.4 jest przykładem harmonizacji instancji klasyfikatorów. Przedstawia przypa-dek rejestrowania rezerwacji w bazie danych hotelu.
td Rezerwacja Hotelowa
bezczynność
wprowadzanie
oczekiwanie
wyświetlanie
sprawdzanie danych
rezerwowanie
potwierdzanie
oczekiwanie
przetwarzanie
odpowiadanie
0 5 10 15 20 25 30 Sekunda
Baz
aDan
ych
IRez
erw
acja
Rec
epcj
onis
ta
Rysunek 9.4. Harmonogramowanie rejestrowania rezerwacji hotelowej
Przypadek rejestrowania rezerwacji w bazie danych hotelu jest elementem scenariuszawyspecyfikowanego na diagramie sekwencji przedstawionym na rysunku 7.5. W przy-padku tym występują trzy instancje klasyfikatorów:
Recepcjonista,
IRezerwacja,
BazaDanych.
256 Część I ♦ Podstawy języka UML 2.0
Na wstępie instancje te są odpowiednio w stanach: bezczynności, wyświetlania orazoczekiwania. W wyniku wystąpienia konkretnego zdarzenia, tj. przyjęcia zgłoszeniaklienta, recepcjonista otwiera rezerwację. Posługuje się w tym celu wyświetlaną na ekra-nie formatką IRezerwacja. Recepcjonista wprowadza dane, których kompletność orazpoprawność formalna jest sprawdzana przez IRezerwację. Następnie realizowana jestoperacja przetwarzania danych — fakt dokonania rezerwacji pokoju albo pokoi jest od-notowywany w BazieDanych. W ramach IRezerwacji wyświetlane jest potwierdzeniedokonania rezerwacji. W efekcie zakończenia realizacji całej transakcji poszczególneinstancje klasyfikatorów przechodzą do stanów wyjściowych.
Prezentowanie stanów kilku instancji klasyfikatorów w systemie jest możliwe takżez wykorzystaniem opisanej notacji alternatywnej. Notacja ta pozwala na specyfikacjęstanów poszczególnych instancji względem czasu trwania tych stanów. Nie zawiera onajednak elementu harmonizacji poszczególnych instancji klasyfikatorów i ich stanówna osi czasu (rysunek 9.5).
15
td Rezerwacja Hotelowa
bezczy- nność wprow. oczekiwanie wprowadzanie oczekiwanie wprow. bezczynność
wyświe- tlanie
sprawdzanie danych wyświetlanie rezerwo-
wanie wyświetlanie
Baz
aDan
ych
IR
ezer
wac
ja
R
ecep
cjon
ista
oczekiwanie prze- twarz. oczekiwanie odpow. oczekiwanie
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Sekunda
odpow. prze-twarz.
potw.
Rysunek 9.5. Rejestrowanie rezerwacji w bazie danych hotelu — notacja alternatywna
Przesyłanie komunikatów
Diagramy harmonogramowania można wzbogacić o dokumentowanie interakcji w po-staci komunikatów przesyłanych między instancjami klasyfikatorów. Źródłem tej in-formacji są odpowiednie diagramy sekwencji lub komunikacji. W związku z tym nadiagramach harmonogramowania można przedstawić wszystkie rodzaje komunikatów
Rozdział 9. ♦ Diagramy harmonogramowania 257
omówionych w punkcie Zaawansowane składniki diagramu z wyjątkiem komunikatuutraconego oraz znalezionego. Na podstawie diagramu harmonogramowania przed-stawionego na rysunku 9.4 wyspecyfikowano następujące komunikaty:
otwórzRezerwację,
sprawdźDostępnośćPokoi,
wprowadźDane,
dokonajRezerwacji,
potwierdźRezerwację,
zamknij.
Zostały one wprowadzone do diagramu harmonogramowania zilustrowanego na ry-sunku 9.6.
td Rezerwacja Hotelowa
bezczynność
wprowadzanie
oczekiwanie
wyświetlanie
sprawdzanie danych
rezerwowanie
potwierdzanie
Baz
aDan
ych
IRez
erw
acja
Rec
epcj
onis
ta
oczekiwanie
przetwarzanie
odpowiadanie
0 5 10 15 20 25 30 Sekunda
sprawdźDostępnośćPokoi
dokonajRezerwacji
potwierdźRezerwację
zamknij otwórzRezerwację wprowadźDane
przyjęcieZgłoszenia
zamknięcieAplikacji
Rysunek 9.6. Komunikaty na diagramach harmonogramowania
258 Część I ♦ Podstawy języka UML 2.0
Diagramy sekwencji a harmonogramowanie
Pewne elementy harmonogramowania, w szczególności ograniczenia czasowe, możnaprzedstawić na diagramach sekwencji. Wprowadza się je:
nad symbolem komunikatu pomiędzy dwoma instancjami klasyfikatorów— w przypadku wskazywania czasu wykonania operacji inicjowanej przezkomunikat;
równolegle do linii życia instancji klasyfikatora pomiędzy dwoma komunikatami— w przypadku wskazywania przedziału czasowego pomiędzy tymikomunikatami.
Określanie ograniczeń czasowych w wersjach 1.x języka UML było możliwe przedewszystkim na diagramach sekwencji. Na diagramach harmonogramowania ograniczeniaprzedstawia się w sposób jawny. Jednak poważnym, technicznym utrudnieniem zapi-su wspomnianych ograniczeń na diagramie sekwencji jest stosowanie przy ich tworze-niu pełnej, obszernej składni komunikatu. W połączeniu z zapisem ograniczeń czaso-wych nadmiernie komplikuje to diagram, czyniąc go tym samym mało przejrzystym.W związku z wprowadzeniem diagramów harmonogramowania poprzednia forma zapi-su ograniczeń czasowych może mieć jedynie charakter wstępny lub uproszczony. Ogra-niczenia czasowe na diagramach sekwencji przedstawia rysunek 9.7.
Kierownik
IHarmonogram BazaDanych
inicjujNoweSpotkanie(data, uczestnicy)
{t = czasBieżący}
utwórzPołączenie {0..5s}wyświetl("Połączenie nawiązane")
{t = czasBieżący+15}
zapisz(data, uczestnicy) {0..3s}
wyświetl("Spotkanie zarejestrowane")
weryfikujPotwierdzenia(dataSpotkania)
pobierzDane(potwierdzenie) {0..3s}
wyświetl(potwierdzenie) {0..1s}
Rysunek 9.7. Ograniczenia czasowe w systemie harmonogramowania spotkań
Rysunek ten ilustruje harmonogramowanie projektów. I tak Kierownik, chcąc zaini-cjować nowe spotkanie zespołu projektowego, określa datę oraz uczestników spotka-nia z wykorzystaniem interfejsu IHarmonogram. W momencie, gdy Kierownik po-twierdzi wybór, instancja klasyfikatora IHarmonogram tworzy połączenie z BaząDanych.Zastosowane ograniczenie czasowe wskazuje, że wykonanie operacji utwórzPołącze-nie może potrwać maksymalnie 5 sekund. W momencie uzyskania połączenia na inter-fejsie IHarmonogram wyświetlane jest stosowne potwierdzenie. Następnie realizowanajest operacja zapisz. Jej wykonanie powoduje zapisanie w BazieDanych daty spotkania
Rozdział 9. ♦ Diagramy harmonogramowania 259
i jego składu osobowego, wcześniej określonego przez Kierownika. Limit czasu wy-konania wspomnianej operacji wynosi 3 sekundy. Z kolei pomiędzy wywołaniem ope-racji utwórzPołączenie oraz zapisz upływa w systemie 15 sekund.
Po zapisaniu danych wyświetlane jest potwierdzenie zarejestrowania spotkania. Asyn-chronicznie w stosunku do inicjowania przez siebie nowych spotkań, Kierownik możeweryfikować potwierdzenia obecności uczestników na innych spotkaniach projekto-wych. W tym celu Kierownik określa konkretną datę spotkania. Następnie IHarmono-gram pobiera potwierdzenia zarejestrowane tego dnia. W efekcie realizowana jest ope-racja wyświetl, udostępniająca Kierownikowi potwierdzenia poszczególnych uczestnikówspotkań projektowych. Na wyświetlenie potwierdzeń przewidziano 1 sekundę.
Proces tworzeniadiagramu harmonogramowania
Informacje przedstawiane na diagramach harmonogramowania są w znacznej mierzepochodną kategorii pojęciowych diagramów sekwencji, komunikacji oraz diagramówmaszyny stanowej. Stąd w procesie tworzenia diagramów harmonogramowania wyko-rzystywane mogą być inne diagramy języka UML. Kluczowymi etapami tego procesu są:
1. identyfikacja interakcji udokumentowanej diagramem sekwencji lub diagramemkomunikacji,
2. przeniesienie lub dobór klasyfikatorów,
3. identyfikacja stanów każdej instancji klasyfikatora z wykorzystaniemdiagramów maszyny stanowej,
4. ustalenie horyzontu czasowego diagramu,
5. wyspecyfikowanie linii zmiany stanu instancji klasyfikatorów,
6. wprowadzenie ograniczeń czasowych dla poszczególnych stanów instancjiklasyfikatora,
7. nazwanie i wprowadzenie odpowiednich zdarzeń na podstawie diagramówmaszyny stanowej,
8. harmonizacja linii zmiany stanu wszystkich instancji klasyfikatorów interakcjiprezentowanych na diagramie,
9. przeniesienie lub wprowadzenie komunikatów przesyłanych pomiędzyinstancjami klasyfikatorów uczestniczącymi w interakcji.
Ze względu na wykorzystywanie w procesie tworzenia diagramów harmonogramowa-nia szeregu kategorii pojęciowych innych diagramów, bardzo istotne jest zachowy-wanie spójności pomiędzy nimi. Proces tworzenia diagramów harmonogramowaniapodlega regułom iteracyjno-przyrostowego cyklu życia systemu.
260 Część I ♦ Podstawy języka UML 2.0
Podstawowe pojęciaDiagram harmonogramowania Harmonizacja
Definicja Interakcja
Klasyfikator Iteracja
Linia zmiany stanów Komunikat
Nazwa stanu Przesyłanie
Notacja Asynchroniczny
Klasyczna Oczekujący
Alternatywna Opcjonalny
Proces tworzenia Synchroniczny
Diagram komunikacji Zwrotny
Izomorfizm Ograniczenie czasowe
Stan Skala czasu
Bezczynność Stan
Czuwanie System
Obliczanie Czasu rzeczywistego
Oczekiwanie Wbudowany
Wykonywanie Warunek
Diagram maszyny stanowej Zdarzenie
Diagram sekwencji
Ośrodek sterowania
Linia życia
Pytania i zadania 1. Wyjaśnij zależności pomiędzy poszczególnymi diagramami interakcji.
2. Uzasadnij potrzebę sporządzania harmonogramów interakcji.
3. Jakie rodzaje diagramów języka UML można uznać za źródłowe dla diagramówharmonogramowania? Wyjaśnij dlaczego.
4. Wymień przykłady instancji klasyfikatorów, których stany mogą byćodzwierciedlane na diagramie harmonogramowania. Wskaż typowe stanydla każdego z nich.
Rozdział 9. ♦ Diagramy harmonogramowania 261
5. Czym jest linia zmiany stanu instancji klasyfikatora? Co oznaczają jejzałamania?
6. Opierając się na diagramach 7.24 oraz 5.13, sporządź diagramharmonogramowania opisujący funkcjonowanie:
Licytacji,
Egzaminu.
7. Jakich aspektów dotyczą zaawansowane kategorie pojęciowe diagramówharmonogramowania?
8. Na diagramie harmonogramowania instancji klasyfikatora Licytacja (pytanie 6.)zaznacz i nazwij zdarzenia.
9. Uzupełnij tak sporządzony diagram o ograniczenia czasowe. Przekształćstosowaną na nim notację w alternatywną.
10. W jakim celu stosuje się harmonizację? Jakie warunki muszą być spełnione,aby zaprezentowanie harmonizacji na diagramie było możliwe?
11. Opierając się na rysunku 7.17, sporządź diagram harmonogramowania.Obligatoryjnie uwzględnij komunikaty.
12. Odwołaj się do strony internetowej www.bankier.pl. Wybierz produktyfinansowe o notowaniach skokowych. Na ich podstawie opracuj stosownydiagram harmonogramowania.
13. Porównaj użyteczność i przejrzystość zapisu ograniczeń czasowychna diagramach harmonogramowania i diagramach sekwencji. Zilustruj wnioskigraficznie, korzystając z diagramu zamieszczonego na rysunku 9.2.
14. Jak przebiega proces tworzenia diagramów harmonogramowania? Uzasadnijjego poszczególne etapy.