WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Ewa Stemposz {ewag@ipipan.waw.pl, ewag@pjwstk.waw.pl} Instytut Podstaw Informatyki PAN Polsko- -DSR VND: \* V]D6]NRáD7HFKQLN.RPSXWHURZ \FK
- ]\NPRGHORZDQLDGDQ\FK80/
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Zagadnienia Krótka charakterystyka UML Diagramy przypadków X* \FLD Diagramy klas Diagramy dynamiczne interakcji stanu DNW\ZQR FL Diagramy implementacyjne diagramy komponent ó w GLDJUDP\ZGUR *HQLRZH Diagramy pakiet ó w 0HFKDQL]P\UR]V]HU]DOQR FL Podsumowanie
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
UML 0.8-0.9 VW \F]H -ZU]HVLH UML 1.0 VW \F]H SU]HVáDQ \GR20* UML 1.1 NRQLHF]DWZLHUG]RQ \ MDNRVNáDGQLNVWDQGDUGX20* UML 1.3 NZLHFLH PyZLVL RZHUV MLDOHEUDNGDQ \FK 3Rá F]RQHVLá\WU]HFK]QDQ\FKPHWRGRORJyZRSURJUDPRZDQLD Grady Booch Ivar Jacobson James Rumbaugh
Unified Modeling Language (UML) ³80/ MHVW M ]\NLHP RJyOQHJR SU]H]QDF]HQLD GR VSHF\ILNDFML NRQVW rukcji, ZL]XDOL]DFML L GRNXPHQWRZDQLD Z\WZRUyZ ]ZL ]DQ\FK ] V\VWHPDPL LQWHQV\ZQLHZ\NRU]\VWXM F\PLRSURJUDPRZDQLH´
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Zalety i wady poprzednik ó w UML .D *GD]PHWRG\NSRSU]HGQLNyZ80/SRVLDGDVZRMH]DOHW\LZD dy. OMT (Rumbaugh) : dobry do modelowania dziedziny przedmiotowej. Nie SU] \NU \ZD GRVWDWHF]QLH GRNáDGQLH ]DUyZQR DVSHNWX X* \WNRZQLNyZ V\ stemu, jak i aspektu implementacji. OOSE (Jacobson) GREU]H SRGFKRG]L GR NZHVWLL P RGHORZDQLD X* \WNRZQLNyZ L F\ NOX *\ FLRZH JR V\ VWHPX 1 LH SU] \NU \ZD GRNáDGQLH PRGHORZDQLD Gziedziny przedmiotowej, jak i aspektu implementacji. OOAD (Booch): dobrze podchodzi do kwestii projektowania, implementacji RUD] ] ZL ]NyZ ]H URGRZLVNLHP LPSOHPHQWDF ML 1 LH SU] \NU \ZD GRVW atecznie GREU]HID] \UR]SR]QDZDQLDLDQDOL] \Z \PD JD X *\ WNRZQLNyZ ,VWQLH MH ZLHOH DVSHNWyZ V\ VWHPyZ N WyUH SR]RVWDá \ Z áD FLZLH QL e przykryte przez *DGQH ] Z \* HM Z \PLHQLRQ \F KS RG HM ü Q S S U] \VWRVRZDQLH QRWDF ML do preferencji SUR MHNWDQWyZ&HOHP80/E \áRSU] \NU \FLHUyZQLH *W \FKDVSHNWyZ
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Nowe elementy wprowadzone w UML -DVQHRGUy *QLHQLHNODV\W\SX i Z\VW SLHQLDNODV\ 8V]F]HJyáRZLHQLD (refinements GODRE M FLD]ZL ]NyZSRPL G] \ HOHPHQWDPLRWH MVDPH MVHPDQW \FHDUy *Q \PSR]LRPLHDEVWU akcji 2GSRZLHG]LDOQR FL (responsibilities ) Kompozycja jako silniejsza forma agregacji Interfejsy i ]DOH *QR FL dependencies) typu: dostawca i klient pewnej LQIRUPDF MLZ \VW SX M FHPL G] \HOHPHQWDPLPRGHOL :VSyáELH *QR ü :]RUFHZVSyáSUDFD 'LDJUDP\DNW\ZQR FL (dla UHLQ *\ QLHULL procesów biznesowych) Komponenty Pakiety 0HFKDQL]P\UR]V]HU]DOQR FL : stereotypy (stereotypes ZDUWR FL etykietowane ( tagged values ), ograniczenia ( constraints )
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Diagramy definiowane w UML 'LDJUDP\SU]\SDGNyZX *\FLD Diagramy klas Diagramy dynamiczne: Diagramy stan ó w 'LD JUDP \DNW \ZQR FL Diagramy implementacyjne: Diagramy komponent ó w 'LD JUDP \ZGUR *HQLRZH 'LDJUDP\ WH ]DSHZQLDM X]\VNDQLH ZLHOX S HUVSHNW\Z SURMHNWRZDQ ego systemu w trakcie jego budowy. Diagramy pakiet ó w
Diagramy sekwencji 'LD JUDP \ZVSyáSUDF \NRODERUDF ML
Diagramy interakcji:
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
'LDJUDP\SU]\SDGNyZX *\FLD (1) 3U]\SDGHN X* \FLD : 3RZLQLHQ PLHü XQLNDOQ QD]Z , RSLVX M F SU] \SDGHN X* \FLD z p unktu widzenia jego zasadniczych cel ó w. Czy lepiej jest VWRVRZDü QD]Z RSLVX M F F ]\ QQR ü (“ Z \SáDWD SLHQL G] \” ) czy polecenie (“ Z \SáDü SLHQL G]H´ - zdania V podzielone. Aktor: 3RZLQLHQPLHü XQLNDOQ QD]Z . Interakcja: 3RND]X MH LQWHUDNF M SRPL G] \S U] \SDGNLHP X* \FLD a aktorem. %ORN SRQRZQHJR X* \FLD : Pokazuje fragment systemu, kt ó ry jest X* \ZDQ \ SU]H] NLOND SU] \SDGNyZ X* \FLD ; PR *H E\ üR]QDF]RQ \ MDNRVDPRG]LHOQ \SU] \SDGHNX *\ FLD . Relacja typu « include » lub « extend » : Pokazuje ]ZL ]HN ]DFKRG] F \P L G] \ dwoma p rzypadkami X* \FLD lub SU] \SDGNLHPX *\ FLD a EORNLHPSRQRZQH JRX *\ FLD . Nazwa systemu wraz z otoczeniem systemu: Pokazuje JUDQLF SRPL G] \V \VWHPHP a jego otoczeniem.
weryfikacja klienta Z\SáDWD SLHQL
G]\ SystemREVáXJLNOLHQWD
«
include»
ZQWU]HV\VWHPXklient
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
'LDJUDP\SU]\SDGNyZX *\FLD (2)
klient bankuZSáDWD SLHQL
G]\ Z\SáDWD SLHQL
G]\
kasjer VSUDZG( stan konta ZH( SR*\F]N]DU]G banku
klient banku
ZSáDWD SLHQL
G]\
Z\SáDWD SLHQL
G]\
kasjer VSUDZG( stan konta ZH( SR*\F]N]DU]G banku
«
include»
uaktualnianie stanu konta«
include» «
extend» *áyZQH ]DGDQLH PRGHOX SU] \SDGNyZ X* \FLD to SUDZLGáRZH RNUH OHQLH Z\PDJD funkcjonalnych na projektowany system.
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Klasa; oznaczenia (1) Cztery pola: nazwy, atrybut ó w, metod i czwarte pole, kt ó rego zaw DUWR ü ]DOH *\RGX *\WNRZQLND np PR *HWRE\üOLVWDRGSRZLHG]LDOQR FLGDQHMNODV\ 0R *OLZHV Uy *QHSR]LRP\V]F]HJyáRZR FL
OknoOkno rozmiar czy_widoczneOkno rozmiar czy_widoczne Z\ZLHWO schowaj()
Okno rozmiar: Obszar czy_widoczne:Boolean Z\ZLHWO schowaj()
stereotyp nazwa_ klasy lista_wart_etyk Pole atrybut ó w: VWHUHRW \SGRVW SQR üQD]ZD _atrybutu : typ ZDUW BSRF] WNRZD lista_wart_etyk Pole metod: VWHUHRW \SGRVW SQR üQD]ZD _metody (lista_arg) : typ_wart_zwracanej lista_wart_etykt
Pole nazwy klasy:
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Klasa; oznaczenia (2) gdzie: rodzaj definiuje spos ó b, w jaki metoda korzysta z danego argumentu : in: PHWRGDPR *HF] \WDü argument, ale QLHPR *H go ]PLHQLDü out: PR *H]PLHQLDü , QLHPR *HF] \WDü inout: PR *HF] \WDü i ]PLHQLDü Wszystkie elementy specyfikacji klasy za Z\M WNLHP nazwy klasy V opcjonalne. Nazwa klasy to z UHJXá\U]HF]RZQLN w liczbie pojedynczej.
GRVW SQR ü jest RNUH ODQD przez trzy symbole : + publiczna - prywatna # chroniona lista_arg: rodzaj nazwa_arg : typ ZDUW BSRF] WNRZD
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
3U]\NáDG\NODV
Okno {abstrakcyjna, autor=Kowalski status=przetestowane} +rozmiar: Obszar = (100,100) #czy_widoczne:Boolean=false UR]PLDUBGRP\OQ\3URVWRNW UR]PLDUBPDNV\PDOQ\3URVWRNW -[ZVND(QLN:XWindow* Z\ZLHWO +schowaj() +utwórz() -GRáF];:LQGRZ(xwin:XWindow*)©WUZDáDª3URVWRNW punkt1: Punkt punkt2: Punkt «konstruktor» 3URVWRNWS3XQNWS3XQNW «zapytania» obszar (): Real aspekt(): Real . . . «aktualizacje» SU]HVXGHOWD3XQNW SU]HVNDOXMZVSyáF]\QQLNReal)
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Dziedziczenie Dziedziczenie pozwala na tworzenie drzewa klas lub LQQ\FKVWUXNWXUEH]S WOL
specjalizacja generalizacja
Pracownik
Osoba AsystentAdiunktProfesorDocentAsystentAdiunktProfesorDocent
Pracownik
Osoba
Dziedziczenie jednoaspektowe
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Dziedziczenie wieloaspektowe
{overlapping}disjont (GRP \ OQH ) - SRG]LDá UR]á F]Q \ overlapping -SRG]LDá QLHUR]á F]Q \ SU]HFL FLH zbior ó w obiekt ó w klas, np. Pojazd O GRZ\ i Pojazd wodny, nie jest zbiorem pustym; complete (GRP \ OQH ) - SRG]LDáFDáNRZLW \ incomplete -n ie k tó re klasy, np. nieistotne dla UR]ZD *DQH JRSUREOHPX , ]RVWDá \SRPLQL WH
Pojazd
{overlapping}Pojazd wiatrowy Pojazd silnikowy Pojazd O GRZ\ Pojazd wodny
QDSGterenteren
Drzewo ' E Brzoza Sosna
{disjoint,incomplete}
gatunek drzewa
Dwa aspekty dziedziczenia: QDS G i teren .
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Dziedziczenie wielokrotne Dziedziczenie wielokrotne (wielodziedziczenie) ma miejsce, gdy klasa G]LHG]LF]\LQZDULDQW\]ZL FHMQL *MHGQHMEH]SR UHGQLHMQDGNODV\ . Nazwisko Osoba 3UDFXM F\B student
Pracownik Zarobek
Student Nr_indeksu
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Dziedziczenie dynamiczne Manager ,Q *\QLHU Sprzedawca
Osoba
{mandatory}SáHü«
dynamic»
zawódDyskryminator (aspekt specjalizacji) zawód ]RVWDáWXRSDWU]RQ \ stereotypem « dynamic » .
Kobieta 0 * F]\]QD
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Klasa parametryzowana Klasy parametryzowane V X* \WHF]QH z dw ó ch zasadniczych powod ó w SRGQRV] poziom abstrakcji LZSá \ZD M QD]PQLH MV]HQLHGáX JR FLNRGX (UyGáRZH JRSUR JUDPX . .ODVDSDUDPHWU\]RZDQDPR *HE\üZVWDZLDQD do diagram ó w UML na dwa sposoby: Zbi ó r <Pracownik> Aktualny parametr parametryzacji Zbi ó r wstaw (T) XVX (T)
T Zbi ó r Pracownik ó w
«
bind»
<Pracownik>Podstawowe zastosowanie klas parametryzowanych polega na wykorzystaniu ich do definiowania zbior ó w (szerzej - kolekcji). .D *G \ RELHNW N ODV \ Zbi ó r <Pracownik> , czy analogicznie Zbi ó rP ra co w n ik ó w , jest zbiorem.
szablon
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Rozszerzenia i ograniczenia w podklasie 3RGNODVDQLHPR *HRPL MDüOXE]PLHQLDüDWU \EXWyZQDGNODV \ 3RGNODVDPR *H]PLHQLüFLDáRPHWRG \]QDGNODV \DOHEH]]PLDQ y jej specyfikacji. 3RGNODVDPR *HGRZROQLHGRGDZDüQRZHDWU \EXW \LPHWRG \UR]V]HU ]Dü]ELyU ZáDVQR FLQDGNODV \ 3RGNODVDPR *HR JUDQLF]DüZDUWR FLDWU \EXWyZ Np. .RáR MHVWSRGNODV NODV \ Elipsa JG]LHRELH UHGQLFHHOLSV \V VRELHUyZQH2 JUDQLF]HQLDPR J VSRZRGRZDü *HF] üPHWRGSU]HVWDQLHE \üSRSUDZQD Np. zmiana jednej ze UHGQLFRELHNWX - d ozwolona dla obiektu klasy Elipsa - jest niedopuszczalna w obiekcie podklasy .RáR JG \* PXV] WDPE \ü]PLHQLDQHRELH UHGQLFH MHGQRF]H QLH
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
:\VW SLHQLH klasy 3R M FLH Z\VW SLHQLH klasy (instancja klasy ) oznacza obiekt, kt ó ry jest ³SRGá F]RQ \´GR danej klasy, jest MH MF]áRQNLHP . : \VW SLHQLDPR J E \ü : EH]SR UHGQLH i SR UHGQLH . Obiekt MHVWZ \VW SLHQLHP EH]SR UHGQLPVZR MH MNODV \L Z \VW SLHQLHP SR UHGQLPZV] \VWNLFK MH MQDGNODV . nazwa_obiektu : nazwa_klasy nazwa_atrybutu = wart_atrybutu ...
: n azwa_klasy nazwa_atrybutu = wart_atrybutu ... nazwa_obiektu : nazwa_klasy : nazwa_klasy
0R *OLZHR]QDF]HQLDQDZ\VW SLHQLH klasy
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Klasa abstrakcyjna a klasa konkretna Klasyczne klasyfikacje w ELROR JLL W\ ONR OL FLH Z GU]HZLH NODV PR J E \ü klasami konkretnymi. Osoba prawna Osoba fizyczna Firma
Sekwencja pierwszy QDVW SQ \ Sekwencja int ...
implementacjeSekwencja char .
..implementacjeKlasa abstrakcyjna QLHPDQLHPR *HPLHüEH]SR UHGQLFKZ \VW SLH LVáX *\ Z \á F]QLH MDNRQDGNODVDGODLQQ \FKNODV6WDQRZL MDNE \ZVSyOQ F] ü definicji grupy klas o podobnej semantyce. Klasa konkretna PR *HPLHüPDSUDZRPLHüZ \VW SLHQLDEH]SR UHGQLH
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Metoda abstrakcyjna Metoda abstrakcyjna jest to metoda wyspecyfikowana w nadklasie, kt ó rej LPSOHPHQWDF MDPXVL]QDOH (üVL ZNWyUH M ]SRGNODV Pracownik godzinowy stawka godzinowa VWDZND ZL WHF]QD REOLF]Z \SáDW
Pracownik etatowy zarobek tygodniowy REOLF]Z \SáDW
Pracownik na zlecenie ]DUREHNPLHVL F]Q \ REOLF]Z \SáDW
Pracownik {abstract} MX *]DURELáZW \PURNX REOLF]Z \SáDW ^abstract} Klasa abstrakcyjna PR *H ]DZLHUDüDEVWUDNF \M QHPHWRG \, ale nie musi . Klasa konkretna musi ]DZLHUDü LPSOHPHQWDF MH W\ FK P HWRG DEVWUDNF \M Q\ FK , kt ó re nie ]RVWDá \]DLPSOHPHQWRZDQH w *DGQH M z nadklas d anej klasy konkretnej.
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Interfejs, realizacja, ]DOH *QR ü (1) Stereotyp « interface » SRSU]HG]D QD]Z N OD V\ , kt ó ra zawiera jedynie specyfikacje metod, bez implementacji. W UML interfejs nie zawiera atrybut ó w. Wszystkie metody V tu publiczne. Implementacje metod wyspecyfikowanych w interfejsie IPracownik zawiera klasa Pracownik, co oznaczane jest za SRPRF relacji typu realizacja (realization), o n otacji podobnej d o d ziedziczenia. =DOH *QR ü (dependency )RSLVX MHUHODF M W\ SXNOLHQW -dostawca pewnej informacji.
Pracownik
pensja stanowisko ]PLHSHQVMdependency Firma realization
Osoba {abstract}
LPL nazwisko data ur. policz wiekIPracownik « interface »
+]PLHSHQVMWHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Interfejs, ]DOH *QR ü (2) 'ODSRSU]HGQLHJRGLDJUDPXPR *QD]DVWRVRZDüLQQH , EDUG]LHM]ZL ]áH oznaczenie. Pracownik IPracownik Osoba
Firma Klasa abstrakcyjna i interfejs ]RVWDá \W X potraktowane w podobny spos ó b-j ak o d ef in ic je interfejs ó w do klasy Pracownik. -HGQDN *H , istnieje PL G] \ QLPL SHZQD Uy *QLFD : klasa abstrakcyjna, w SU]HFLZLH VWZLH do interfejsu, PR *H ]DZLHUDü atrybuty i implementacje metod.
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Ekstensja klasy Ekstensja klasy ( class extent ) = aktualny (zmienny w czasie) zbi ó r ZV] \VWNLFKZ \VW SLH WH MNODV \ Ekstensja klasy w implementacji oznacza VSHF MDOQ VWUXNWXU G DQ \FK , k onkretny byt programistyczny GRá F]RQ \G R klasy. Ta struktura przechowuje wszystkie obiekty E G FH F ]áRQNDPL GDQH M klasy. 1LHNWyUHPHWRG \Z \VSHF \ILNRZDQHZGDQH MNODVLHRGQRV] VL GR MH j Z\VW SLH : 1LHNWyUHPHWRG \Z \VSHF \ILNRZDQHZGDQH MNODVLHRGQRV] VL GR MH j Z\VW SLH : pracownik. wiek pracownik. zwolnij KONTO . Oblicz_procent 1LHNWyUHPHWRG \Z \VSHF \ILNRZDQHZGDQH MNODVLHRGQRV] VL GR MH j ekstensji : 1LHNWyUHPHWRG \Z \VSHF \ILNRZDQHZGDQH MNODVLHRGQRV] VL GR MH j ekstensji : KL_pracownik. nowy KL_pracownik. zlicz KL_KONTO. 2EOLF]BVXP .ODVDPR *HPLHüQLHMHGQ lecz wiele ekstensji.
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
3RZL ]DQLHD asocjacja (binarne) Fizyczny lub SRM FLRZ\ ]ZL ]HN PL G] \G Z RP DR EL HN WD P L, RGZ]RURZ \ZX M F\ ] Z L ]HN LVWQLH M F\ P L G] \ RGSRZLHGQLPL bytami w analizowanej dziedzinie przedmiotowej. Grupa SRZL ]D SRVLDGD M F\ FK ZVSyOQ VWUXNWXU LVHPDQW \N 3RZL ]DQLH jest Z\VW SLHQLHP asocjacji. :Osoba Kasia :Firma Krawiecka
pracuje_w
:Osoba Jasio :Firma Szewska
:Osoba Ewa pracuje_w pracuje_w 2ELHNW \LSRZL ]DQLD na diagramie obiekt ó w
Osoba LPL Firma rodzaj
pracuje_w Klasy i asocjacja na diagramie klas
3RZL ]DQLH binarne Asocjacja binarna
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
/LF]QR üDVRFMDFML /LF]QR üMHVWR]QDF]DQDQDREXNR FDFKDVRFMDFML 1 1, 2, 3, ... 2, 3, 4, ... 3, 4, 5 2, 4, 18 1, ? 0, 1 0, 1, 2, ... 0, 1, 2, ...
1 1..* 2..* 3-5 2,4,18 0..1 0..* *
znaczenie 3D VWZR Stolica Firma Pracownik Osoba Adres
1* 0..*0..1
2]QDF]DüF]\QLHR]QDF]DüOLF]QR ü 1?
3U]\NáDG\ :
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Asocjacje skierowane Zam ó wienie GDWD=áR *HQLD F] \=DSáDFRQH VXPD'R=DSáDW \ realizuj() zamknij()
Klient nazwisko adres ZLDU \J RGQR ü
*1 Produkt *1
1 *
1D GLD JUDPDFK 8 0/ P R* QD ]D]QDF]Dü NLHUXQHN QDZL JDF ML Z]GáX *G DQ HM D VR FM DF ML : WDNLP przypadku asocjacja jest rysowana w postaci VWU]DáNL Q DZL JDF MD MHVW PR *OLZD ]J RGQLH ] MH M kierunkiem, ale nie odwrotnie. PozycjaZam ó wienia LOR ü cena czyZrealizowana
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Atrybuty asocjacji Plik 8 *\WNRZQLN
3UDZRGRVW SX GRVW S
GRVWSQ\ dla
{ GRVWSR]QDF]D czytanie lub czytanie-pisanie}
* *
-H OL NODVD DVRF MDF ML QLH ]DZLHUD metod ani asocjacji do innych klas, to MH MQ D] Z D P R* H E\ ü RSXV]F]RQD GOD SRGNUH OHQLD IDNWX * H chodzi tu Z \á F]QLHR atrybuty asocjacji.
Firma nazwa adres Zatrudnienie zarobek stanowisko
szef pracownik
zatrudnia
2FHQDZ\GDMQR FL ocena
kieruje0..1 *
0..11..*
Osoba nazwisko pesel adres
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Atrybuty i asocjacje pochodne &HFKD SRFKRGQD MHVW ]GHILQLRZDQD SRSU]H] I XQNF M G]LDáD M F Q D jednym lub ZL FH ME \WDFK P RGHOX N WyUH WH *P RJ E \ü SRFKRGQH &HFKD SRFKR dna R]QDF]DQD MHVWXNR QLNLHP Asocjacja pracuje_w jest DVRFMDFM S RF KR GQ N WyU P R* QD Z \]QDF] \ü SRSU]H] asocjacje zatrudnia i zlokalizowana _ w $VRF MDF M S RFKRGQ P R* QD R]QDF] \ü SRSU]HG]D M FXNR QLNLHPQD]Z OXEURO DVRF MDF ML
data_urodzenia /wiek
^ZLHN GDWDBELH*FD-data_urodzenia}atrybut pochodny: /wiek :\G]LDá Sekcja Pracownik Budynek
zatrudnia zlokalizowana_w /pracuje_w
** **
Osoba asocjacja pochodna: / pracuje_w
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
3U]\NáDGRZ\ diagram klas
poprzedza QDVWSXMHBSRzawiera
zapisany_na prowadzi
Pracownik Student
Osoba Kurs Profesor :\NáDG
1..* * 1..*1..* *
0..1 1
1
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
$JUHJDFMD MHVW V]F]HJyOQ\P SU]\SDGNLHP DVRFMDFML Z\UD *DM F\P ]ZL ]HN F] ü- FDáR ü Np VLOQLN MHVWF] FL VDPRFKRGX Nie istnieje jednak powszechnie akceptowana definicja agregacji. P. Coad SRGD MH SU] \NáDG DJ UH JDF ML MDNR ]ZL ]HN SRPL G] \R UJ DQL]DF M L MH j pracownikami; dla odmiany J. Rumbaugh WZLHUG]L *H ILUPD QLH MHVW DJ UH JDF M MH M pracownik ó w. : ZLHOX SU] \SDGNDFK ]ZL ]NL DJ UH JDF ML V R F] \ZLVWH -HGQDN *H Z WSOLZR FL SRZVWD M Q DZ HW Z S U] \SDGNX VDPRFKRGX L VLOQLND ER np VLOQLN P R* H E\ ü WRZDUHP Z VNOHSLH QLH ]ZL ]DQ \P ] *DGQ \P VDPRFKRGHP 0 WOLN GRRN RáD SR M FLD DJ UH JDF ML Z \QLND UyZQLH *] W HJ R *H MHVW RQD QDGX *\ ZDQD w celu XVSUDZLHGOLZLHQLDSHZQ \FKR JUDQLF]H PRGHOXRELHNWRZH JR Np SRSXODUQH Z \M D QLHQLH SRZRGyZ EUDNX np. dziedziczenia wielokrotnego WR *H PR *QD MH ÄREH M ü SU]H] DJ UH JDF M ´ FR MHVW QRQVHQVHP ] SX nktu widzenia FHOyZ PRGHORZDQLD SR M FLRZH JR W DN V DP R MDN ]GDQLH ÄDVRF MDF MH V ] E GQH ER PR *QD MHREH M üSU]H]DWU \EXW \´ Wszysto PR *QDREHM üZ assemblerze!
Agregacja
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
3RM FLHDJUHJDFMLMHVWUR]XPLDQHQDGZDVSRVRE\ : 8 0 / W H GZ LH V \WXDF MH ]RVWDá \ UR]G]LHORQH 3LHUZV] I RU P Q D] wano NRPSR]\FM .RPSR] \F MD R]QDF]D *H F\NO *\ FL RZ \V Ná DG RZ HM ] DZ LH UD V L Z F\NOX *\FLRZ\PFDáR FLRUD] *HVNáDGRZDQLHPR *HE\üZVSyáG]LH lona .
-DNR]ZL ]HNF] ü- FDáR üSRPL G] \RELHNWDPL ZLDWDU]HF] \ZLVWH JR np. VLOQLN MHVWF] FL VDPRFKRGX -DNRSRPRFQLF] \ URGHNGRPRGHORZDQLDGRZROQH MLQQH MV \WXDF MLN iedy WU]HEDZ \G]LHOLü podobiekty w pewnych obiektach. np. informacja o XEH]SLHF]HQLDFKZHZQ WU]RELHNWyZSUDFRZQLNyZ
.RPSR]\FMDMDNRPRFQDSRVWDüDJUHJDFML K
CK
S**agregacja kompozycja
K
CK
S*WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Agregacja a kompozycja; SU]\NáDG W przedstawionym UR]ZL ]DQLX punkt n a SáDV]F] \( QLH , w kt ó rym SU]HFLQD M V L RNU J L wielobok , jest odwzorowywany w dwa (?) o biekty klasy P unkt.
Wielobok
Punkt Styl kolor F] \: \SHáQLRQ \
2NU J SURPLH
{
ordered}
3..* **
0..10..1
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Asocjacja kwalifikowana Katalog Plik
nazwa1 * {
nazwa pliku jest unikatowa w ramach katalogu }Katalog Plik
nazwa pliku0..1
13HUVSHNW\ZDSRM FLRZD - p lik jes t w ramach katalogu jednoznacznie LGHQW \ILNRZDQ \SU]H]QD]Z . Perspektywa projektowa - w skazanie na WR *HNDWDOR JSOLNyZPR *QD ]RU JDQL]RZDü MDNR WDEOLF DVRF MDF \M Q lub VáRZQLN (przeeszukiwanie za SRPRF nazwy pliku).
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Asocjacja n -arna Asocjacja n-arna to asocjacja, kt ó rej Z \VW SLHQLD á F] n obiekt ó w E G F \FK instancjami co QD MZ \* HM n klas. Dana NODVD PR *H SR MDZLü VL Q D Z L FH MQ L* jednej pozycji w asocjacji. Asocjacja binarna ze VZR M XSURV]F]RQ QRWDF M L pewnymi dodatkowymi ZáDVQR FLDPL (WDNLPL MDNPR *OLZR üXVWDODQLDNLHUXQNXQDZL JRZDQLD , kwalifikator ó w ]ZL ]NyZ agregacji czy kompozycji) jest specjalnym rodzajem asocjacji n-arnej (dla n=2). K1 K2
K3
AK1 K2
K3
asocjacja 3-arnaasocjacja 4-arna
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Diagramy interakcji Diagramy interakcji ( ZVSyáSUDF \ i sekwencji) MDNR JáyZQH ]DGDQLH P DM ZVSRPR *HQLH SUR MHNWDQWD w procesie konstruowania modelu obiektowego (diagramu klas). Pomoc polega na analizie zachowania systemu w trakcie realizacji MH JR ]DGD i LGHQW \ILNRZDQLX QRZ \FK F] \W H* N RUHNFLH MX * LVWQLH M F\ FK element ó w modelu, np.: klas, LFKDWU \EXWyZF] \PHWRGRUD]DVRF MDF MLPL G] \NODVDPL . 'LD JUDP \ Z VSyáSUDF \ VWDQRZL FH Z pewnym sensie Z \VW SLHQLD fragmentu diagramu klas, lepiej SU]HGVWDZLD M ] Z L ]NL PL G] \ RELHNWDPL ELRU F \PL XG]LDá w UHDOL]DF ML GDQH JR SU] \SDGNX X* \FLD . àDWZLH MW H* P R* QD WX RGZ]RURZDü HIHNW \ RGG]LDá \ZDQLDQDSR MHG \QF] \RELHNW . Diagramy sekwencji lepiej SU]HGVWDZLD M ] DO H* QR FL F]DVRZH , EDUG]LH MQ L* diagramy kolaboracji QDGD M V L do modelowania system ó w czasu rzeczywistego i ]áR *RQ \FKVFHQDULXV] \.
Oba rodzaje diagram ó w SU]HGVWDZLD M bardzo SRGREQ LQIRUPDF M , w nieco inny spos ó b. Diagramy sekwencji GRVWDUF]D M URGNyZ do modelowania przetwarzania ZVSyáELH *QH JR .
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
,QWHUDNFMDQDGLDJUDPDFKZVSyáSUDF\ Komunikaty PR J E\ üQXPHURZDQH , albo kolejnymi liczbami naturalnymi , albo VWRVX M FQXPHUDF M ]D JQLH *G *RQ 1XPHUDF MD]D JQLH *G *RQDR]QDF]D : MH OLRELHNW O otrzyma komunikat o numerze np. 7.3 to ten QXPHUE G]LH GRá F]DQ \ jako prefix do ND *GH JRNRPXQLNDWXZ \V \áDQH JR w trakcie realizacji komunikatu 7.3 przez O .
:Personel bibl. :&]áRQHN bibl. .VL * ND
:Egzemplarz .VL * NL
3R*\F](W\WXá) 1: a:=&]\0R*QD3R*\F]\ü2: [a] b:=&]\'RVWSQ\
2.1: [b]=D]QDF]:\SR*\F]HQLH
specyfikacja warunku
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Interakcja na diagramach sekwencji Dwa sposoby opisywania czasu: R]QDF]DQLH VNDOL F]DVRZH M OXE QDNáDGDQLH RJ UDQLF]H QDXSá \ZF]DVX .
:Personel bibl. .VL * ND :&]áRQHN bibl. :Egzemplarz .VL * NL
3R*\F](W\WXá) 1: a :=&]\0R*QD3R*\F]\ü 2: [a] b := &]\'RVWSQ\ 2.1: [b]=D]QDF]:\SR*\F]HQLHA C
{C-A < 5 sek.}{=D]QDF]:\SR*\F]HQLH- &]\'RVWSQ\< 1 sek.}
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Generyczne diagramy interakcji Generyczny diagram interakcji ma z ]DáR *HQLD VSHF \ILNRZDü wszystkie sekwencje interakcji dla danego przypadku X* \FLD , a nie tylko dla jednego z PR *OLZ \FK VFHQDULXV] \. UML dostarcza URGNL ]DUyZQR do modelowania ]DFKRZD ZDUXQNRZ \FK , jak i iteracji. :K1 :K2 :K3
3.1: *[i := 1..2] x 3.1.1: *[j := 1..3] yxyyyxyyyKomunikat, kt ó ry ma E\ üZ \VáDQ \ZLHOHUD] \, PXVLE \üSRSU]HG]RQ \V \PEROHP * . 2F] \ZL FLHPXVLE \üWH *Z \VSHF \ILNRZDQ \ZDUXQHN RNUH OD M F\ ]DNR F]HQLH iteracji.
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
2]QDF]DQLHZVSyáELH *QR FL Rodzaj interakcji Symbol Znaczenie synchroniczna “Normalna ” proceduralna sytuacja. Nadawca ]DZLHV]D G]LDáDQLH , dop ó ki odbiorca nie SU]HND *H VWHURZDQLD , co PR *QD R]QDF] \ü Z \NRU] \VWX M FV \PERO powrotu. powr ó t Powr ó t nie jest komunikatem. Oznacza ]DNR F]HQLH NRPXQLNDWX i przekazanie sterowania do nadawcy.
SáDVND (flat)
Nadawca komunikatu przekazuje sterowanie do odbiorcy NR F] F MHGQRF]H QLH Z áDVQ G]LDáDOQR ü . asynchroniczna Nadawca komunikatu odbiorcy nie o czekuje na RGSRZLHG (RGELRUF \, ale WH * in ie NR F] \ ZáDVQH MDNW \ZQR FL , co oznacza * H nadal przetwarza iPR *HZ \V \áDü komunikaty.
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Diagramy stanu (1) Maszyna stanu jest grafem skierowanym,, NWyUH JR ZLHU]FKRáNL VWDQRZL stany obiektu, a áXNL RSLVX M SU]H M FLD PL G] \ VWDQDPL . 3U]H M FLH PL G] \ VWDQDPL jest RGSRZLHG]L na zdarzenie. Z wykle, maszyna stanu jest przypisana do klasy VWDQRZL F PRGHO K LVWRULL *\ FLD dla obiektu tej klasy. 0R *QD SU] \SLVDü PDV] \Q stanu do przypadku (ó w) X* \FLD , operacji, kolaboracji, ale dla opisu SU]HSá \ZX VWHURZDQLDF] FLH MZ \NRU] \VWX MHVL LQQH URGNL , np. GLD JUDP \DNW \ZQR FL . Stan obiektu PR *H E\ ü FKDUDNWHU \]RZDQ \ QD NLOND VSRVREyZ : jako okres czasu, wk tó rym obiekt oczekuje na zdarzenie albo jako okres czasu, w k tó rym obiekt SU]HWZDU]D DOER MDNR ]ELyU ZDUWR FL RELHNWX (atrybut ó w LSRZL ]D - w pewnym aspekcie podobnych. Nazwa stanu entry/akcja1/akcja2/ … GRDNW \ZQR üDNW \ZQR ü« exit/akcja1/akcja2/...
akcja - operacja atomowa lista akcji - akcja1/akcja2/ … - traktowana jest, jak pojedyncza operacja, DNW\ZQR ü - operacja NWyU PR *QDSU]HUZDü , OLVWDDNW\ZQR FL - podobnie, jak lista akcji, entry , do , exit - VáRZD NOXF]RZH do specyfikowania operacji wykonywanych na ZH M FLX , w trakcie i QDZ \M FLX]HVWDQX
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Diagramy stanu (2) Typ zdarzenia ZRáDQLH
Opis 6NáDGQLD zmiana V\JQDá czas
otrzymanie przez obiekt synchronicznego * GDQLD wykonania operacji - n ajbardziej podstawowy rodzaj zdarzenia zdarzenie typu zmiana jest X* \WHF]QHQS . do modelowania sytuacji, gdy obiekt zmienia stan po otrzymaniu odpowiedzi na Z \VáDQ \SU]H]VLHELHNRPXQLNDW otrzymania przez obiekt asynchronicznego * GDQLD wykonania operacji; X* \WHF]QH do PRGHORZDQLD]GDU]H SU] \FKRG] F \FK ]]HZQ WU] systemu XSá \QL FLHF]DVXRNUH ORQH JR w spos ó b EH]Z] JO GQ \OXEZ] JO GQ \, np. after (5 sec.)
op (a : T) when (Z \UD *HQLH ) nazwa_syg (a : T) after (czas)
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Diagramy stanu (3) SU]HM FLH]HZQ WU]QH (external transition) SU]HM FLHZHZQ WU]QH (internal transition) samo- SU]HM FLH (selftransition)
zdarzenie[warunek] /akcja
S 1 S 2
zdarzenie[warunek] /akcjabez zmiany stanu
zdarzenie[warunek] /akcjaS SU]HM FLHDXWRPDW\F]QH (completion transition)
[warunek] /akcja
S1 S2 ZV] \VWNLH RSHUDF MH Z \VSHF \ILNRZDQH SR VáRZDFK kluczowych entry, exit i do ]RVWDá \XNR F]RQH
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Diagramy stanu (4) 8U] G]HQLH niesprzedane 8U] G]HQLH sprzedane
kupno XU]G]HQLDprzez klienta NOLHQW]ZUyFLáXU]G]HQLHafter (data gwarancji)
Kolejka ELDá\FK Kolejka czarnych
UXFKELDá\FKruch czarnych
czarneZ\JU\ZDM remis ELDáHZ\JU\ZDM
when (szachmat) when (pat) when (pat) when (szachmat)
Diagram typu: F\NO *\FLDRELHNWX Diagram typu: SU]HSá\ZVWHURZDQLD VWDQNR FRZ \ stan SRF] WNRZ \
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Diagramy stanu (5) Stan prosty nie posiada substruktury, jest specyfikowany przez zbi ó r operacji o raz SU]H M ü. Stan ]áR *RQ\ , SRZVWDá \ w HIHNFLH ]D JQLH *G *DQLD VWDQyZ , PR *H E\ ü zdekomponowany na stany bardziej proste, a dekompozycja jest tu rodzajem specjalizacji. .D *G \ z SRGVWDQyZ G]LHG]LF] \S U] HM FLD nadstanu. Tylko jeden z SRGVWDQyZPR *HE \üDNW \ZQ \ w danym momencie. S S1 S2 S3
zd2 zd3 zd5 zd4
zd4 zd4
zd1
ZF]H QLH MV]HSUDFH5XPEDX JKD
S1 S2 s3
S
zd4 zd5 zd3zd1zd2
D. Harel, OMT, UML
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
'LDJUDP\DNW\ZQR FL (1) *UDI DNW\ZQR FL to maszyna stanu, kt ó rej podstawowym zadaniem nie jest analiza stan ó w obiektu, ale modelowanie przetwarzania ( SU]HSá \ZyZ operacji). 6WDQ \ JUDIX DNW \ZQR FL , zwane DNW\ZQR FLDPL RGSRZLDGD M stanom Z \Uy *QLDOQ \P w trakcie przetwarzania, a nie stanom obiektu. $NW \ZQR ü PR *H E\ ü LQWHUSUHWRZDQD Uy *QLH , w ]DOH *QR FL RG S HUVSHNW \Z \: jako zadanie do wykonania i to ]DUyZQRSU]H]F]áRZLHND , jak i p rzez komputer (z perspektywy SR M FLRZH M) F] \WH *QS . jako pojedyncza metoda (z perspektywy projektowej). Podobnie, SU]H M FLD PL G] \ VWDQDPL UDF]H MQ LH V tu ]ZL ]DQH ] QDGH M FLHP zdarzenia, ale z ]DNR F]HQLHP SU]HWZDU]DQLD Z \VSHF \ILNRZDQH JR GOD GDQH JR stanu. 'OD VNRPSOHWRZDQLD SUR MHNWX ND *GD DNW \ZQR ü SRZLQQD E\ ü UR]SLVD na na szereg operacji, z k tó rych ND *G WU]HED E G]LH QD Sy (QLH MV] \P HWDSLH SU] \G]LHOLü do odpowiedniej klasy. 'LD JUDP \D NW \ZQR FL V V]F]H JyOQLH X* \WHF]QH SU] \ PRGHORZDQLX S U]HSá \ZyZ RSHUDF ML F] \W H* w RSLVLH ]DFKRZD ] SU]HZD J SU]HWZDU]DQLDZVSyáELH *QH JR .
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
'LDJUDP\DNW\ZQR FL (2) nazwa DNW\ZQR FL DNW\ZQR ü SU]HM FLH , z zasady nie opisywane; PR *H E\ ü RSDWU]RQH warunkiem, PR *H WH *E \ü R]QDF]RQH V\ PEROHP LWHUDF ML; akcje RSLVX M FH SU]H M FLD SRZLQQ \E \ü UDF]H M GRá F]RQH GR NWyUH M z DNW \ZQR FL ; romb , NWyU \PR *HUR]G]LHODü MHGQRSU]H MFLHQDNLONDLQQ \FK (opatrzonych warunkami) lub á F] \ü NLONDDOWHUQDW \ZQ \FKSU]H Mü w jedno sztabka synchronizujaca (synchronization b ar); PR *H E\ ü typu “fork ” (rozdzielenie jednej operacji na kilka SU]HELH JD M F\ FK r ó wnolegle) lub typu “join ” (synchronizacja NLONXRSHUDF MLUyZQROH Já \FK Z MHGQ DNW \ZQR üSRF] WNRZD DNW \ZQR üNR FRZD
Oznaczenia:
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
'LDJUDP\DNW\ZQR FL (3) Pobierz zam ó wienie :\ OLM to, co zam ó wiono 3DPL WDM , co i NLHG\Z\VáDQR
Skompletuj zam ó wienie
3áDü
Klient ']LDá6SU]HGD *\ Magazyn :Zam ó wienie {wprowadzone} :Zam ó wienie {skompletowane} :Zam ó wienie {Z \VáDQH }
:Zam ó wienie {umieszczone}
Wystaw zam ó wienie
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Diagramy implementacyjne Diagramy komponent ó w SRND]X M FH ]DUyZQR LPSOHPHQWDF M HOHPHQWyZ projektu (np NODV SU]H] NRPSRQHQW \ MDN LL QWHUIH MV \R UD ] ]D OH* QR F LP L Gzy NRPSRQHQWDPL LQQ \PL VáRZ \ SRND]X M FH VWUXNWXU NRGX N RQVWUXR wanego SI. 'LDJUDP\ ZGUR *HQLRZH SRND]X M FH NRQIL JXUDF M V \VWHPX F]DVX wykonania, czyli rozmieszczenie komponent ó w i obiekt ó w na REOLF]HQLRZ \FK ]DVREDFK F]DVX Z \NRQDQLD ]ZDQ \F KW XZ ]áDPL Taka NRQIL JXUDF MD PR *H E\ ü ]DUyZQR VWDW \F]QD MD NL G \QDPLF]QD - i komponenty LRELHNW \PR J PL JURZDüPL G] \Z ]áDPLZF]DVLHZ \NRQDQLD
'LD JUDP \ LPSOHPHQWDF \M QH SRND]X M QLHNWyUH DVSHNW \ LPSOHPHQWDF ML SI, Zá F]D M F Z WR VWUXNWXU NRGX (UyGáRZH JR RUD] VWUXNWXU NRGX F]D su wykonania (run-time .RQVWUXRZDQLH WDNLFK GLD JUDPyZ MHVW X* \WHF]QH ]DUyZQR ]H Z ]J O GX QD SRQRZQH X* \FLH MDN L ]H Z] JO GX QD P R* OLZR ü RVL J DQLD ] LFK SRPRF RGSRZLHGQLFKSDUDPHWUyZZ \GD MQR FLRZ \FK UML wprowadza dwa rodzaje takich diagram ó w:
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Diagramy komponent ó w Komponent MHVW MHGQRVWN LPSOHPHQWDF ML ] GREU]H ]GHILQLRZDQ \P LQWHUIH MVHP , GREU]HZ \L]RORZDQ \]NRQWHNVWXQDGD M F\ VL GRZLHORNURWQH JR wykorzystania. Diagram komponent ó w j es t przedstawiany jako graf, gdzie Z ]áDPL V NRPSRQHQW \ ]D ]DOH *QR F LS UR Z DG ] R G N OLH QW D pewnej informacji do jej dostawcy.
Program do harmonogram ó w Program SODQXM F\ Interfejs graficzny
rezerwacje aktualizacje
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
'LDJUDP\ZGUR *HQLRZH 'LD JUDP \ZGUR *HQLRZHSRND]X M NRQIL JXUDF M HOHPHQWyZF]DVXZ \N onania: NRPSRQHQWyZVSU] WRZ \FKIL] \F]Q \FK MHGQRVWHNSRVLDGD M F\ FKFR najmniej SDPL üDF] VWRLPR *OLZR FLREOLF]HQLRZHNRPSRQHQWyZRSUR Jramowania RUD]]ZL ]DQ \FK]QLPLRELHNWyZ 'LD JUDPZGUR *HQLRZ \ MHVW JUDIHP JG]LH Z LHU]FKRáNL ]ZDQH Z ]áDP L SRá F]RQH V SU]H] OLQLH RGZ]RURZ \ZX M FH SRá F]HQLD NRPXQLNDF \M QH NRPSRQHQWyZ VSU] WRZ \FK : ]á \ SRGREQLH MDN SRá F]HQLD NRPXQLNDF \M QH PR J E \ü opatrzone stereotypami, n p ©&38ª ©SDPL üª ©XU] G]HQLH MDNLH ª : ]á \ SU]HFKRZX M Z \VW SLHQLDRELHNWyZLNRPSRQHQWyZ
AdminServer:KomputerHost:Program do harmonogram ó w rezerwacje
KomputerJacka:PC
:Program SODQXM F\
SRáF]HQLHkomunikacyjne
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Diagramy pakiet ó w (1) Pakiety VWDQRZL zgrupowanie element ó w modelu 6 URGNLHP RJ yOQH JR zastosowania przeznaczonym do budowania struktur hierarchicznych. .D *G \ element modelu musi E\ ü przypisany do jednego pakietu (home package). Model PR *HE \üRSLVDQ \SU]H]]ELyUSDNLHWyZ . 3DNLHW RSUyF] HOHPHQWyZ PRGHOX P R* H WH * ]DZLHUDü LQQH SDNLHW \ (]D JQLH *G *DQLH ). Stosowanie pakiet ó w ]QDF] FR XáDWZLD ]DU] G]DQLH przechowywaniem, konfiguracjami czy modyfikowaniem element ó w systemu. 'REU]HSU]HSURZDG]RQ \SRG]LDáQDSDNLHW \PR *H]QDF] FR XáDWZLü ]DU] G]DQLH procesem konstrukcji produktu programistycznego. 6 pakiety specjalnego rodzaju: fasada (facade), model, podsystem, system.
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Diagramy pakiet ó w( 2 ) =áR *RQDNRODERUDFMD Ukrywanie detali, jest X* \WHF]QH , MDN ND *GD DEVWUDNF MD . 7HPX FHORZL PR *H QS . VáX *\ ü Z \RGU EQLHQLH VXENRODERUDF ML , a QDVW SQLH ]DPLDQD MH MQ D SDNLHW . Pakiet nie SRVLDGD ZáDVQH JR LQWHUIH MVX , w tym sensie * H SU]HVáDQLH NRPXQLNDWX do pakietu, R]QDF]DSU]HVáDQLHNRPXQLNDWX do obiektu ZHZQ WU] pakietu. W UML, sparametryzowana kolaboracja jest traktowana jako wzorzec projektowy (design pattern) .
:\Uy *QLDQLHVXENRODERUDFML Zamiana subkolaboracji na pakiet
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Diagramy pakiet ó w( 3 )
Edytor Elementy diagramów graficznych Elementy dziedziny ]DVWRVRZDSterownik 5G]HJUDILNL 5G]HJUDILNLMotif 5G]HJUDILNLWindows
System okienkowy Motif MSWindows
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Diagramy pakiet ó w( 4 ) « facade » ( « fasada » ) Zawiera Z \á F]QLH RGZRáDQLD do element ó w zdefiniowanych w innych pakietach. « model » 6WDQRZLPQLH MOXEZL FH MNRPSOHWQ DEVWUDNF M V\ VWHPX (na pewnym SR]LRPLHV]F]H JyáRZR FLZLG]LDQ ] pewnej perspektywy. Zwykle zawiera drzewo pakiet ó w. « subsytem » ( « podsystem » ) Jest rodzajem pakietu, kt ó ry reprezentuje pewien sp ó jny, logiczny, dobrze wyizolowany fragment systemu. Posiada dobrze wyspecyfikowany zbi ó r interfejs ó w, do interakcji z otoczeniem. Podsystem podzielony jest QDGZLHF] FLVSHF \ILNDF \M Q LUHDOL]DF \M Q &] ü specyfikacyjna zawiera opis interakcji z otoczeniem, z UH JXá \]D SRPRF SU] \SDGNyZX *\ FLD . &] üUHDOL]DF \M QD SRVáX JX M FVL NRODERUDF MDPL , podaje sposoby realizacji przypadk ó w przez podsystem. Podsytemy PR J E \ü ]EXGRZDQH z innych podsystem ó w, ZWHG \W H QD MQL *V]H JR SR]LRPX P XV] MX * ]DZLHUDü elementy modelu. Podsytem stanowi zgrupowanie element ó w modelu logicznego. Komponent jest zgrupowaniem element ó w modelu implementacyjnego. Zwykle, podsystemy V implementowane jako komponenty. 7DNLH SRGH MFLH XSUDV]F]D PDSRZDQLH modelu logicznego na implementacyjny.
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
0HFKDQL]P\UR]V]HU]DOQR FL w UML UML SRVLDGDWU]\URG]DMHPHFKDQL]PyZUR]V]HU]DOQR FL : stereotypy, ZDUWR FLHW \NLHWRZDQH , ograniczenia. Stereotypy 6WHUHRW \S \XPR *OLZLD M PHWDNODV \ILNDF M element ó w modelu. Istnieje lista VWHUHRW \SyZ GOD ND *GH JR rodzaju element ó w modelu (elementu metamodelu UML), np UHODF MLPL G] \SU] \SDGNDPLX *\ FLDNODVF] \PHWRG Dany element modelu (np NRQNUHWQDNODVDF] \PHWRGDPR *HE \ü oznaczona co QDMZ\ *HMMHGQ\P stereotypem. 6 VWHUHRW \S \SUHGHILQLRZDQHDOHX *\ WNRZQLF \PR J WH *GHILQLRZ DüZáDVQH 6WHUHRW \S \UR]V]HU]D M VHPDQW \N PHWDPRGHOX
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Stereotypy; notacja Notacja: zwykle « nazwa stereotypu » lub ikona , ale PR *QDWH *X *\ ZDü koloru czy tekstury , FKRü z Uy *Q \FK Z ]J O GyZ QLH jest to polecane (ograniczenia ludzkie lub VSU] WX ). ,NRQD PR *H E\ ü X* \ZDQDQD 2 sposoby: zamiast symbolu stereotypu ( c, d ) lub razem z nim ( b ). W przypadkach a , b , c ]DZDUWR ü HOHPHQWX P RGHOX RSDWU]RQH JR VWHUHRW \SHP (tu: klasy 3LyUR ZLHWOQH ) jest widoczna. W przypadku d ]RVWDáDRSXV]F]RQD .
« sterowanie » 3LyUR ZLHWOQH lokacja: Punkt uruchom (Tryb) 3LyUR ZLHWOQH
« sterowanie » 3LyUR ZLHWOQH lokacja: Punkt uruchom (Tryb)
ikona
(a )( b ) (c ) (d )
« » guillemets - jeden znak - X* \ZDQ \ w FKDUDNWHU]HFXG] \VáRZLD w M ]. francuskim 3LyUR ZLHWOQH lokacja: Punkt uruchom (Tryb)
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Stereotypy; SU]\NáDG\ «
WUZDáD»
3URVWRNW punkt1: Punkt punkt2: Punkt «konstruktory» 3URVWRNWS3XQNWS3XQNW «zapytania» obszar () : Real aspekt() : Real ... «aktualizacje» SU]HVXGHOWD3XQNW SU]HVNDOXMZVSyáF]\QQLNReal)P1 P2 «
include» P3 P4 «
extend» rodzaj element ó w modelu: UHODF MHPL G] \SU] \SDGNDPLX *\ FLD lista stereotyp ó w dla tego rodzaju: « include » i « extend » .D *GDUHODF MDPL G] \SU] \SDGNDPLX *\ FLD (element modelu) jest opatrzona jednym z dw ó ch stereotyp ó wz SRZ \* V]H MOLVW \. «
WUZDáD»
3URVWRNW punkt1: Punkt punkt2: Punkt «konstruktory» 3URVWRNWS3XQNWS3XQNW «zapytania» obszar () : Real aspekt () : Real ... «» SU]HVXGHOWD3XQNW SU]HVNDOXMZVSyáF]\QQLNReal)Jednym stereotypem PR *QD RSDWU] \ü FDá OLVW HOHPHQWyZ P RGHOX . .RQLHF OLVW \P R* H E\ ü oznaczony przez «» .
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
:DUWR üH W\ NLHWRZDQ stanowi FL J znak ó w o postaci: VáRZRNOXF]RZH ZDUWR ü . 'RZROQ \áD FXFK]QDNyZPR *HE \üX *\ W\ MDNRVáRZRNOXF]RZH 6 VáRZDNOXF]RZHSUHGHILQLRZDQHDOHX *\ WNRZQLNPR *HWH *GHILQ LRZDüZáDVQH /LVW ZDUWR FLHW \NLHWRZDQ \FK (oddzielonych przecinkami) XPLHV]F]DVL w {} . 'RZROQ \HOHPHQWPRGHOXPR *HE \üVNR MDU]RQ \QLHW \ONR]OLVW ZDUWR FL HW \NLHWRZDQ \FKDOHZEDUG]LH MR JyOQ \PVHQVLH]áD FXFKHPZáDV QR FLZSRVWDFL ^GRZROQ \áD FXFK]QDNyZ `
:DUWR FLHW\NLHWRZDQH :DUWR FL HW\NLHWRZDQH V X *\ ZDQH GR VNR MDU]HQLD arbitralnej informacji z pojedynczym elementem modelu. {autor = “Jan N owak ´WHUPLQ]DNR F]HQLD ³0D MD´VWDWXV DQDOL]D ` 3U]\NáDG : :DUWR FL HW \NLHWRZDQH V szczeg ó lnie przydatne do przechowywania zar ó wno informacji ]ZL ]DQ \FK ] ]DU] G]DQLHP projektem (jak w SU] \NáDG]LH SRZ \* HM ), jak i do SU]HFKRZ \ZDQLDV]F]H JyáyZ implementacyjnych.
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Ograniczenia VSHF \ILNX M U HV WU\ NF MH QDNáDGDQH QD HOHPHQW \P RG HO X 0 RJ VWDQRZLü Z \UD *HQLD M ]\ ND QDWXUDOQH JR F] \ M ]\ ND IRUPDOQH JR (np. OCL w UML), PR J WH *S U] \M PRZDü SRVWDü IRUPXá \ P DWHPDW \F]QH MO XE I UD JPHQWX NRGX (F] \W H* V zawarte ZHZQ WU] {} i umieszczane za elementem w klasie, lub poza NODV 0R J WH *E \üXPLHV]F]DQH w komentarzu. Pracownik LPL nazwisko pensja {<=10 000}
Pracownik LPL nazwisko pensja {pensja <=10 000} {pensja nie wzrasta o ZL FH MQL * 300}
ograniczenie statyczne ograniczenie dynamiczne
]PLH SHQV M (nowa)
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
Ograniczenia; SU]\NáDG\ Konto
Firma Osoba
{xor}
QDOH*\do0..1 0..1
* *
Symbole, takie jak ---- oraz ----> PR J E \ü X* \ZDQH do wskazywania element ó w, QDNWyUH]RVWDá \QDáR *RQHR JUDQLF]HQLD . Firma
0..11..* pracownikpracodawcaSRGZáDGQ\ szef0..1
* Osoba ograniczenie zapisane w komentarzu
{Osoba.pracodawca = Osoba.szef.pracodawca}WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001
&]\NRU]\VWDü z PHFKDQL]PyZUR]V]HU]DOQR FL ? UML GRVWDUF] \áD NLONX PHFKDQL]PyZ UR]V]HU]DOQR FL , DE \X P R* OLZLü SUR MHNWDQWRP Z SURZDG]DQLH P RG \ILNDF ML EH] NRQLHF]QR FL ]PLDQ \V DP HJ R M ]\ ND modelowania. Tw ó rcy U ML VWDUDOL VL w ten spos ó b ( FKRFLD *E \ w pewnym stopniu) ]DVSRNRLü SRWU]HE \ VSHF \ILF]Q \FK G]LHG]LQ SUREOHPRZ \FK F] \ URGR wi sk programowych. 1DU] G]LD PR J S U]HFKRZ \ZDü ZSURZDG]RQH P RG \ILNDF MH RUD] PDQLSXORZDü QL P LE H] N RQ LH F] QR FL Z QLNDQLD w LFK VHPDQW \N - m odyfikacje z UH JXá \ V przechowywane w SRVWDFLáD FXFKyZ]QDNRZ \FK . 1DU] G]LD P RJ XVWDQRZLü Z áDVQ VNáDGQL i VHPDQW \N G OD R EV áX JL PHFKDQL]PyZUR]V]HU]DOQR FL . 1DOH *\ S DP L WDü *H rozszerzenia VWDQRZL ] G HI LQ LF ML RGVW SVWZR RG standard ó w 80 / L *H Z naturalny spos ó b SURZDG] G R utworzenia pewnego dialektu UML, a to z NROHL P R* H SURZDG]Lü do problem ó w ] SU]HQDV]DOQR FL 7U]HED ]DZV]H GREU]H UR]ZD *\ ü ]\ VNL i straty, kt ó re PR J E \ü SRQLHVLRQH G]L NL korzystaniu z tych mechanizm ó w, szczeg ó lnie wtedy, gdy “stare ” standardowe mechanizmy SUDFX M Z \VWDUF]D M FR dobrze.
WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001