• Nie Znaleziono Wyników

Ewa Stemposz {ewag@ipipan.waw.pl, ewag@pjwstk.waw.pl} Instytut Podstaw Informatyki PAN Polsko- -DSR VND: \* V]D6]NRáD7HFKQLN.RPSXWHURZ \FK

N/A
N/A
Protected

Academic year: 2021

Share "Ewa Stemposz {ewag@ipipan.waw.pl, ewag@pjwstk.waw.pl} Instytut Podstaw Informatyki PAN Polsko- -DSR VND: \* V]D6]NRáD7HFKQLN.RPSXWHURZ \FK"

Copied!
62
0
0

Pełen tekst

(1)

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/

(2)

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

(3)

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´

(4)

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

(5)

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 )

(6)

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:

(7)

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\VWHPX

klient

(8)

WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001

'LDJUDP\SU]\SDGNyZX *\FLD (2)

klient banku

ZSá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.

(9)

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_widoczne

Okno 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:

(10)

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

(11)

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» 3URVWRNW S3XQNWS3XQNW «zapytania» obszar (): Real aspekt(): Real . . . «aktualizacje» SU]HVX GHOWD3XQNW SU]HVNDOXM ZVSyáF]\QQLNReal)

(12)

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

(13)

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 .

(14)

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

(15)

WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001

Dziedziczenie dynamiczne Manager ,Q *\QLHU Sprzedawca

Osoba

{mandatory}SáHü

«

dynamic

»

zawód

Dyskryminator (aspekt specjalizacji) zawód ]RVWDáWXRSDWU]RQ \ stereotypem « dynamic » .

Kobieta 0 * F]\]QD

(16)

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

(17)

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

(18)

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

(19)

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 ...

implementacje

Sekwencja char .

..implementacje

Klasa abstrakcyjna QLHPD QLHPR *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

(20)

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.

(21)

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 ]PLHSHQVM

dependency Firma realization

Osoba {abstract}

LPL nazwisko data ur. policz wiek

IPracownik « interface »

+]PLHSHQVM

(22)

WHPSRV]-]\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.

(23)

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.

(24)

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

(25)

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\ :

(26)

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

(27)

WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001

Atrybuty asocjacji Plik 8 *\WNRZQLN

3UDZRGRVW SX GRVW S

GRVW

SQ\ 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

(28)

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

(29)

WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001

3U]\NáDGRZ\ diagram klas

poprzedza QDVWSXMHBSR

zawiera

zapisany_na prowadzi

Pracownik Student

Osoba Kurs Profesor :\NáDG

1..* * 1..*1..* *

0..1 1

1

(30)

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

(31)

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

C

K

S**

agregacja kompozycja

K

C

K

S*

(32)

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

(33)

WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001

Asocjacja kwalifikowana Katalog Plik

nazwa

1 * {

nazwa pliku jest unikatowa w ramach katalogu }

Katalog Plik

nazwa pliku

0..1

1

3HUVSHNW\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).

(34)

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

A

K1 K2

K3

asocjacja 3-arnaasocjacja 4-arna

(35)

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 .

(36)

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

(37)

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]HQLH

A C

{C-A < 5 sek.}{=D]QDF]:\SR*\F]HQLH- &]\'RVWSQ\< 1 sek.}

(38)

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] yxyyyxyyy

Komunikat, 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.

(39)

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.

(40)

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

(41)

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)

(42)

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] /akcja

bez zmiany stanu

zdarzenie[warunek] /akcja

S 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

(43)

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 \

(44)

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 zd3

zd1zd2

D. Harel, OMT, UML

(45)

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 .

(46)

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:

(47)

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

(48)

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:

(49)

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

(50)

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 \FK IL] \F]Q \FK MHGQRVWHNSRVLDGD M F\ FKFR najmniej SDPL üDF] VWRLPR *OLZR FLREOLF]HQLRZH NRPSRQHQWyZRSUR 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

(51)

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.

(52)

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

(53)

WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001

Diagramy pakiet ó w( 3 )

Edytor Elementy diagramów graficznych Elementy dziedziny ]DVWRVRZD

Sterownik 5G]HJUDILNL 5G]HJUDILNLMotif 5G]HJUDILNLWindows

System okienkowy Motif MSWindows

(54)

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 FL ZLG]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.

(55)

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] \PHWRGD PR *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

(56)

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)

(57)

WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001

Stereotypy; SU]\NáDG\ «

WUZDáD

»

3URVWRNW punkt1: Punkt punkt2: Punkt «konstruktory» 3URVWRNW S3XQNWS3XQNW «zapytania» obszar () : Real aspekt() : Real ... «aktualizacje» SU]HVX GHOWD3XQNW SU]HVNDOXM ZVSyá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» 3URVWRNW S3XQNWS3XQNW «zapytania» obszar () : Real aspekt () : Real ... «» SU]HVX GHOWD3XQNW SU]HVNDOXM ZVSyáF]\QQLNReal)

