Professional Documents
Culture Documents
Język UML - Opis Notacji
Język UML - Opis Notacji
Język UML - Opis Notacji
POLITECHNIKA WARSZAWSKA
Fragment pracy dyplomowej magisterskiej pt. Obiektowy system konstrukcji scenariuszy przypadkw u ycia wykonanej pod opiek dr in . Michaa miaka
Spis tre ci 1 2 3 4 Wst p............................................................................................... 3 UML oglne spojrzenie................................................................ 4 Modelowanie architektury systemu ............................................... 6 Elementy w UML............................................................................ 8
4.1
Elementy strukturalne ...................................................................................8 4.1.1 Klasa......................................................................................................8 4.1.2 Interfejs..................................................................................................9 4.1.3 Kooperacja...........................................................................................10 4.1.4 Przypadek u ycia .................................................................................11 4.1.5 Klasa aktywna......................................................................................13 4.1.6 Komponent ..........................................................................................14 4.1.7 W ze...................................................................................................15 4.2 Elementy czynno ciowe..............................................................................15 4.3 Elementy grupuj ce ....................................................................................16 4.4 Elementy komentuj ce ................................................................................17
5.1 5.2 5.3 5.4 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 7.1 7.2 7.3 7.4
Zale no ....................................................................................................18 Uoglnienie ................................................................................................18 Powi zanie..................................................................................................19 Realizacja ...................................................................................................21 Diagram klas...............................................................................................22 Diagram obiektw.......................................................................................23 Diagram przypadkw u ycia .......................................................................24 Diagram interakcji ......................................................................................25 Diagram stanw ..........................................................................................28 Diagram czynno ci......................................................................................29 Diagram komponentw...............................................................................30 Diagram wdro enia .....................................................................................31 Specyfikacje................................................................................................33 Dodatki .......................................................................................................33 Zasadnicze rozgraniczenia ..........................................................................34 Mechanizmy rozszerzania ...........................................................................35
Wst p
1 Wst p
Unified Modeling Language (UML) to graficzny j zyk do obrazowania, specyfikowania, tworzenia i dokumentowania elementw systemw informatycznych. Umo liwia standaryzacj sposobu opracowywania przekrojw systemu, obejmuj cych obiekty poj ciowe, takie jak procesy przedsi biorstwa i funkcje systemowe, a tak e obiekty konkretne, takie jak klasy zaprogramowane w ustalonym j zyku, schematy baz danych i komponenty programowe nadaj ce si do ponownego u ycia. J zyki modelowania obiektowego pojawiy si mi dzy poow lat siedemdziesi tych a ko cem lat osiemdziesi tych. Z chwil powstania nowego rodzaju j zykw programowania obiektowego zacz to szuka innych rozwi za dotycz cych analizy i projektowania. Opracowanych zostao wiele metod obiektowych, z ktrych jednymi z najwa niejszych byy: metoda Boocha, metoda OOSE Jacobsona (ObjectOriented Software Engineering) i metoda OMT Rumbaugha (Object Modeling Technique). Ka da z nich stanowia zamkni t cao . Metoda Boocha sprawdzaa si podczas projektowania i implementacji, OOSE stanowia znakomite wsparcie przy spenianiu wymaga i wysokopoziomowym projektowaniu, za OMT-2 bya bardzo przydatna do analizy oraz rozwijania systemw przetwarzaj cych du e ilo ci danych. W poowie lat dziewi dziesi tych Grady Booch, Ivan Jacobson i James Rumbaugh postanowili opracowa zunifikowany j zyk modelowania. Oficjalny pocz tek prac nad UML datuje si na pa dziernik 1994 roku. W pierwszej kolejno ci ujednolicono metody Boocha i OMT. Robocz wersj 0.8 Unified Method (tak zostaa wtedy nazwana) opublikowano w pa dzierniku 1995 roku. W tym okresie rozszerzono prace nad UML o uwzgl dnienie w nim metody OOSE. W czerwcu 1996 roku powstaa dokumentacja wersji 0.9. Przez cay rok zbierano uwagi rodowiska in ynierw oprogramowania na temat nowego j zyka. Wynikiem wsppracy kilku firm, m.in. Rational, IBM, Hewlett-Packard, Texas Instruments, Unisys, Microsoft, by UML 1.0 precyzyjnie zdefiniowany j zyk modelowania. W styczniu 1997 roku UML 1.0 zosta przekazany Object Management Group (OMG) w odpowiedzi na zapotrzebowanie na propozycj standardu j zyka modelowania obiektowego. Do wsppracy w czyy si kolejne firmy, w wyniku czego powstaa poprawiona wersja UML (numer 1.1), przyj ta ostatecznie przez OMG 14 listopada 1997. OMG Revision Task Force (RTF) przej zadanie piel gnacji standardu UML. Dokona redakcyjnych poprawek i w czerwcu 1998 roku przedstawi wersj UML 1.2, a jesieni 1999 roku opublikowa UML 1.3.
W perspektywie przypadkw u ycia najwa niejsze jest przedstawienie zachowania systemu z punktu widzenia u ytkownikw, analitykw i osb wykonuj cych testy. Perspektywa ta opisuje czynniki wpywaj ce na ksztat systemu. W UML aspekty statyczne tej perspektywy wyra a si za pomoc diagramw przypadkw u ycia, a dynamiczne za pomoc diagramw interakcji, diagramw stanw i diagramw czynno ci. W perspektywie projektowej umo liwia zapisywanie wymaga funkcjonalnych stawianych systemowi. Opisuje usugi, ktre system powinien udost pnia u ytkownikom. Najwi kszy nacisk poo ony jest na klasy, interfejsy i kooperacje, ktre stanowi sownictwo danego zagadnienia. W UML aspekty statyczne tej perspektywy wyra a si za pomoc diagramw klas i diagramw obiektw, a dynamiczne za pomoc diagramw interakcji, diagramw stanw i diagramw czynno ci. Perspektywa procesowa dotyczy gwnie efektywno ci systemu, jego skalowalno ci i przepustowo ci. W perspektywie tej brane s pod uwag w tki i procesy, ktre ksztatuj metody wspbie no ci i synchronizacji w systemie. W UML aspekty statyczne tej perspektywy wyra a si za pomoc diagramw klas (ze szczeglnym uwzgl dnieniem klas aktywnych, ktre reprezentuj procesy i w tki) i diagramw obiektw, a dynamiczne za pomoc diagramw interakcji, diagramw stanw i diagramw czynno ci. Perspektywie implementacyjna zwi zana jest z zarz dzaniem konfiguracj poszczeglnych wersji systemu. Ka da wersja systemu skada si z niezale nych komponentw i plikw, ktre mog by zespolone na wiele sposobw, tworz c dziaaj cy system. W perspektywie tej najwi ksze znaczenie maj komponenty i pliki, u yte do scalenia i udost pnienia systemu fizycznego. W UML aspekty statyczne tej perspektywy wyra a si za pomoc diagramw komponentw, a dynamiczne za pomoc diagramw interakcji, diagramw stanw i diagramw czynno ci. Perspektywa wdro eniowa dotyczy sprz tu, na ktrym system b dzie uruchamiany. Obejmuje zagadnienia zwi zane z rozmieszczeniem, dostarczeniem i instalacj cz ci systemu fizycznego. W UML aspekty statyczne tej perspektywy wyra a si za pomoc diagramw wdro enia, a dynamiczne za pomoc diagramw interakcji, diagramw stanw i diagramw czynno ci. Ka da z tych pi ciu perspektyw stanowi niezale n cao . Ka da osoba bior ca udzia w tworzeniu systemu mo e skoncentrowa si na tym fragmencie architektury systemu, ktry j najbardziej interesuje. Przedstawione perspektywy ci le s ze sob powi zane. W zy w perspektywie wdro eniowej zawieraj komponenty z perspektywy implementacyjnej, ktre z kolei reprezentuj fizyczn realizacj klas, interfejsw, kooperacji i klas aktywnych z perspektywy projektowej i procesowej. UML pozwala na przedstawienie ka dej z tych perspektyw i ich wzajemnych oddziaywa .
Elementy w UML
4 Elementy w UML
W UML istniej cztery rodzaje elementw: 1) strukturalne, 2) czynno ciowe, 3) grupuj ce, 4) komentuj ce. S to podstawowe obiektowe bloki konstrukcyjne UML. Stosuje si je do budowy modeli.
4.1.1 Klasa
Klasa jest opisem zbioru obiektw o takich samych atrybutach, zwi zkach i znaczeniu. Symbolem graficznym klasy jest prostok t. Ka da klasa ma przypisan nazw , wyr niaj c j spo rd innych klas. Nazwy mog by proste lub cie kowe, czyli poprzedzone nazw pakietu. Atrybut stanowi nazwan wa ciwo klasy. Okre la on zbir warto ci, jakie mo na przypisa do poszczeglnych obiektw tej klasy. Liczba atrybutw klasy nie jest okre lona, klasa mo e mie dowoln liczb atrybutw lub mo e nie mie ich wcale. Atrybut reprezentuje wa ciwo pewnego modelowanego bytu, ktra jest okre lona dla wszystkich jego wyst pie , np. ka dy klient sklepu ma nazwisko, adres i dat urodzenia. Atrybut jest abstrakcj pewnego rodzaju danych lub stanu, jakie obiekt klasy mo e obejmowa . W graficznym symbolu klasy atrybuty przedstawiane s w pierwszej sekcji poni ej nazwy klasy. Bardziej szczegowym okre leniem atrybutu jest podanie jego klasy i domy lnej warto ci pocz tkowej (Rys. 2).
Ok no z arz dcy proj ektu NazwaP rzy padku : ListB ox c ie kaPrzy padk u : Lis tB ox NazwaP likuP rojek tu : S tring = "projekt.prj"
Operacja jest implementacj usugi, ktr mo e wykona ka dy obiekt tej klasy. Klasa mo e mie dowoln liczb operacji lub nie mie ich wcale. W graficznym symbolu klasy operacje przedstawiane s w sekcji pod atrybutami. Bardziej szczegowym opisem operacji jest podanie jej sygnatury, ktra zawiera domy lne warto ci pocz tkowe parametrw i w przypadku funkcji typ zwracanej warto ci (Rys. 3).
Elementy w UML
Okno zarz dcy projektu W y wietlOkno(Tytu : String) Zam knijOkno() Zwr Sz eroko () : int
Rys. 3 Operacje i ich sygnatury
Symbol klasy nie musi zawiera wszystkich atrybutw i operacji zwi zanych z t klas . Najcz ciej jest ich na tyle du o, e nie mieszcz si wszystkie na rysunku. Ponadto nie wszystkie s niezb dne do zrozumienia modelu. Dlatego na diagramie mo na umie ci niepeny symbol klasy, ktry pokazuje tylko cz atrybutw lub operacji. Niekiedy symbol klasy w ogle nie zawiera atrybutw lub operacji. Istnieje mo liwo zaznaczenia na diagramie, e klasa ma wi cej atrybutw lub operacji, ni zostao to przedstawione w symbolu. Wystarczy na ko cu ka dej listy elementw umie ci wielokropek. Listy atrybutw i operacji mo na podzieli na grupy wykorzystuj c stereotypy (Rys. 4).
Menu < < przypadki> > UtwrzNowyP rzypadek() < < przypadki> > Otwrz Przypadek() < < kom unikaty> > InfoB dOdczytu() < < kom unikaty> > InfoP rzypadek Odczytany()
Rys. 4 Stereotypy
4.1.2 Interfejs
Interfejs jest zestawem operacji, ktre wyznaczaj usugi oferowane przez klas lub komponent, ale takich, ktre dotycz zewn trznie obserwowalnych zachowa elementu. Mo e reprezentowa pene zachowanie klasy lub komponentu lub jedynie cz zachowania. Interfejs zawsze okre la zbir deklaracji operacji, czyli ich sygnatur nie dotyczy implementacji operacji. Podstawowym graficznym symbolem interfejsu jest okr g z nazw zapisan ni ej. Na diagramie interfejs najcz ciej powi zany jest z realizuj c go klas lub komponentem. Przykad interfejsu widoczny jest na rysunku (Rys. 5).
Elementy w UML
Graficzny symbol interfejsu w postaci okr gu z nazw jest tzw. postaci normaln . W takim przypadku nie s uwidocznione operacje interfejsu. Niekiedy jednak jest niezb dne do zrozumienia modelu. Wwczas interfejs przedstawiany jest jako stereotypowana klasa i operacje, tak jak w przypadku symbolu zwykej klasy, podawane s pod sekcj atrybutw (Rys. 6).
< <Inte rface> > ObsugaZapisu S prawd Nazw (Naz wa : S tring) : bool ZapiszDoP liku()
Rys. 6 Operacje
4.1.3 Kooperacja
Kooperacja zwi zana jest z architektur systemu, su y do specyfikowania realizacji przypadkw u ycia oraz do modelowania mechanizmw systemowych, ktre s istotne z punktu widzenia architektury systemu. Z ka d kooperacj wi si dwa aspekty: struktura i zachowanie. Cz dotycz ca struktury najcz ciej przedstawiana jest w postaci diagramw klas, natomiast cz dotycz ca zachowania obrazowana jest za pomoc diagramw interakcji. Pojedyncza klasa mo e bra udzia w wielu kooperacjach. Kooperacje mog tak e modelowa realizacj operacji. Jest to szczeglnie przydatne gdy implementacja operacji wymaga wsppracy wielu obiektw. Na diagramie kooperacje przedstawione s w postaci elipsy z przerywan lini brzegow i nazw (Rys. 7)
10
Elementy w UML
Utworzenie sownika
Rys. 8 Przypadek u ycia
Zadaniem przypadkw u ycia jest modelowanie oczekiwanego zachowania systemu. Modeluj c zachowanie za pomoc przypadkw u ycia nie ma konieczno ci zag biania si w zagadnienia zwi zane z implementacj tego zachowania. Przypadki u ycia pozwalaj osi gn porozumienie mi dzy programistami a u ytkownikami i specjalistami z danej dziedziny. Umo liwiaj weryfikacj struktury i architektury systemu w trakcie jego tworzenia. Poprawne przypadki u ycia skupiaj si tylko na zasadniczych zachowaniach systemu. Ka dy ci g czynno ci, opisywany przez przypadek u ycia, reprezentuje oddziaywanie elementw stanowi cych otoczenie systemu, czyli aktorw, z samym systemem. Oddziaywania s w zasadzie funkcjami systemowymi, u ywanymi do okre lania danych zachowa budowanego systemu jeszcze na etapie analizy zachowania systemu i okre lania wymaga funkcjonalnych. Przypadek u ycia reprezentuje wymaganie funkcjonalne dla systemu jako cao ci. Bardziej rozbudowane systemy zawieraj przypadki u ycia, ktre stanowi uszczegowienie innych przypadkw u ycia lub s ich cz ciami. S tak e takie, ktre stanowi rozszerzenie gwnych przypadkw u ycia. Z punktu widzenia konkretnego aktora przypadek u ycia opisuje dziaanie daj ce rezultat, ktrego ten aktor oczekuje, na przykad obliczenie wyniku, utworzenie nowego obiektu lub zmian stanu danego obiektu. Przypadki u ycia pozwalaj analizowa cay system, jednak mog mie tak e zastosowanie podczas analizy cz ci systemu (np. podsystemw) lub pojedynczych klas i interfejsw. Przypadki u ycia opisuj oczekiwane zachowanie tych elementw i stanowi podstaw do opracowania dla nich przypadkw testowych w miar ich rozbudowywania. Elementami nie b d cymi cz ci systemu, ale ci le z nim zwi zanymi, s aktorzy. Aktorzy Reprezentuj role odgrywane przez u ytkownikw przypadku u ycia w czasie interakcji z tym przypadkiem. Stanowi kontekst przypadku u ycia. Dobre opracowanie modelu aktorw pozwala na zrozumienie kto lub co b dzie wchodzio w interakcj z systemem. Aktor mo e by zwykym klasycznym u ytkownikiem (czowiekiem), mo e to by te program a nawet urz dzenie sprz towe. Na rysunku (Rys. 9) przedstawiono graficzny symbol aktora. Stosuj c uoglnienia mo na definiowa oglne rodzaje aktorw (np. Administrator) i uszczegowienia (np. Administrator bazy danych).
11
Elementy w UML
A dm inis trator
Rys. 9 Aktorzy
Niektrzy aktorzy mog stanowi formy specjalizacji innych aktorw, pewna funkcja jednego aktora mo e wchodzi w zakres obowi zkw innego aktora. Tworzenie hierarchii aktorw pozwala na uproszczenie diagramw przypadkw u ycia. Przypadek u ycia mo e by wyspecyfikowany przez opisanie ci gu zdarze w formie tekstu zrozumiaego nawet dla osoby nie znaj cej dog bnie tematu. Ka dy przypadek ma gwny ci g zdarze i ci gi poboczne (alternatywne). Ka dy taki ci g nosi nazw scenariusza. Scenariusze przypadku u ycia jest tekstowym opisem krokw skadaj cych si na dany przypadek. Liczba scenariuszy jest zawsze znacznie wi ksza ni liczba przypadkw u ycia. Scenariusz zazwyczaj prezentowany jest w postaci numerowanej listy, z podziaem na aktora i system, oznaczaj cy w tym wypadku oprogramowanie implementuj ce analizowany przypadek. Scenariusze s pisane z my l o klientach i powinny by dostosowane do ich poziomu zrozumienia tematu. Gwnym celem jest zachowanie przejrzysto ci. Nale y unika zag biania si w opisy interfejsw u ytkownika lub konkretnych rozwi za sprz towych. Scenariusz powinien by abstrakcyjny. Decyzje dotycz ce interfejsw zostaj przesuni te na etap projektowania, a scenariusz prezentuje jedynie oglne zachowanie systemu. Przypadki u ycia podobnie jak klasy mo na grupowa w pakiety. Mo na je tak e uporz dkowa przez zdefiniowanie uoglnie mi dzy nimi oraz zwi zkw zawierania i rozszerzania. Polega to na wydzieleniu wsplnych fragmentw zachowania przez usuni cie ich z obejmuj cych je przypadkw u ycia lub wsplnych wariantw przez wklejanie ich do rozszerzaj cych je przypadkw. Uoglnienie mi dzy przypadkami u ycia oznacza, e przypadek u ycia - potomek dziedziczy cae zachowanie i znaczenie po przypadku u ycia przodku. Zwi zek zawierania mi dzy przypadkami polega na tym, e bazowy przypadek u ycia jawnie w cza zachowanie innego przypadku u ycia w miejscu przez siebie okre lonym. W czany przypadek nigdy nie wyst puje samodzielnie jego egzemplarze mog by tylko cz ci wi kszego zawieraj cego go przypadku u ycia. Zwi zku zawierania u ywa si w celu unikni cia wielokrotnego opisywania tego samego ci gu zdarze . Wsplne zachowanie jest definiowane w odr bnym przypadku u ycia, ktry jest nast pnie w czany przez bazowe przypadki 12
Elementy w UML
u ycia. Zwi zek zawierania obrazuje si w postaci zale no ci stereotypowanej jako <<include>>. Zwi zek rozszerzania mi dzy przypadkami u ycia polega na tym, e bazowy przypadek u ycia w sposb domniemany w cza zachowanie innego przypadku w miejscu okre lonym po rednio przez rozszerzaj cy przypadek u ycia. Bazowy przypadek u ycia mo e wyst pi samodzielnie, ale pod pewnymi warunkami jego zachowanie mo e by rozszerzone przez zachowanie innego przypadku u ycia. Zwi zek rozszerzania su y do modelowania fragmentw przypadku u ycia postrzeganych przez u ytkownika jako opcjonalne zachowanie systemu. Obrazuje si go w postaci zale no ci stereotypowanej jako <<extend>>. Uoglnianie, zawieranie i rozszerzanie zostao przedstawione na rysunku (Rys. 10).
<<extend>>
Odczytanie opisw
Kolejne trzy rodzaje elementw strukturalnych, to znaczy klasy aktywne, komponenty i w zy, s podobne do klas. Okre laj one zbiory obiektw o zbli onych atrybutach, operacjach, zwi zkach i znaczeniu. S jednak na tyle inne i na tyle potrzebne do modelowania pewnych aspektw systemu obiektowego, e nale y si im specjalne potraktowanie.
13
Elementy w UML
Obiekty klas aktywnych su do modelowania niezale nych przepyww sterowania. Obiekt aktywny (egzemplarz klasy aktywnej) reprezentuje proces lub w tek. Z chwil utworzenia obiektu aktywnego zostaje uruchomiony zwi zany z nim przepyw sterowania. W momencie zniszczenia takiego obiektu przepyw ten zostaje przerwany. Klasy aktywne maj te same wa ciwo ci co zwyke klasy. Maj egzemplarze, atrybuty i operacje. Mog by elementami zale no ci, uoglnie i powi za . Mo na wobec nich stosowa wszystkie mechanizmy rozszerzania UML, to znaczy stereotypy, metki i ograniczenia. Mog by realizacjami interfejsw i mog by realizowane przez kooperacje. Ich zachowanie mo e by zdefiniowane za pomoc maszyny stanowej. Pozostae dwa rodzaje elementw strukturalnych, komponenty i w zy, w odr nieniu od dotychczas omwionych, reprezentuj byty fizyczne, a nie poj ciowe i logiczne.
4.1.6 Komponent
Komponent stanowi fizyczn cz systemu. Jest elementem wymiennym, wykorzystuj cym i realizuj cym pewien zbir interfejsw. Komponent jest fizycznym opakowaniem klas, interfejsw i kooperacji. Ka dy system posiada wiele komponentw b d cych elementami procesu wytwarzania (np. pliki z kodem rdowym) oraz komponentw ju wdro onych. Na diagramach symbolem graficznym komponentu jest prostok t z bolcami z nazw w rodku (Rys. 12).
Interfejs grafic z ny
Rys. 12 Komponent
Komponenty maj wiele cech wsplnych z klasami: maj nazwy, realizuj pewien zbir interfejsw, mog bra udzia w zale no ciach, uoglnieniach i powi zaniach, mog by zagnie d one, mie egzemplarze i uczestniczy w interakcjach. W UML jest zdefiniowanych pi standardowych stereotypw komponentw: 1. executable - okre la komponent, ktry mo na wykona na w le. 2. library - okre la dynamiczn lub statyczn bibliotek obiektw. 3. table - okre la komponent reprezentuj cy tabel bazy danych. 14
Elementy w UML
4. file - okre la komponent reprezentuj cy dokument zawieraj cy kod rdowy lub dane. 5. document okre la komponent reprezentuj cy dokument.
4.1.7 W ze
W ze jest fizycznym skadnikiem dziaaj cego systemu, ktry reprezentuje pewne zasoby obliczeniowe. Cechuje go posiadanie pewnej ilo ci pami ci i zdolno ci przetwarzania. Najcz ciej w w zach znajduj si komponenty, niekiedy komponenty przemieszczaj si mi dzy w zami. Symbolem graficznym w za jest jako sze cian z nazw w rodku (Rys. 13).
Rys. 13 W ze
W zy mog bra udzia w zale no ciach, uoglnieniach i powi zaniach. Mog by zagnie d one i mog uczestniczy w interakcjach. Najcz ciej wyst puj cym zwi zkiem mi dzy w zami jest powi zanie. W przypadku w zw oznacza ono po czenie fizyczne, takie jak sie Ethernet, cze szeregowe lub wsplna szyna. Powi za mo na tak e u y do modelowania po cze po rednich, takich jak komunikacja satelitarna mi dzy odlegymi procesorami. W ze jest podobny do klasy, mo na wi c wykorzystywa wszystkie wa ciwo ci powi za , czyli role, liczebno i ograniczenia.
15
Elementy w UML
otwrz
Rys. 14 Komunikat
Drugim elementem czynno ciowym jest maszyna stanowa. Okre la ona ci g stanw, jakie obiekt lub interakcja przyjmuje w odpowiedzi na zdarzenia zachodz ce w czasie ich ycia oraz ich odpowiedzi na te zdarzenia. Za jej pomoc mo e by zdefiniowane zachowanie pojedynczej klasy lub kooperacji. Maszyna stanowa skada si z innych elementw, takich jak stany, przej cia mi dzy stanami, zdarzenia, ktre powoduj przej cia i czynno ci, b d ce odpowiedziami na zdarzenia. Stan jest przedstawiany na diagramie jako prostok t z zaokr glonymi rogami z nazw w rodku (Rys. 15).
Oc z ek iwanie
Rys. 15 Stan
O b s u g a s o w n ik a
Rys. 16 Pakiet
Skadnikami pakietu mog by r ne byty, takie jak klasy, interfejsy, komponenty, w zy, operacje, przypadki u ycia, diagramy, a nawet inne pakiety. Model w
16
Elementy w UML
rozumieniu UML-owym stanowi pakiet zawieraj cy pen reprezentacj systemu w konkretnym aspekcie. Potraktowanie architektury systemu jako zbioru powi zanych i zagnie d onych pakietw pomaga w optymalizacji tworzonych struktur. Celem pakietyzacji elementw modelu jest rozdzielenie podstawowych cz ci skadowych systemu i uniezale nienie ich od siebie. To z kolei pozwala na enkapsulacj du ych fragmentw systemu w pakietach i daje mo liwo ich powtrnego wykorzystania. Pakietom towarzysz zazwyczaj interfejsy lub zestawy interfejsw reprezentuj ce udost pniane przez nie usugi. W UML zakada si , e w modelu istnieje nienazwany pakiet nadrz dny. Konsekwencj tego zao enia jest konieczno unikatowego nazywania bytw ka dego rodzaju, zdefiniowanych u gry modelu. Wszystkie mechanizmy rozszerzania UML dotycz tak e pakietw. Najcz ciej s to metki definiuj ce nowe wa ciwo ci pakietw. Pakiety s podstawowymi elementami grupuj cymi, za pomoc ktrych mo na usystematyzowa model zapisany w UML. Istniej te inne elementy tego typu, takie jak zr by, modele i podsystemy (rodzaje pakietw).
Rys. 17 Notatka
Notatka to podstawowy element komentuj cy, ktry mo e si pojawi w modelu zapisanym w UML. Zwykle u ywa si jej w celu wzbogacenia diagramu o ograniczenia i obja nienia, ktre najatwiej wyrazi za pomoc formalnego lub nieformalnego tekstu. S te inne rodzaje elementw tego typu, takie jak wymagania, ktre definiuj zachowanie oczekiwane przez otoczenie modelu.
17
5.1 Zale no
Zale no pozwala na pokazanie, e jedna klasa u ywa drugiej jako argumentu w sygnaturze operacji (Rys. 18). Jest to najcz ciej spotykany sposb u ycia zale no ci. Ponadto UML dopuszcza stosowanie zale no ci tak e mi dzy pakietami i notatkami, jednak s one rzadziej u ywane. Zmiany dokonane w specyfikacji jednego elementu mog mie wpyw na inny element, ktry go u ywa. Na diagramie zale no przedstawiana jest jako linia przerywana z grotem skierowanym na element, od ktrego co zale y.
5.2 Uoglnienie
Uoglnienie jest zwi zkiem mi dzy elementem oglnym (zwanym nadklas lub przodkiem) a pewnym specyficznym jego rodzajem (zwanym podklas lub potomkiem). Uoglnienie polega na tym, e potomek mo e wyst pi wsz dzie tam, gdzie jest spodziewany przodek, ale nie na odwrt. Potomek dziedziczy wszystkie wa ciwo ci przodka, w szczeglno ci atrybuty i operacje, i zawsze mo e go zast pi . Najcz ciej potomek oprcz cech odziedziczonych po przodku ma tak e wasne cechy. Operacja potomka maj ca t sam sygnatur co operacja przodka jest wa niejsza (polimorfizm). Uoglnienie jest przedstawiane na diagramie jako linia ci ga zako czona zamkni tym, niewypenionym grotem wskazuj cym przodka (Rys. 19).
18
S owo ze s ownika TypS ownika : Integer Form aP odst awowa : Strin g Odm iany : List
Rys. 19 Uoglnienie
Najcz ciej uoglnie u ywa si wzgl dem klas i interfejsw w celu przedstawienia dziedziczenia. UML umo liwia tworzenie uoglnie tak e mi dzy innymi elementami, w szczeglno ci mi dzy pakietami.
P rz y padek u y c ia
pos iada
S c enarius z
Ka da klasa bior ca udzia w powi zaniu odgrywa w nim okre lon rol . Rola klasy mo e by jawnie nazwana w powi zaniu. Na rysunku (Rys. 21) klasa Osoba odgrywaj ca rol pracownika jest powi zana z klas Firma w roli pracodawcy.
19
Os oba
+ pracownik
+ pracodawca
Firm a
Rys. 21 Role
Cz sto w powi zaniu zachodzi potrzeba podania liczebno ci, czyli liczby obiektw jaka mo e by po czona przez jeden egzemplarz powi zania. Ilo obiektw nazywana jest tak e krotno ci . Liczebno zapisywana jest w postaci wyra enia, ktrego warto ci jest przedzia liczbowy lub pojedyncza liczba (Rys. 22). Podaj c liczebno przy jednym ko cu powi zania wskazujemy ile obiektw jednej klasy musi by po czonych z ka dym obiektem klasy znajduj cej si na ko cu przeciwnym. Liczebno mo na ustali na dokadnie jeden (1), zero lub jeden (0..1), dowolnie wiele (0..*) albo co najmniej jeden (1..*). Mo e to by tak e pewna ustalona liczba (np. 3).
E dy tor prz y padk w u y c ia
0..*
P rz y padek u y c ia
Rys. 22 Liczebno
Najcz ciej powi zanie dwch klas jest zwi zkiem strukturalnym elementw rwnorz dnych, czyli powi zane klasy znajduj si na tym samym poziomie poj ciowym. Czasami wyst puje potrzeba zapisania agregacji, czyli zwi zku rodzaju cao -cz . W takim zwi zku jedna klasa reprezentuje wi kszy element stanowi cy cao , a druga reprezentuje elementy mniejsze, czyli cz ci, z ktrych skada si cao . Agregacja jest szczeglnym rodzajem powi zania. Na diagramie wyr niana jest przez dodanie do zwykego symbolu powi zania pustego rombu po stronie cao ci (Rys. 23).
20
Oddz i a 1
1..* Filia
Rys. 23 Agregacja
5.4 Realizacja
Realizacja jest zwi zkiem znaczeniowym mi dzy klasyfikatorami, z ktrych jeden okre la kontrakt, a drugi zapewnia wywi zanie si z niego. Takie zwi zki wyst puj najcz ciej mi dzy interfejsami a klasami i komponentami oraz mi dzy przypadkami u ycia a kooperacjami. Na diagramach realizacja przedstawiana jest jako po czenie symboli uoglniania i zale no ci, czyli jako linia przerywana zako czona zamkni tym niewypenionym grotem (Rys. 24).
Rys. 24 Realizacja
Omwione cztery rodzaje zwi zkw to podstawowe bloki konstrukcyjne umo liwiaj ce czenie elementw modelu w UML.
21
Diagramy w UML
6 Diagramy w UML
Diagram jest schematem przedstawiaj cym zbir bytw. Najcz ciej ma posta grafu, w ktrym wierzchokami s elementy, a kraw dziami zwi zki. Diagram to swego rodzaju rzut systemu. Tylko w przypadku najprostszych systemw diagram przedstawia peny obraz bytw wchodz cych w skad systemu. Ten sam byt mo e si pojawi na wszystkich diagramach, jednak najcz ciej wyst puje tylko na niektrych. W wyj tkowych przypadkach dany byt mo e nie wyst pi na adnym diagramie. Teoretycznie diagram mo e zawiera dowoln kombinacj elementw i zwi zkw. W praktyce jednak tylko niektre z kombinacji odpowiadaj pi ciu najbardziej u ytecznym perspektywom architektonicznym systemu oprogramowania. Z tego powodu w UML wyr nia si nast puj ce rodzaje diagramw: 1) diagram klas, 2) diagram obiektw, 3) diagram przypadkw u ycia, 4) diagram przebiegu (sekwencji), 5) diagram kooperacji, 6) diagram stanw, 7) diagram czynno ci, 8) diagram komponentw, 9) diagram wdro enia.
22
Diagramy w UML
P rz y padek u y c ia Nazwa : S tring W s prz dne : P oint S c enarius z e : P trA rray Zwr A k ty wny S c enarius z() W c z y tajP rz y padek () + jes t z wi z any
Relacja Tre : S tring P rz y padek : S tring Ty pRelac ji : Integer W s prz dne : P oint Utwrz Relac j () 0..*
+ posiada 1 S c enariusz
Naz wa : S tring Num erS c enarius za : Integer E lem enty : P trA rray Relac je : P trA rray W stawRelacj () UtwrzS owo() 1 0. .* S owo
Na diagramach klas mog si znale rwnie pakiety i podsystemy, u ywane do grupowania bytw modelu w wi ksze porcje.
23
Diagramy w UML
jednak pod uwag przypadki rzeczywiste lub prototypowe. Przykad diagramu obiektw przedstawiony jest na rysunku (Rys. 26).
od dz2 : Jednost ka organ izac yjna rodzaj = "Oddzia" naz wa = "Oddzia w W arsz awie"
24
Diagramy w UML
U ytk ownik
Dodanie sowa Usuni cie sowa < < include> > < <inclu de> >
Zapisanie sownika
Mo na wyr ni dwa zasadnicze cele istnienia diagramw przypadkw u ycia: modelowanie otoczenia systemu i modelowanie wymaga stawianych systemowi. Modelowanie otoczenia polega mi dzy innymi na wyznaczeniu granicy wok caego systemu i na wskazaniu le cych poza ni aktorw, ktrzy wchodz w interakcj z systemem. Diagramy przypadkw u ycia w tym wypadku su do zdefiniowania aktorw i znaczenia ich rl. Modelowanie wymaga polega na okre leniu, co system ma robi z punktu widzenia jego otoczenia, bez zag biania si w to, w jaki sposb ma to robi . W tym przypadku diagram su y do zdefiniowania oczekiwanego dziaania systemu. Na diagramach przypadkw u ycia zaznaczane s uoglnienia oraz zwi zki zawierania i rozszerzania. Zostao to omwione w punkcie dotycz cym przypadkw u ycia.
25
Diagramy w UML
i prototypowe egzemplarze klas, interfejsw, komponentw i w zw, a tak e komunikaty przekazywane mi dzy nimi. Elementy te s rozpatrywane w kontek cie pewnego scenariusza ilustruj cego zachowanie systemu. Diagram sekwencji jest po czeniem mi dzy wiatem funkcjonalnym i obiektowym. Odpowiada konkretnemu scenariuszowi danego przypadku u ycia. Gwny nacisk poo ony jest na uwypuklenie kolejno ci komunikatw w czasie. W grnej cz ci diagramu sekwencji, wzdu osi X, umieszczone s obiekty uczestnicz ce w interakcji. Obiekt inicjuj cy interakcj znajduje si zazwyczaj po lewej stronie diagramu, a coraz bardziej podrz dne kolejno po prawej. Komunikaty s uporz dkowane w czasie wzdu osi Y, im p niejsza chwila wysania, tym komunikat umieszczony ni ej. Taki sposb obrazowania uatwia zrozumienie przepywu sterowania w czasie. Diagramy sekwencji maj dwie cechy, ktre odr niaj je od diagramw kooperacji. Po pierwsze wyst puj na nich linie ycia obiektw pionowe przerywane kreski reprezentuj ce czas istnienia obiektw. Wi kszo obiektw z diagramu interakcji yje przez cay czas trwania interakcji. Znajduj si one w grnej cz ci diagramu, a ich linie ycia biegn od gry do dou. Podczas interakcji mog powstawa nowe obiekty. Ich linie ycia rozpoczynaj si w chwili odebrania przez nie komunikatu o stereotypie create. Pewne obiekty s niszczone. Ich linie ycia ko cz si w chwili odebrania przez nie komunikatu o stereotypie destroy. Drug cech odr niaj c diagram przebiegu od diagramu kooperacji jest uwzgl dnienie o rodka sterowania. Jest to podu ny, cienki prostok t reprezentuj cy okres wykonywania przez obiekt jakiej akcji. Grna kraw d tego prostok ta znajduje si na tej samej wysoko ci co pocz tek akcji, a dolna na wysoko ci zako czenia akcji. Zako czenie akcji mo e by dodatkowo oznaczone komunikatem przekazania. Mo na wyr ni scentralizowany i zdecentralizowany sposb wsppracy obiektw. Przy scentralizowanym sposobie wymiany komunikatw jeden z obiektw kontroluje cay przebieg przypadku, steruje operacjami i po redniczy w wymianie danych. W przypadku zdecentralizowanego sposobu wymiany komunikatw nie ma obiektu kontroluj cego i obiekty komunikuj si ze sob bezpo rednio. Przykadowy diagram przebiegu pokazany jest na rysunku (Rys. 28).
26
Diagramy w UML
: U ytk ownik
: M enu
: Zarz d ca projektu
: P rojek t
Us u Zawarto
Lis t( )
Istot diagramu kooperacji jest przedstawienie przepywu komunikatw pomi dzy obiektami. Wsppraca mi dzy obiektami w cza dwa aspekty: struktur uczestnicz cych obiektw oraz sekwencj komunikatw wymienianych pomi dzy obiektami. Czas nie jest wprost odwzorowany, natomiast odwzorowane s powi zania pomi dzy obiektami. Na diagramie kooperacji uwypukla si organizacj obiektw uczestnicz cych w interakcji. Obiekty s rozmieszczone jako wierzchoki grafu. Kraw dziami grafu s wi zania cz ce te obiekty. Od diagramu przebiegw odr niaj go dwie cechy. Po pierwsze, wyst puj na nim cie ki. Sposb po czenia jednego obiektu z drugim wskazuje si przez dodanie stereotypu cie ki do drugiego ko ca wi zania. Po drugie, na diagramach kooperacji uwzgl dnia si ci g komunikatw. Wskazanie kolejno ci komunikatu w czasie polega na poprzedzeniu go odpowiednim numerem w ci gu (pierwszy komunikat ma numer 1, a nast pne s ponumerowane kolejnymi liczbami naturalnymi). Zagnie d enia obrazuje si za pomoc notacji Doweya (1 oznacza pierwszy komunikat, 1.1 pierwszy komunikat zagnie d ony w komunikacie numer 1 itd.). Zagnie d enie mo e mie dowoln g boko . Rysunek (Rys. 29) pokazuje przykadowy diagram kooperacji, ktry jest odpowiednikiem przedstawionego wcze niej diagramu przebiegu.
27
Diagramy w UML
: P rojek t
28
Diagramy w UML
Dodane do s ownik a
Edy towane
Us uni te ze s ownik a
29
Diagramy w UML
W y wietlenie ok na z arz dc y
30
Diagramy w UML
logowanie.as p
aplik ac ja.ex e
31
Diagramy w UML
S erwer bazodanowy
S erwer WWW
Serwer aplikacyjny 2
Klient WWW
Projektuj c nasz program korzystali my z diagramu klas, diagramu przypadkw u ycia i diagramu przebiegu (sekwencji).
32
7.1 Specyfikacje
UML jest czym wi cej ni tylko graficznym j zykiem modelowania. Za ka dym fragmentem graficznego zapisu kryje si specyfikacja definiuj ca skadni i znaczenie bloku konstrukcyjnego. Ikona klasy reprezentuje specyfikacj okre laj c zestaw wszystkich atrybutw, operacji ( cznie z ich penymi sygnaturami) i funkcji, ktre ta klasa mo e spenia . Symbol klasy nie musi wyobra a caej specyfikacji, a tylko pewn niewielk jej cz . Co wi cej, symbol tej samej klasy mo e przedstawia zupenie inny zestaw jej skadowych i b dzie to cakowicie poprawne. Notacja graficzna UML su y do zobrazowania systemu, a specyfikacje do definiowania jego szczegw. Dzi ki takiemu podziaowi mo na przyst pi do przyrostowego konstruowania modelu najpierw narysowa diagramy, a nast pnie doda do nich specyfikacje. Mo na tak e budowa model od podstaw zacz od utworzenia specyfikacji np. za pomoc in ynierii wstecz, a potem opracowa diagramy b d ce rzutami na ten zbir specyfikacji.
7.2 Dodatki
Wi kszo bytw UML ma jedyn i niezale n posta graficzn , ktra oddaje najwa niejsze ich aspekty. Symbol klasy jest na przykad tak zaprojektowany, aby mo na go byo atwo narysowa , poniewa jest najcz ciej wyst puj cym skadnikiem modeli obiektowych. Ten symbol podkre la najwa niejsze aspekty klasy, to znaczy nazw , atrybuty i operacje. Specyfikacja klasy mo e zawiera tak e inne szczegy, takie jak informacje o abstrakcyjno ci klasy lub widoczno ci poszczeglnych atrybutw i operacji. Wiele z nich mo e by umieszczonych na diagramach jako graficzne lub tekstowe uzupenienia prostok tnego symbolu klasy. Ka dy element notacji UML skada si z symbolu podstawowego i rozmaitych charakterystycznych dla niego dodatkw. Na rysunku (Rys. 34) wida przykad klasy z dodatkami wskazuj cymi, e jest to klasa abstrakcyjna z czterema operacjami: dwiema publicznymi, jedn chronion i jedn prywatn .
33
Prawie z ka dym blokiem konstrukcyjnym UML zwi zana jest podobna zale no jak w przypadku klasy i obiektu. Mo na mie przypadki u ycia i egzemplarze przypadkw u ycia, komponenty i ich egzemplarze, w zy i ich egzemplarze. Graficznie symbol obiektu r ni si od symbolu klasy tego obiektu jedynie tym, e nazwa obiektu jest podkre lona lini ci g . Po drugie, rozr nia si interfejs i implementacj . Interfejs to deklaracja kontraktu, a implementacja to jedna z wielu konkretnych realizacji tego kontraktu. Wszystko musi przebiega zgodnie ze znaczeniem interfejsu. W UML mo na modelowa zarwno interfejsy, jak i ich implementacje. Na rysunku (Rys. 36) wida komponent wyszukiwanie.dll, ktry jest implementacj interfejsu ISzukanieSw.
wyszuki wanie.dll IS zukanie Sw
Rys. 36 Interfejsy i implementacje
34
Podobnie jak w przypadku zale no ci klasa-obiekt, prawie z ka dym blokiem konstrukcyjnym zwi zana jest zale no interfejs-implementacja. Mo na mie przypadki u ycia i kooperacje, ktre je realizuj , a tak e operacje i metody.
Metka umo liwia rozszerzanie listy wa ciwo ci bloku konstrukcyjnego UML. Mo na doda nowe informacje do specyfikacji takiego bloku. Je li na przykad zajmujemy si tworzeniem produktw masowych, ktre wychodz w wielu wersjach, to cz sto zachodzi konieczno uwzgl dnienia informacji o wersjach i autorach pewnych istotnych abstrakcji. Informacje te (wersja i autor) nie s elementarnymi poj ciami UML, jednak mo na je doda w postaci metki do dowolnego bloku konstrukcyjnego (np. do klasy). Na rysunku (Rys. 37) wida klas Kolejka drukowania z jawnie podanym autorem i wersj . Ograniczenie umo liwia rozszerzanie znaczenia bloku konstrukcyjnego UML. Mo na doda nowe reguy lub zmodyfikowa ju istniej ce. Mo na na przykad wprowadzi ograniczenie, e dodawanie zdarze do egzemplarzy klasy Kolejka drukowania 35
odbywa si z zachowaniem odpowiedniego porz dku czy hierarchii u ytkownikw. Umieszcza si wtedy tak informacj na diagramie w nawiasach klamrowych i czy lini przerywan z elementem, ktrego dotyczy to ograniczenie. Te trzy mechanizmy rozszerzania umo liwiaj dostosowanie UML do potrzeb konkretnego zadania i pozwalaj na przystosowanie go do nowych technologii, takich jak na przykad coraz lepsze j zyki programowania systemw rozproszonych. Mo na dodawa nowe bloki konstrukcyjne, modyfikowa specyfikacje ju istniej cych, a nawet zmienia ich znaczenie. Nale y jednak pami ta , e UML su y przede wszystkim do przekazywania informacji, wi c trzeba u ywa mechanizmw rozszerzania w sposb przemy lany i kontrolowany.
36