Jednym stereotypem PR *QD RSDWU] \ü FDá  OLVW  HOHPHQWyZ P RGHOX . .RQLHF OLVW \P R* H E\ ü oznaczony przez «» .

(58)

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.

(59)

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)

(60)

WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001

Ograniczenia; SU]\NáDG\ Konto

Firma Osoba

{xor}

QDOH*\do

0..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..* pracownikpracodawca

SRGZáDGQ\ szef0..1

* Osoba ograniczenie zapisane w komentarzu

{Osoba.pracodawca = Osoba.szef.pracodawca}

(61)

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.

(62)

WHPSRV]-]\NPRGHORZDQLDGDQ\FK80/6ODMGII Seminarium PLOUG, 29 maja 2001

Podsumowanie UML 80/ SRZVWDá Z UH]XOWDFLH SRá F]RQ \FK Z \VLáNyZ WU]HFK ]QDQ \FK P Htodolog ó w: G. Booch ’a, I. Jacobson ’a i J. Rumbaugh ’a, NWyU \FK P HWRG \NL RSDQRZDá \R NR áR   U \QNX ]DVWRVRZD P HW RG \N RELHNWRZ \FK  80/ ]\ VNX MH FRUD] ZL NV]  SRSXODUQR ü MDNR VNáDGRZD QDU] G]L &$6( L SUDZGRSRGREQLH E G]LH GRPLQRZDá SU]H]ZLHOHQD MEOL *V] \FKODWZREV]DU]HDQDOL] \LSUR MHNWRZDQLD SI. 80 / ]J RGQLH ] GHNODUDF M W Z yU Fy Z  Q LH P D DP EL FM L E\ ü PHWRG \N  SUR MHNWRZDQLD -HVW ]HVWDZHP SR M ü R]QDF]H L G LD JUDPyZ NWyU \P RJ E \ü X* \Z DQ HZ G RZ RO QH MP HW RG \FH RSDUW \FK R SRGVWDZRZH SR MFLD RELHNW RZR FL 3R M FLD 80/ Z ] DáR *HQLX WZyUFyZ PD M S U] \NU \ü ZL NV]R ü LVWRWQ ych aspekt ó w modelowanych system ó w. Kwestia semantyki i pragmatyki tej notacji pozostaje mglista, co jest QLHXFKURQQ \P VNXWNLHP VSU]HF]QR FL SRPL G] \Q DW XU S UR FH Vy Z W Z yU czych a ich IRUPDOL]DF M  80 / MHVWVNáDGRZ VWDQGDUGX20* &25%$  1LH ZV] \VF \V ] DF KZ \FHQL 80/ 1 LHNWyU] \V SH FM DOL FL XZD *D M J R za tw ó r QLHVWDELOQ \ ]E \W FL * NL  SU]HUHNODPRZDQ \L  (OH ]GHILQLRZDQ \ 8 ML ma NRQNXUHQWyZZSRVWDFLFDáH JR]HVWDZXLQQ \FKPHWRG \NRELHNWRZ \FK .

Cytaty

Powiązane dokumenty

początkowy Pseudostan służący do oznaczenia punktu startowego końcowy Pseudostan służący do oznaczenia punktu finalnego złożony współbieżny Stan podzielony na dwa lub

Diagramy sekwencji lepiej przedstawiają zależności czasowe, bardziej niż diagramy kolaboracji nadają się do modelowania systemów czasu rzeczywistego i złożonych

Przejście zewnętrzne – zdarzenie powoduje zmianę stanu obiektu ze stanu Stan1 na stan Stan2, o ile jest spełniony warunek oraz przed przejściem obiektu do stanu Stan2. wykonywana

Diagramy przypadków użycia służą do modelowania perspektywy przypadków użycia systemu, a w tym do opisywania otoczenia systemu, podsystemu lub klasy lub określania

Usługi uzupełniające to przeglądanie aktywnych aukcji, przeglądanie historii zawartych transakcji, a także finalizacja transakcji, związana z odnotowaniem zapłaty oraz

przebiegu) Modelowanie czasowej sekwencji wymiany komunikatów podczas współpracy obiektów, pakietów lub komponentów. Diagram komunikacji Modelowanie przepływu komunikatów

Diagram czynności – Główny scenariusz przypadku użycia Złóż zamówienie. Obciąż

• Diagram klas obrazuje pewien zbiór klas, interfejsów i kooperacji oraz związki między nimi.. • Jest to graf złożony z wierzchołków (klas, interfejsów, kooperacji) i