-]\NPRGHORZDQLDGDQ\FK80/ {ewag@ipipan.waw.pl, ewag@pjwstk.waw.pl} Ewa Stemposz. Instytut Podstaw Informatyki PAN



Podobne dokumenty
Rysunek 1: Przykłady graficznej prezentacji klas.

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

MAS dr. Inż. Mariusz Trzaska

MAS dr. Inż. Mariusz Trzaska

Podstawy projektowania systemów komputerowych

TECHNOLOGIE OBIEKTOWE. Wykład 3

Diagramy klas. WYKŁAD Piotr Ciskowski

UML w Visual Studio. Michał Ciećwierz

Projektowanie systemów informacyjnych

Podstawy programowania III WYKŁAD 4

Diagramy klas i obiektów

Podstawy inżynierii oprogramowania

Diagramy klas. dr Jarosław Skaruz

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2

Podstawy języka UML2 w realnych projektach

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Po lewej przykłady klas. Stereotypy zostały tu wykorzystane do metaklasyfikacji metod.

Modelowanie obiektowe

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

UML. dr inż. Marcin Pietroo

INŻYNIERIA OPROGRAMOWANIA. laboratorium

Modelowanie klas i obiektów. Jarosław Kuchta Projektowanie Aplikacji Internetowych

UML cz. I. UML cz. I 1/1

MAS dr. Inż. Mariusz Trzaska

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

Podstawy języka UML UML

UML (Unified Modeling Language jest to sposób formalnego opisu modeli reprezentujących projekty informatyczne.

Diagramy interakcji. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Modelowanie danych, projektowanie systemu informatycznego

Analiza i projektowanie obiektowe 2017/2018. Wykład 3: Model wiedzy dziedzinowej

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

Podstawy języka UML2 w realnych projektach

Unified Modeling Language

Wprowadzenie do UML, przykład użycia kolizja

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram klas. Materiały dla nauczyciela

Spis treúci. 1. Wprowadzenie... 13

MAS dr. Inż. Mariusz Trzaska. Realizacja różnych modeli dziedziczenia w obiektowych językach programowania

MODELOWANIE OBIEKTOWE Z UML

Paweł Kurzawa, Delfina Kongo

MODELOWANIE OBIEKTOWE

Diagram przypadków użycia

Modelowanie. Wykład 1: Wprowadzenie do Modelowania i języka UML. Anna Kulig

Projektowanie logiki aplikacji

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia. Materiały dla nauczyciela

Unified Modeling Language

UML cz. II. UML cz. II 1/38

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

Analiza i projektowanie aplikacji Java

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla nauczyciela

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Diagramy UML, przykład problemu kolizji

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla nauczyciela

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski

Podstawy języka UML UML

Język UML w modelowaniu systemów informatycznych

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta

1 Projektowanie systemu informatycznego

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla studentów

Fazy analizy (modelowania) oraz projektowania FAZA ANALIZY:

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

Świat rzeczywisty i jego model

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

Unified Modeling Language. Referat na seminarium magisterskie Zagadnienia Programowania Obiektowego Dymitr Pszenicyn

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Michał Adamczyk. Język UML

Analiza i projektowanie obiektowe

Podstawy modelowania programów Kod przedmiotu

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

Inżynieria oprogramowania

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Modelowanie danych. Model związków-encji

UML. zastosowanie i projektowanie w języku UML

WPROWADZENIE DO UML-a

UML a kod. C++, Java i C#

Programowanie Obiektowe Język UML

Diagramy przypadków użycia

Programowanie obiektowe

Projektowanie interakcji. Jarosław Kuchta

Język UML w modelowaniu systemów informatycznych

UML - zarys 2007/2008

Spis treúci. Księgarnia PWN: Robert A. Maksimchuk, Eric J. Naiburg - UML dla zwykłych śmiertelników. Wstęp Podziękowania...

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Diagramy przypadków użycia. WYKŁAD Piotr Ciskowski

Modelowanie i analiza systemów informatycznych

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla nauczyciela

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

Podstawy Programowania Obiektowego

Enterprise Architect - narzędzie do modelowania

Diagramy czynności. Widok logiczny. Widok fizyczny

Faza analizy (modelowania) Faza projektowania

Programowanie obiektowe

o partnerstwie publiczno-prywatnym.

Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych. Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska

Transkrypt:

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

Zagadnienia Krótka charakterystyka UML Diagramy przypadków X*\FLD Diagramy klas Diagramy dynamiczne ƒ interakcji ƒ stanu ƒ DNW\ZQRFL Diagramy implementacyjne ƒ diagramy komponentów ƒ GLDJUDP\ZGUR*HQLRZH Diagramy pakietów 0HFKDQL]P\UR]V]HU]DOQRFL Podsumowanie

Unified Modeling Language (UML) ³80/ MHVW M]\NLHP RJyOQHJR SU]H]QDF]HQLD GR VSHF\ILNDFML NRQVWrukcji, ZL]XDOL]DFML L GRNXPHQWRZDQLD Z\WZRUyZ ]ZL]DQ\FK ] V\VWHPDPL LQWHQV\ZQLHZ\NRU]\VWXMF\PLRSURJUDPRZDQLH UML 0.8-0.9 VW\F]H- ZU]HVLH UML 1.0 VW\F]HSU]HVáDQ\GR20* UML 1.1 NRQLHF]DWZLHUG]RQ\MDNRVNáDGQLNVWDQGDUGX20* UML 1.3 NZLHFLHPyZLVLRZHUVMLDOHEUDNGDQ\FK 3RáF]RQHVLá\WU]HFK]QDQ\FKPHWRGRORJyZRSURJUDPRZDQLD Grady Booch Ivar Jacobson James Rumbaugh

Zalety i wady poprzedników UML.D*GD]PHWRG\NSRSU]HGQLNyZ80/SRVLDGDVZRMH]DOHW\LZDdy. OMT (Rumbaugh): dobry do modelowania dziedziny przedmiotowej. Nie SU]\NU\ZDGRVWDWHF]QLHGRNáDGQLH]DUyZQRDVSHNWXX*\WNRZQLNyZV\stemu, jak i aspektu implementacji. OOSE (Jacobson)GREU]HSRGFKRG]LGRNZHVWLLPRGHORZDQLDX*\WNRZQLNyZ L F\NOX *\FLRZHJR V\VWHPX 1LH 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 LPSOHPHQWDFML 1LH SU]\NU\ZD GRVWatecznie GREU]HID]\UR]SR]QDZDQLDLDQDOL]\Z\PDJDX*\WNRZQLNyZ,VWQLHMH ZLHOH DVSHNWyZ V\VWHPyZ NWyUH SR]RVWDá\ZáDFLZLH QLe przykryte przez *DGQH ] Z\*HMZ\PLHQLRQ\FKSRGHMüQSSU]\VWRVRZDQLH QRWDFML do preferencji SURMHNWDQWyZ&HOHP80/E\áRSU]\NU\FLHUyZQLH*W\FKDVSHNWyZ

Nowe elementy wprowadzone w UML -DVQHRGUy*QLHQLHNODV\W\SX i Z\VWSLHQLDNODV\ 8V]F]HJyáRZLHQLD (refinementsgodremfld]zl]nyzsrplg]\ HOHPHQWDPLRWHMVDPHMVHPDQW\FHDUy*Q\PSR]LRPLHDEVWUakcji 2GSRZLHG]LDOQRFL (responsibilities) Kompozycja jako silniejsza forma agregacji Interfejsy i ]DOH*QRFLdependencies) typu: dostawca i klient pewnej LQIRUPDFMLZ\VWSXMFHPLG]\HOHPHQWDPLPRGHOL :VSyáELH*QRü :]RUFHZVSyáSUDFD 'LDJUDP\DNW\ZQRFL (dla UHLQ*\QLHULLprocesów biznesowych) Komponenty Pakiety 0HFKDQL]P\UR]V]HU]DOQRFL: stereotypy (stereotypeszduwrfl etykietowane (tagged values), ograniczenia (constraints)

Diagramy definiowane w UML 'LDJUDP\SU]\SDGNyZX*\FLD Diagramy klas Diagramy dynamiczne: ƒdiagramy interakcji: Œ Diagramy sekwencji Œ 'LDJUDP\ZVSyáSUDF\NRODERUDFML ƒ Diagramy stanów ƒ 'LDJUDP\DNW\ZQRFL Diagramy implementacyjne: ƒ Diagramy komponentów ƒ 'LDJUDP\ZGUR*HQLRZH Diagramy pakietów 'LDJUDP\ WH ]DSHZQLDM X]\VNDQLH ZLHOX SHUVSHNW\Z SURMHNWRZDQego systemu w trakcie jego budowy.

'LDJUDP\SU]\SDGNyZX*\FLD(1) Z\SáDWD SLHQLG]\ klient weryfikacja klienta «include» System REVáXJLNOLHQWD ZQWU]HV\VWHPX 3U]\SDGHN X*\FLD: 3RZLQLHQ PLHü XQLNDOQ QD]Z, RSLVXMF SU]\SDGHN X*\FLD z punktu widzenia jego zasadniczych celów. Czy lepiej jest VWRVRZDü QD]Z RSLVXMF F]\QQRü ( Z\SáDWD SLHQLG]\ ) czy polecenie ( Z\SáDü SLHQLG]H - zdania Vpodzielone. Aktor: 3RZLQLHQPLHü XQLNDOQQD]Z. Interakcja: 3RND]XMHLQWHUDNFMSRPLG]\SU]\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\ PLG]\ dwoma przypadkami X*\FLD lub SU]\SDGNLHPX*\FLD a EORNLHPSRQRZQHJRX*\FLD. Nazwa systemu wraz z otoczeniem systemu: Pokazuje JUDQLFSRPLG]\V\VWHPHP a jego otoczeniem.

'LDJUDP\SU]\SDGNyZX*\FLD (2) ZSáDWD SLHQLG]\ ZSáDWD SLHQLG]\ kasjer klient banku Z\SáDWD SLHQLG]\ VSUDZG( stan konta kasjer klient banku «include» Z\SáDWD SLHQLG]\ VSUDZG( stan konta «extend» «include» uaktualnianie stanu konta ZH( SR*\F]N ]DU]G banku ZH( SR*\F]N ]DU]G banku *áyzqh ]DGDQLH PRGHOX SU]\SDGNyZ X*\FLD to SUDZLGáRZH RNUHOHQLH Z\PDJD funkcjonalnych na projektowany system.

Klasa; oznaczenia (1) Cztery pola: nazwy, atrybutów, metod i czwarte pole, którego zawduwrü ]DOH*\RGX*\WNRZQLNDnpPR*HWRE\üOLVWDRGSRZLHG]LDOQRFLGDQHMNODV\ 0R*OLZHVUy*QHSR]LRP\V]F]HJyáRZRFL Okno Okno rozmiar czy_widoczne Pole nazwy klasy: stereotyp nazwa_ klasy lista_wart_etyk Okno rozmiar czy_widoczne Z\ZLHWO schowaj() Okno rozmiar: Obszar czy_widoczne: Boolean Z\ZLHWO schowaj() Pole atrybutów: VWHUHRW\SGRVWSQRüQD]ZD_atrybutu : typ ZDUWBSRF]WNRZDlista_wart_etyk Pole metod: VWHUHRW\SGRVWSQRüQD]ZD_metody (lista_arg) : typ_wart_zwracanej lista_wart_etykt

Klasa; oznaczenia (2) gdzie: GRVWSQRü jest RNUHODQD przez trzy symbole: + publiczna - prywatna # chroniona lista_arg: rodzaj nazwa_arg : typ ZDUWBSRF]WNRZD rodzaj definiuje sposób, w jaki metoda korzysta z danego argumentu: in: PHWRGDPR*HF]\WDüargument, ale QLHPR*Hgo ]PLHQLDü out: PR*H]PLHQLDü, QLHPR*HF]\WDü inout: PR*HF]\WDüi ]PLHQLDü Wszystkie elementy specyfikacji klasy za Z\MWNLHPnazwy klasy V opcjonalne. Nazwa klasy to z UHJXá\U]HF]RZQLNw liczbie pojedynczej.

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]\QQLN Real)...

Dziedziczenie Dziedziczenie pozwala na tworzenie drzewa klas lub LQQ\FKVWUXNWXUEH]SWOL Dziedziczenie jednoaspektowe specjalizacja generalizacja Osoba Pracownik Osoba Pracownik Asystent Adiunkt Docent Profesor Asystent Adiunkt Docent Profesor

Dziedziczenie wieloaspektowe {overlapping} QDSG Pojazd teren teren Dwa aspekty dziedziczenia: QDSG i teren. {overlapping} Pojazd wiatrowy Pojazd silnikowy Pojazd OGRZ\ Pojazd wodny {disjoint, incomplete} Drzewo gatunek drzewa 'E Brzoza Sosna disjont (GRP\OQH) - SRG]LDáUR]áF]Q\ overlapping - SRG]LDá QLHUR]áF]Q\SU]HFLFLH zbiorów obiektów klas, np. Pojazd OGRZ\i Pojazd wodny, nie jest zbiorem pustym; complete (GRP\OQH) - SRG]LDáFDáNRZLW\ incomplete -niektóre klasy, np. nieistotne dla UR]ZD*DQHJRSUREOHPX, ]RVWDá\SRPLQLWH

Dziedziczenie wielokrotne Dziedziczenie wielokrotne (wielodziedziczenie) ma miejsce, gdy klasa G]LHG]LF]\LQZDULDQW\]ZLFHMQL*MHGQHMEH]SRUHGQLHMQDGNODV\. Osoba Nazwisko Pracownik Zarobek Student Nr_indeksu 3UDFXMF\B student

Dziedziczenie dynamiczne SáHü «dynamic» {mandatory} zawód Osoba Kobieta Manager,Q*\QLHU 0*F]\]QD Sprzedawca Dyskryminator (aspekt specjalizacji) zawód ]RVWDáWXRSDWU]RQ\ stereotypem «dynamic».

Klasa parametryzowana Klasy parametryzowane V X*\WHF]QH z dwóch zasadniczych powodówsrgqrv] poziom abstrakcji LZSá\ZDMQD]PQLHMV]HQLHGáXJRFLNRGX(UyGáRZHJRSURJUDPX..ODVDSDUDPHWU\]RZDQDPR*HE\üZVWDZLDQDdo diagramów UML na dwa sposoby: Zbiór <Pracownik> szablon Zbiór wstaw (T) XVX(T) T «bind» <Pracownik> Aktualny parametr parametryzacji Zbiór Pracowników Podstawowe zastosowanie klas parametryzowanych polega na wykorzystaniu ich do definiowania zbiorów (szerzej - kolekcji)..d*g\ RELHNW NODV\ Zbiór <Pracownik>, czy analogicznie ZbiórPracowników, jest zbiorem.

Rozszerzenia i ograniczenia w podklasie ƒ 3RGNODVDQLHPR*HRPLMDüOXE]PLHQLDüDWU\EXWyZQDGNODV\ ƒ 3RGNODVDPR*H]PLHQLüFLDáRPHWRG\]QDGNODV\DOHEH]]PLDQy jej specyfikacji. ƒ 3RGNODVDPR*HGRZROQLHGRGDZDüQRZHDWU\EXW\LPHWRG\UR]V]HU]Dü]ELyU ZáDVQRFLQDGNODV\ ƒ 3RGNODVDPR*HRJUDQLF]DüZDUWRFLDWU\EXWyZ Np..RáR MHVWSRGNODVNODV\ ElipsaJG]LHRELHUHGQLFHHOLSV\VVRELHUyZQH2JUDQLF]HQLDPRJ VSRZRGRZDü*HF]üPHWRGSU]HVWDQLHE\üSRSUDZQD Np. zmiana jednej ze UHGQLFRELHNWX- dozwolona dla obiektu klasy Elipsa - jest niedopuszczalna w obiekcie podklasy.rárjg\*pxv]wdpe\ü]plhqldqhrelhuhgqlfh MHGQRF]HQLH

:\VWSLHQLHklasy 3RMFLH Z\VWSLHQLHklasy (instancja klasy) oznacza obiekt, który jest ³SRGáF]RQ\ GRdanej klasy, jest MHMF]áRQNLHP. :\VWSLHQLDPRJE\ü: EH]SRUHGQLH i SRUHGQLH. Obiekt MHVWZ\VWSLHQLHPEH]SRUHGQLPVZRMHMNODV\LZ\VWSLHQLHP SRUHGQLPZV]\VWNLFKMHMQDGNODV. 0R*OLZHR]QDF]HQLDQDZ\VWSLHQLHklasy nazwa_obiektu : nazwa_klasy nazwa_atrybutu = wart_atrybutu... : nazwa_klasy nazwa_atrybutu = wart_atrybutu... nazwa_obiektu : nazwa_klasy : nazwa_klasy

Klasa abstrakcyjna a klasa konkretna Klasa abstrakcyjna QLHPDQLHPR*HPLHüEH]SRUHGQLFKZ\VWSLHLVáX*\ Z\áF]QLHMDNRQDGNODVDGODLQQ\FKNODV6WDQRZLMDNE\ZVSyOQ F]ü definicji grupy klas o podobnej semantyce. Klasa konkretna PR*HPLHüPDSUDZRPLHüZ\VWSLHQLDEH]SRUHGQLH Klasyczne klasyfikacje w ELRORJLL W\ONR OLFLH Z GU]HZLH NODV PRJ E\ü klasami konkretnymi. Osoba prawna Sekwencja pierwszy QDVWSQ\ Osoba fizyczna Firma Sekwencja int Sekwencja char... implementacje...implementacje

Metoda abstrakcyjna Metoda abstrakcyjna jest to metoda wyspecyfikowana w nadklasie, której LPSOHPHQWDFMDPXVL]QDOH(üVLZNWyUHM]SRGNODV Pracownik {abstract} MX*]DURELáZW\PURNX REOLF]Z\SáDW^abstract} Pracownik godzinowy stawka godzinowa VWDZNDZLWHF]QD REOLF]Z\SáDW Pracownik etatowy zarobek tygodniowy REOLF]Z\SáDW Pracownik na zlecenie ]DUREHNPLHVLF]Q\ REOLF]Z\SáDW Klasa abstrakcyjna PR*H ]DZLHUDüDEVWUDNF\MQHPHWRG\, ale nie musi. Klasa konkretna musi ]DZLHUDüLPSOHPHQWDFMHW\FKPHWRGDEVWUDNF\MQ\FK, które nie ]RVWDá\]DLPSOHPHQWRZDQH w *DGQHMz nadklas danej klasy konkretnej.

Interfejs, realizacja, ]DOH*QRü (1) Osoba {abstract} LPL nazwisko data ur. policz wiek «interface» IPracownik + ]PLHSHQVM dependency Firma Pracownik pensja stanowisko ]PLHSHQVM realization Stereotyp «interface» SRSU]HG]DQD]ZNODV\, 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 notacji podobnej do dziedziczenia. =DOH*QRü (dependency) RSLVXMHUHODFMW\SXNOLHQW-dostawca pewnej informacji.

Interfejs, ]DOH*QRü (2) 'ODSRSU]HGQLHJRGLDJUDPXPR*QD]DVWRVRZDüLQQH, EDUG]LHM]ZL]áH oznaczenie. IPracownik Firma Pracownik Osoba Klasa abstrakcyjna i interfejs ]RVWDá\ WX potraktowane w podobny sposób -jakodefinicje interfejsów do klasy Pracownik. -HGQDN*H, istnieje PLG]\QLPLSHZQD Uy*QLFD: klasa abstrakcyjna, w SU]HFLZLHVWZLH do interfejsu, PR*H ]DZLHUDü atrybuty i implementacje metod.

Ekstensja klasy Ekstensja klasy (class extent) = aktualny (zmienny w czasie) zbiór ZV]\VWNLFKZ\VWSLHWHMNODV\Ekstensja klasy w implementacji oznacza VSHFMDOQ VWUXNWXU GDQ\FK, konkretny byt programistyczny GRáF]RQ\ GR klasy. Ta struktura przechowuje wszystkie obiekty EGFH F]áRQNDPL GDQHM klasy. 1LHNWyUHPHWRG\Z\VSHF\ILNRZDQHZGDQHMNODVLHRGQRV]VLGRMHj Z\VWSLH: pracownik.wiek pracownik.zwolnij KONTO.Oblicz_procent 1LHNWyUHPHWRG\Z\VSHF\ILNRZDQHZGDQHMNODVLHRGQRV]VLGRMHj ekstensji: KL_pracownik.nowy KL_pracownik.zlicz KL_KONTO.2EOLF]BVXP.ODVDPR*HPLHüQLHMHGQlecz wiele ekstensji.

3RZL]DQLHDasocjacja (binarne) 3RZL]DQLH binarne Fizyczny lub SRMFLRZ\ ]ZL]HN PLG]\ GZRPDRELHNWDPL, RGZ]RURZ\ZXMF\ ]ZL]HN LVWQLHMF\ PLG]\ RGSRZLHGQLPL bytami w analizowanej dziedzinie przedmiotowej. Asocjacja binarna Grupa SRZL]DSRVLDGDMF\FK ZVSyOQVWUXNWXU LVHPDQW\N 3RZL]DQLH jest Z\VWSLHQLHPasocjacji. Osoba LPL Firma rodzaj pracuje_w :Osoba Kasia pracuje_w pracuje_w :Firma Krawiecka :Osoba Ewa :Osoba Jasio :Firma Szewska pracuje_w Klasy i asocjacja na diagramie klas 2ELHNW\LSRZL]DQLD na diagramie obiektów

/LF]QRüDVRFMDFML /LF]QRüMHVWR]QDF]DQDQDREXNRFDFKDVRFMDFML 3U]\NáDG\: 1 1..* 2..* 3-5 2,4,18 0..1 0..* * znaczenie 1 1, 2, 3,... 2, 3, 4,... 3, 4, 5 2, 4, 18 1,? 0, 1 0, 1, 2,... 0, 1, 2,... 3DVWZR Stolica Firma 1 * Pracownik 0..* 0..1 Osoba Adres 2]QDF]DüF]\QLHR]QDF]DüOLF]QRü1?

Asocjacje skierowane Zamówienie GDWD=áR*HQLD F]\=DSáDFRQH VXPD'R=DSáDW\ realizuj() zamknij() 1 * PozycjaZamówienia * 1 Klient nazwisko adres ZLDU\JRGQRü 1DGLDJUDPDFK80/PR*QD]D]QDF]DüNLHUXQHN QDZLJDFML Z]GáX* GDQHM DVRFMDFML : WDNLP przypadku asocjacja jest rysowana w postaci VWU]DáNL QDZLJDFMDMHVW PR*OLZD ]JRGQLH ] MHM kierunkiem, ale nie odwrotnie. LORü cena czyzrealizowana * 1 Produkt

Atrybuty asocjacji GRVWSQ\ dla Plik * 3UDZRGRVWSX GRVWS * 8*\WNRZQLN { GRVWSR]QDF]D czytanie lub czytanie-pisanie} Osoba nazwisko szef pesel kieruje 0..1 adres * pracownik 1..* zatrudnia 0..1 Zatrudnienie zarobek stanowisko Firma nazwa adres -HOL NODVD DVRFMDFML QLH ]DZLHUD metod ani asocjacji do innych klas, to MHMQD]ZDPR*H E\ü RSXV]F]RQD GOD SRGNUHOHQLD IDNWX *H chodzi tu Z\áF]QLHRatrybuty asocjacji. 2FHQDZ\GDMQRFL ocena

Atrybuty i asocjacje pochodne &HFKD SRFKRGQD MHVW ]GHILQLRZDQD SRSU]H] IXQNFM G]LDáDMFQDjednym lub ZLFHM E\WDFK PRGHOX NWyUH WH* PRJ E\ü SRFKRGQH &HFKD SRFKRdna R]QDF]DQDMHVWXNRQLNLHP Osoba atrybut pochodny: /wiek data_urodzenia /wiek ^ZLHN GDWDBELH*FD- data_urodzenia} zatrudnia :\G]LDá * Sekcja * Pracownik * * zlokalizowana_w /pracuje_w Budynek asocjacja pochodna: /pracuje_w Asocjacja pracuje_w jest DVRFMDFMSRFKRGQNWyUPR*QDZ\]QDF]\üSRSU]H] asocjacje zatrudnia i zlokalizowana_w $VRFMDFM SRFKRGQ PR*QD R]QDF]\ü SRSU]HG]DMFXNRQLNLHPQD]ZOXEURODVRFMDFML

3U]\NáDGRZ\diagram klas Osoba poprzedza zapisany_na 1..* Student 0..1 Kurs * 1 zawiera QDVWSXMHBSR Pracownik Profesor prowadzi 1 1..* 1..* :\NáDG *

Agregacja $JUHJDFMDMHVW V]F]HJyOQ\P SU]\SDGNLHP DVRFMDFML Z\UD*DMF\P]ZL]HN F]ü-FDáRü NpVLOQLNMHVWF]FLVDPRFKRGX Nie istnieje jednak powszechnie akceptowana definicja agregacji. P. Coad SRGDMH SU]\NáDG DJUHJDFML MDNR ]ZL]HN SRPLG]\ RUJDQL]DFM L MHj pracownikami; dla odmiany J. Rumbaugh WZLHUG]L*HILUPDQLHMHVWDJUHJDFMMHM pracowników. : ZLHOX SU]\SDGNDFK ]ZL]NL DJUHJDFML V RF]\ZLVWH -HGQDN*H ZWSOLZRFL SRZVWDM QDZHW Z SU]\SDGNX VDPRFKRGX L VLOQLND ER np VLOQLN PR*H E\ü WRZDUHP Z VNOHSLH QLH ]ZL]DQ\P ] *DGQ\P VDPRFKRGHP 0WOLN GRRNRáD SRMFLD DJUHJDFML Z\QLND UyZQLH* ]WHJR *H MHVW RQD QDGX*\ZDQD w celu XVSUDZLHGOLZLHQLDSHZQ\FKRJUDQLF]HPRGHOXRELHNWRZHJR NpSRSXODUQHZ\MDQLHQLHSRZRGyZEUDNXnp. dziedziczenia wielokrotnego WR*HPR*QDMHÄREHMüSU]H]DJUHJDFM FRMHVWQRQVHQVHP]SXnktu widzenia FHOyZPRGHORZDQLDSRMFLRZHJRWDNVDPRMDN]GDQLHÄDVRFMDFMHV]EGQHER PR*QDMHREHMüSU]H]DWU\EXW\ Wszysto PR*QDREHMüZ assemblerze!

.RPSR]\FMDMDNRPRFQDSRVWDüDJUHJDFML 3RMFLHDJUHJDFMLMHVWUR]XPLDQHQDGZDVSRVRE\ ƒ-dnr]zl]hnf]ü-fdárüsrplg]\relhnwdplzldwdu]hf]\zlvwhjr np. VLOQLNMHVWF]FLVDPRFKRGX ƒ-dnrsrprfqlf]\urghngrprghorzdqldgrzroqhmlqqhmv\wxdfmlniedy WU]HEDZ\G]LHOLüpodobiekty w pewnych obiektach. np. informacja o XEH]SLHF]HQLDFKZHZQWU]RELHNWyZSUDFRZQLNyZ :80/WHGZLHV\WXDFMH ]RVWDá\ UR]G]LHORQH 3LHUZV] IRUP QD]wano NRPSR]\FM.RPSR]\FMDR]QDF]D*HF\NO*\FLRZ\VNáDGRZHM]DZLHUDVLZ F\NOX*\FLRZ\PFDáRFLRUD]*HVNáDGRZDQLHPR*HE\üZVSyáG]LHlona. * K * C K S * K C K S agregacja kompozycja

Agregacja a kompozycja; SU]\NáDG {ordered} 3..* Punkt Wielobok 0..1 0..1 2NUJ SURPLH * * Styl kolor F]\:\SHáQLRQ\ W przedstawionym UR]ZL]DQLX punkt na SáDV]F]\(QLH, w którym SU]HFLQDMVLRNUJLwielobok, jest odwzorowywany w dwa (?) obiekty klasy Punkt.

Asocjacja kwalifikowana Katalog 1 * Plik nazwa { nazwa pliku jest unikatowa w ramach katalogu } 1 0..1 Katalog nazwa pliku Plik 3HUVSHNW\ZDSRMFLRZD- plik jes t w ramach katalogu jednoznacznie LGHQW\ILNRZDQ\SU]H]QD]Z. Perspektywa projektowa - wskazanie na WR*HNDWDORJSOLNyZPR*QD ]RUJDQL]RZDüMDNRWDEOLFDVRFMDF\MQlub VáRZQLN(przeeszukiwanie za SRPRFnazwy pliku).

Asocjacja n-arna Asocjacja n-arna to asocjacja, której Z\VWSLHQLDáF]n obiektówegf\fk instancjami co QDMZ\*HMn klas. Dana NODVD PR*H SRMDZLü VLQDZLFHMQL* jednej pozycji w asocjacji. Asocjacja binarna ze VZRMXSURV]F]RQQRWDFMLpewnymi dodatkowymi ZáDVQRFLDPL(WDNLPLMDNPR*OLZRüXVWDODQLDNLHUXQNXQDZLJRZDQLD, kwalifikatorów]zl]nyzagregacji czy kompozycji) jest specjalnym rodzajem asocjacji n-arnej (dla n=2). asocjacja 3-arna asocjacja 4-arna K1 K3 K1 A K3 K2 K2

Diagramy interakcji Diagramy interakcji (ZVSyáSUDF\ i sekwencji) MDNR JáyZQH ]DGDQLH PDM ZVSRPR*HQLH SURMHNWDQWD w procesie konstruowania modelu obiektowego (diagramu klas). Pomoc polega na analizie zachowania systemu w trakcie realizacji MHJR]DGD i LGHQW\ILNRZDQLXQRZ\FKF]\WH*NRUHNFLHMX* LVWQLHMF\FKelementów modelu, np.: klas, LFKDWU\EXWyZF]\PHWRGRUD]DVRFMDFMLPLG]\NODVDPL. Oba rodzaje diagramów SU]HGVWDZLDM bardzo SRGREQ LQIRUPDFM, w nieco inny sposób. 'LDJUDP\ ZVSyáSUDF\ VWDQRZLFH Z pewnym sensie Z\VWSLHQLD fragmentu diagramu klas, lepiej SU]HGVWDZLDM]ZL]NL PLG]\ RELHNWDPL ELRUF\PL XG]LDá w UHDOL]DFMLGDQHJRSU]\SDGNXX*\FLD. àdwzlhmwh*pr*qd WXRGZ]RURZDüHIHNW\ RGG]LDá\ZDQLDQDSRMHG\QF]\RELHNW. Diagramy sekwencji lepiej SU]HGVWDZLDM ]DOH*QRFL F]DVRZH, EDUG]LHM QL* diagramy kolaboracji QDGDMVL do modelowania systemów czasu rzeczywistego i ]ár*rq\fkvfhqdulxv]\. Diagramy sekwencji GRVWDUF]DMURGNyZdo modelowania przetwarzania ZVSyáELH*QHJR.

,QWHUDNFMDQDGLDJUDPDFKZVSyáSUDF\ :Personel bibl. 3R*\F] (W\WXá) :Egzemplarz.VL*NL 2.1: [b] =D]QDF]:\SR*\F]HQLH :&]árqhn bibl. 2: [a] b:= &]\'RVWSQ\.VL*ND specyfikacja warunku 1: a:= &]\0R*QD3R*\F]\ü Komunikaty PRJ E\üQXPHURZDQH, albo kolejnymi liczbami naturalnymi, albo VWRVXMFQXPHUDFM ]DJQLH*G*RQ1XPHUDFMD]DJQLH*G*RQDR]QDF]D: MHOLRELHNW O otrzyma komunikat o numerze np. 7.3 to ten QXPHUEG]LH GRáF]DQ\jako prefix do ND*GHJRNRPXQLNDWXZ\V\áDQHJRw trakcie realizacji komunikatu 7.3 przez O.

Interakcja na diagramach sekwencji :Personel bibl. :&]árqhn bibl..vl*nd :Egzemplarz.VL*NL A 3R*\F] (W\WXá) 1: a := &]\0R*QD3R*\F]\ü {C-A < 5 sek.} { =D]QDF]:\SR*\F]HQLH - &]\'RVWSQ\ < 1 sek.} 2: [a] b := &]\'RVWSQ\ 2.1: [b] =D]QDF]:\SR*\F]HQLH C Dwa sposoby opisywania czasu: R]QDF]DQLH VNDOL F]DVRZHM OXE QDNáDGDQLH RJUDQLF]HQDXSá\ZF]DVX.

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 ]DFKRZDZDUXQNRZ\FK, jak i iteracji. :K1 :K2 :K3 xyyyxyyy 3.1: *[i := 1..2] x 3.1.1: *[j := 1..3] y Komunikat, który ma E\üZ\VáDQ\ZLHOHUD]\, PXVLE\üSRSU]HG]RQ\V\PEROHP *. 2F]\ZLFLHPXVLE\üWH*Z\VSHF\ILNRZDQ\ZDUXQHNRNUHODMF\]DNRF]HQLH iteracji.

2]QDF]DQLHZVSyáELH*QRFL Rodzaj interakcji Symbol Znaczenie synchroniczna powrót Normalna proceduralna sytuacja. Nadawca ]DZLHV]D G]LDáDQLH, dopóki odbiorca nie SU]HND*H VWHURZDQLD, co PR*QD R]QDF]\ü Z\NRU]\VWXMFV\PERO powrotu. Powrót nie jest komunikatem. Oznacza ]DNRF]HQLHNRPXQLNDWX i przekazanie sterowania do nadawcy. SáDVND (flat) Nadawca komunikatu przekazuje sterowanie do odbiorcy NRF]F MHGQRF]HQLH ZáDVQ G]LDáDOQRü. asynchroniczna Nadawca komunikatu odbiorcy nie oczekuje na RGSRZLHG(RGELRUF\, ale WH*inieNRF]\ ZáDVQHMDNW\ZQRFL, co oznacza*hnadal przetwarza i PR*HZ\V\áDü komunikaty.

Diagramy stanu (1) Maszyna stanu jest grafem skierowanym,, NWyUHJR ZLHU]FKRáNL VWDQRZL stany obiektu, a áxnl RSLVXM SU]HMFLD PLG]\ VWDQDPL. 3U]HMFLH PLG]\ VWDQDPL jest RGSRZLHG]L na zdarzenie. Zwykle, maszyna stanu jest przypisana do klasy VWDQRZLF PRGHO KLVWRULL *\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]FLHMZ\NRU]\VWXMHVLLQQHURGNL, np. GLDJUDP\DNW\ZQRFL. Stan obiektu PR*HE\üFKDUDNWHU\]RZDQ\QDNLONDVSRVREyZ: jako okres czasu, wktórym obiekt oczekuje na zdarzenie albo jako okres czasu, w którym obiekt SU]HWZDU]DDOERMDNR]ELyUZDUWRFLRELHNWX (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ü- operacjanwyupr*qdsu]huzdü, OLVWDDNW\ZQRFL - podobnie, jak lista akcji, entry, do, exit - VáRZDNOXF]RZHdo specyfikowania operacji wykonywanych na ZHMFLX, w trakcie i QDZ\MFLX]HVWDQX

Diagramy stanu (2) Typ zdarzenia Opis 6NáDGQLD ZRáDQLH otrzymanie przez obiekt synchronicznego *GDQLDwykonania operacji - najbardziej podstawowy rodzaj zdarzenia op (a : T) zmiana zdarzenie typu zmiana jest X*\WHF]QHQS. do modelowania sytuacji, gdy obiekt zmienia stan po otrzymaniu odpowiedzi na Z\VáDQ\SU]H]VLHELHNRPXQLNDW when(z\ud*hqlh) V\JQDá otrzymania przez obiekt asynchronicznego *GDQLDwykonania operacji; X*\WHF]QHdo PRGHORZDQLD]GDU]HSU]\FKRG]F\FK ]]HZQWU]systemu nazwa_syg (a : T) czas XSá\QLFLHF]DVXRNUHORQHJRw sposób EH]Z]JOGQ\OXEZ]JOGQ\, np. after (5 sec.) after (czas)

Diagramy stanu (3) SU]HMFLH]HZQWU]QH (external transition) zdarzenie [warunek] /akcja S 1 S 2 SU]HMFLHZHZQWU]QH (internal transition) zdarzenie [warunek] /akcja bez zmiany stanu samo-su]hmflh (selftransition) S zdarzenie [warunek] /akcja SU]HMFLHDXWRPDW\F]QH (completion transition) [warunek] /akcja S1 S2 ZV]\VWNLH RSHUDFMH Z\VSHF\ILNRZDQH SR VáRZDFK kluczowych entry, exit i do ]RVWDá\XNRF]RQH

Diagramy stanu (4) Diagram typu: F\NO*\FLDRELHNWX 8U]G]HQLH niesprzedane kupno XU]G]HQLDprzez klienta 8U]G]HQLH sprzedane NOLHQW]ZUyFLáXU]G]HQLH after (data gwarancji) Diagram typu: SU]HSá\ZVWHURZDQLD VWDQNRFRZ\ stan SRF]WNRZ\ ruch czarnych Kolejka ELDá\FK UXFKELDá\FK when (szach mat) when (pat) when (pat) czarne Z\JU\ZDM remis Kolejka czarnych when (szach mat) ELDáH Z\JU\ZDM

Diagramy stanu (5) Stan prosty nie posiada substruktury, jest specyfikowany przez zbiór operacji oraz SU]HMü. Stan ]ár*rq\, SRZVWDá\ w HIHNFLH ]DJQLH*G*DQLD VWDQyZ, PR*H E\ü zdekomponowany na stany bardziej proste, a dekompozycja jest tu rodzajem specjalizacji..d*g\ z SRGVWDQyZ G]LHG]LF]\SU]HMFLD nadstanu. Tylko jeden z SRGVWDQyZPR*HE\üDNW\ZQ\w danym momencie. zd1 zd2 zd2 S S zd1 zd4 S1 S1 S2 zd5 zd3 S3 zd4 zd5 S2 s3 zd4 zd4 ZF]HQLHMV]HSUDFH5XPEDXJKD zd3 D. Harel, OMT, UML

'LDJUDP\DNW\ZQRFL(1) *UDIDNW\ZQRFL to maszyna stanu, której podstawowym zadaniem nie jest analiza stanów obiektu, ale modelowanie przetwarzania (SU]HSá\ZyZ operacji). 6WDQ\ JUDIX DNW\ZQRFL, zwane DNW\ZQRFLDPL RGSRZLDGDM stanom Z\Uy*QLDOQ\Pw trakcie przetwarzania, a nie stanom obiektu. $NW\ZQRüPR*H E\ü LQWHUSUHWRZDQD Uy*QLH, w ]DOH*QRFL RG SHUVSHNW\Z\: jako zadanie do wykonania i to ]DUyZQRSU]H]F]áRZLHND, jak i przez komputer (z perspektywy SRMFLRZHM) F]\WH*QS. jako pojedyncza metoda (z perspektywy projektowej). Podobnie, SU]HMFLD PLG]\ VWDQDPL UDF]HM QLH V tu ]ZL]DQH ] QDGHMFLHP zdarzenia, ale z ]DNRF]HQLHP SU]HWZDU]DQLD Z\VSHF\ILNRZDQHJR GOD GDQHJR stanu. 'ODVNRPSOHWRZDQLDSURMHNWXND*GDDNW\ZQRüSRZLQQDE\üUR]SLVDna na szereg operacji, z których ND*G WU]HED EG]LH QD Sy(QLHMV]\P HWDSLH SU]\G]LHOLü do odpowiedniej klasy. 'LDJUDP\ DNW\ZQRFL V V]F]HJyOQLH X*\WHF]QH SU]\ PRGHORZDQLX SU]HSá\ZyZ RSHUDFML F]\ WH* w RSLVLH ]DFKRZD ] SU]HZDJ SU]HWZDU]DQLDZVSyáELH*QHJR.

'LDJUDP\DNW\ZQRFL (2) Oznaczenia: nazwa DNW\ZQRFL DNW\ZQRü SU]HMFLH, z zasady nie opisywane; PR*H E\ü RSDWU]RQH warunkiem, PR*H WH*E\ü R]QDF]RQH V\PEROHP LWHUDFML; akcje RSLVXMFH SU]HMFLD SRZLQQ\E\ü UDF]HM GRáF]RQH GR NWyUHM z DNW\ZQRFL; romb, NWyU\PR*HUR]G]LHODüMHGQRSU]HMFLHQDNLONDLQQ\FK (opatrzonych warunkami) lub áf]\ünlonddowhuqdw\zq\fksu]hmü w jedno sztabka synchronizujaca (synchronization bar); PR*H E\ü typu fork (rozdzielenie jednej operacji na kilka SU]HELHJDMF\FKrównolegle) lub typu join (synchronizacja NLONXRSHUDFMLUyZQROHJá\FKZMHGQ DNW\ZQRüSRF]WNRZD DNW\ZQRüNRFRZD

'LDJUDP\DNW\ZQRFL (3) Klient ']LDá6SU]HGD*\ Magazyn Wystaw zamówienie 3áDü :Zamówienie {Z\VáDQH} 3DPLWDM, co i NLHG\Z\VáDQR :Zamówienie {umieszczone} Pobierz zamówienie :Zamówienie {skompletowane} :\OLM to, co zamówiono :Zamówienie {wprowadzone} Skompletuj zamówienie

Diagramy implementacyjne 'LDJUDP\ LPSOHPHQWDF\MQH SRND]XM QLHNWyUH DVSHNW\ LPSOHPHQWDFML SI, ZáF]DMFZWRVWUXNWXUNRGX(UyGáRZHJRRUD]VWUXNWXUNRGXF]Dsu wykonania (run-time.rqvwuxrzdqlhwdnlfkgldjudpyzmhvwx*\whf]qh]duyzqr]hz]jogx QD SRQRZQH X*\FLH MDN L ]H Z]JOGX QD PR*OLZRü RVLJDQLD ] LFK SRPRF RGSRZLHGQLFKSDUDPHWUyZZ\GDMQRFLRZ\FK UML wprowadza dwa rodzaje takich diagramów: ƒ Diagramy komponentów SRND]XMFH]DUyZQRLPSOHPHQWDFM HOHPHQWyZ projektu (npnodvsu]h]nrpsrqhqw\mdnllqwhuihmv\rud]]doh*qrflplgzy NRPSRQHQWDPLLQQ\PLVáRZ\SRND]XMFHVWUXNWXUNRGXNRQVWUXRwanego SI. ƒ 'LDJUDP\ ZGUR*HQLRZH SRND]XMFH NRQILJXUDFM V\VWHPX F]DVX wykonania, czyli rozmieszczenie komponentów i obiektów na REOLF]HQLRZ\FK ]DVREDFK F]DVX Z\NRQDQLD ]ZDQ\FKWXZ]áDPL Taka NRQILJXUDFMDPR*HE\ü]DUyZQRVWDW\F]QDMDNLG\QDPLF]QD- i komponenty LRELHNW\PRJPLJURZDüPLG]\Z]áDPLZF]DVLHZ\NRQDQLD

Diagramy komponentów Komponent MHVW MHGQRVWN LPSOHPHQWDFML ] GREU]H ]GHILQLRZDQ\P LQWHUIHMVHP, GREU]HZ\L]RORZDQ\]NRQWHNVWXQDGDMF\VLGRZLHORNURWQHJRwykorzystania. Program do harmonogramów rezerwacje Diagram komponentów jest przedstawiany jako graf, gdzie Z]áDPL V NRPSRQHQW\ ]D ]DOH*QRFLSURZDG]RGNOLHQWD pewnej dostawcy. informacji do jej Program SODQXMF\ aktualizacje Interfejs graficzny

'LDJUDP\ZGUR*HQLRZH 'LDJUDP\ZGUR*HQLRZHSRND]XMNRQILJXUDFMHOHPHQWyZF]DVXZ\Nonania: NRPSRQHQWyZVSU]WRZ\FKIL]\F]Q\FKMHGQRVWHNSRVLDGDMF\FKFRnajmniej SDPLüDF]VWRLPR*OLZRFLREOLF]HQLRZHNRPSRQHQWyZRSURJramowania RUD]]ZL]DQ\FK]QLPLRELHNWyZ 'LDJUDPZGUR*HQLRZ\MHVWJUDIHPJG]LHZLHU]FKRáNL]ZDQHZ]áDPLSRáF]RQH V SU]H] OLQLH RGZ]RURZ\ZXMFH SRáF]HQLD NRPXQLNDF\MQH NRPSRQHQWyZ VSU]WRZ\FK :]á\ SRGREQLH MDN SRáF]HQLD NRPXQLNDF\MQH PRJ E\ü opatrzone stereotypami, np &38ª SDPLüª XU]G]HQLH MDNLHª :]á\ SU]HFKRZXMZ\VWSLHQLDRELHNWyZLNRPSRQHQWyZ SRáF]HQLHkomunikacyjne AdminServer:KomputerHost KomputerJacka:PC :Program do harmonogramów rezerwacje :Program SODQXMF\

Diagramy pakietów (1) Pakiety VWDQRZL zgrupowanie elementów modelu 6 URGNLHP RJyOQHJR 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 PR*H WH* ]DZLHUDü LQQH SDNLHW\ (]DJQLH*G*DQLH). 6pakiety specjalnego rodzaju: fasada (facade), model, podsystem, system. 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]FRXáDWZLü]DU]G]DQLH procesem konstrukcji produktu programistycznego.

Diagramy pakietów (2) =ár*rqdnroderudfmd :\Uy*QLDQLHVXENRODERUDFML Zamiana subkolaboracji na pakiet Ukrywanie detali, jest X*\WHF]QH, MDN ND*GD DEVWUDNFMD. 7HPX FHORZL PR*H QS. VáX*\üZ\RGUEQLHQLHVXENRODERUDFML, a QDVWSQLH]DPLDQDMHMQDSDNLHW. Pakiet nie SRVLDGDZáDVQHJRLQWHUIHMVX, w tym sensie*h SU]HVáDQLHNRPXQLNDWXdo pakietu, R]QDF]DSU]HVáDQLHNRPXQLNDWX do obiektu ZHZQWU]pakietu. W UML, sparametryzowana kolaboracja jest traktowana projektowy (design pattern). jako wzorzec

Diagramy pakietów (3) Edytor Sterownik Elementy diagramów graficznych Elementy dziedziny ]DVWRVRZD 5G]HJUDILNL System okienkowy 5G]HJUDILNL Motif Motif 5G]HJUDILNL Windows MS Windows

Diagramy pakietów (4) «facade» («fasada») Zawiera Z\áF]QLHRGZRáDQLDdo elementów zdefiniowanych w innych pakietach. «model» 6WDQRZLPQLHMOXEZLFHMNRPSOHWQ DEVWUDNFMV\VWHPX(na pewnym SR]LRPLHV]F]HJyáRZRFLZLG]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\MQLUHDOL]DF\MQ&]ü specyfikacyjna zawiera opis interakcji z otoczeniem, z UHJXá\]DSRPRF SU]\SDGNyZX*\FLD. &]üuhdol]df\mqdsrváxjxmfvlnroderudfmdpl, podaje sposoby realizacji przypadków przez podsystem. Podsytemy PRJE\ü]EXGRZDQH z innych podsystemów, ZWHG\ WHQDMQL*V]HJR SR]LRPX PXV] 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 SRGHMFLH XSUDV]F]D PDSRZDQLH modelu logicznego na implementacyjny.

0HFKDQL]P\UR]V]HU]DOQRFLw UML UML SRVLDGDWU]\URG]DMHPHFKDQL]PyZUR]V]HU]DOQRFL: ƒ stereotypy, ƒ ZDUWRFLHW\NLHWRZDQH, ƒ ograniczenia. Stereotypy ƒ 6WHUHRW\S\XPR*OLZLDMPHWDNODV\ILNDFM elementów modelu. ƒ Istnieje lista VWHUHRW\SyZGODND*GHJRrodzaju elementów modelu (elementu metamodelu UML), npuhodfmlplg]\su]\sdgndplx*\fldnodvf]\phwrg ƒ Dany element modelu (npnrqnuhwqdnodvdf]\phwrgdpr*he\ü oznaczona co QDMZ\*HMMHGQ\Pstereotypem. ƒ 6VWHUHRW\S\SUHGHILQLRZDQHDOHX*\WNRZQLF\PRJWH*GHILQLRZDüZáDVQH ƒ 6WHUHRW\S\UR]V]HU]DMVHPDQW\NPHWDPRGHOX

Stereotypy; notacja Notacja: zwykle «nazwa stereotypu» lub ikona, ale PR*QDWH*X*\ZDükoloru czy tekstury, FKRü z Uy*Q\FKZ]JOGyZQLHjest to polecane (ograniczenia ludzkie lub VSU]WX). guillemets - jeden znak - X*\ZDQ\ w FKDUDNWHU]HFXG]\VáRZLDw M]. francuskim (a) «sterowanie» 3LyURZLHWOQH lokacja: Punkt uruchom (Tryb) (b) «sterowanie» 3LyURZLHWOQH lokacja: Punkt uruchom (Tryb) ikona (c) 3LyURZLHWOQH (d) lokacja: Punkt 3LyURZLHWOQH uruchom (Tryb),NRQDPR*HE\üX*\ZDQDQD2 sposoby: zamiast symbolu stereotypu (c, d) lub razem z nim (b). W przypadkach a, b, c ]DZDUWRüHOHPHQWXPRGHOXRSDWU]RQHJRVWHUHRW\SHP (tu: klasy 3LyURZLHWOQH) jest widoczna. W przypadku d ]RVWDáDRSXV]F]RQD.

Stereotypy; SU]\NáDG\ «include» P1 P2 «extend» P3 P4 rodzaj elementów modelu: UHODFMHPLG]\SU]\SDGNDPLX*\FLD lista stereotypów dla tego rodzaju: «include» i «extend».d*gduhodfmdplg]\su]\sdgndplx*\fld(element modelu) jest opatrzona jednym z dwóch stereotypów z SRZ\*V]HMOLVW\. «WUZDáD» 3URVWRNW punkt1: Punkt punkt2: Punkt «WUZDáD» 3URVWRNW punkt1: Punkt punkt2: Punkt «konstruktory» 3URVWRNWS3XQNWS3XQNW «zapytania» obszar () : Real aspekt() : Real... «aktualizacje» SU]HVXGHOWD3XQNW SU]HVNDOXMZVSyáF]\QQLN Real) «konstruktory» 3URVWRNWS3XQNWS3XQNW «zapytania» obszar () : Real aspekt () : Real... SU]HVXGHOWD3XQNW SU]HVNDOXMZVSyáF]\QQLN Real) Jednym stereotypem PR*QD RSDWU]\ü FDá OLVW HOHPHQWyZ PRGHOX..RQLHF OLVW\ PR*H E\ü oznaczony przez.

:DUWRFLHW\NLHWRZDQH :DUWRFL HW\NLHWRZDQH V X*\ZDQH GR VNRMDU]HQLD arbitralnej informacji z pojedynczym elementem modelu. ƒ :DUWRüHW\NLHWRZDQ stanowi FLJ znaków o postaci: VáRZRNOXF]RZH ZDUWRü. 'RZROQ\áDFXFK]QDNyZPR*HE\üX*\W\MDNRVáRZRNOXF]RZH ƒ 6VáRZDNOXF]RZHSUHGHILQLRZDQHDOHX*\WNRZQLNPR*HWH*GHILQLRZDüZáDVQH ƒ /LVWZDUWRFLHW\NLHWRZDQ\FK (oddzielonych przecinkami) XPLHV]F]DVL w {}. ƒ 'RZROQ\HOHPHQWPRGHOXPR*HE\üVNRMDU]RQ\QLHW\ONR]OLVWZDUWRFL HW\NLHWRZDQ\FKDOHZEDUG]LHMRJyOQ\PVHQVLH]áDFXFKHPZáDVQRFLZSRVWDFL ^GRZROQ\áDFXFK]QDNyZ` {autor = Jan Nowak WHUPLQ]DNRF]HQLD ³0DMD VWDWXV DQDOL]D` 3U]\NáDG: :DUWRFL HW\NLHWRZDQH V szczególnie przydatne do przechowywania zarówno informacji ]ZL]DQ\FK]]DU]G]DQLHPprojektem (jak w SU]\NáDG]LHSRZ\*HM), jak i do SU]HFKRZ\ZDQLDV]F]HJyáyZ implementacyjnych.

Ograniczenia Ograniczenia VSHF\ILNXM UHVWU\NFMH QDNáDGDQH QD HOHPHQW\ PRGHOX 0RJ VWDQRZLüZ\UD*HQLDM]\NDQDWXUDOQHJRF]\M]\NDIRUPDOQHJR(np. OCL w UML), PRJWH*SU]\MPRZDüSRVWDüIRUPXá\PDWHPDW\F]QHMOXEIUDJPHQWXNRGX(F]\WH* pseudokodu). Notacja: Vzawarte ZHZQWU] {} i umieszczane za elementem w klasie, lub poza NODV0RJWH*E\üXPLHV]F]DQHw komentarzu. Pracownik LPL nazwisko pensja {<=10 000} Pracownik LPL nazwisko pensja {pensja <=10 000} ]PLHSHQVM(nowa) ograniczenie statyczne {pensja nie wzrasta o ZLFHMQL*300} ograniczenie dynamiczne

Ograniczenia; SU]\NáDG\ Symbole, takie jak ---- oraz ---->PRJE\ü X*\ZDQH do wskazywania elementów, QDNWyUH]RVWDá\QDáR*RQHRJUDQLF]HQLD. 0..1 Firma * Konto QDOH*\do * {xor} Osoba 0..1 SRGZáDGQ\ * 0..1 szef Osoba 1..* 0..1 pracownik pracodawca Firma {Osoba.pracodawca = Osoba.szef.pracodawca} ograniczenie zapisane w komentarzu

&]\NRU]\VWDüz PHFKDQL]PyZUR]V]HU]DOQRFL? UML GRVWDUF]\áD NLONX PHFKDQL]PyZ UR]V]HU]DOQRFL, DE\ XPR*OLZLü SURMHNWDQWRPZSURZDG]DQLHPRG\ILNDFMLEH]NRQLHF]QRFL]PLDQ\VDPHJRM]\ND modelowania. Twórcy UML VWDUDOL VL w ten sposób (FKRFLD*E\ w pewnym stopniu) ]DVSRNRLüSRWU]HE\VSHF\ILF]Q\FKG]LHG]LQSUREOHPRZ\FKF]\URGRwisk programowych. 1DU]G]LDPRJSU]HFKRZ\ZDüZSURZDG]RQHPRG\ILNDFMHRUD]PDQLSXORZDü QLPLEH]NRQLHF]QRFL ZQLNDQLD w LFK VHPDQW\N - modyfikacje z UHJXá\ V przechowywane w SRVWDFLáDFXFKyZ]QDNRZ\FK. 1DU]G]LD PRJ XVWDQRZLü ZáDVQ VNáDGQL i VHPDQW\N GOD REVáXJL PHFKDQL]PyZUR]V]HU]DOQRFL. 1DOH*\ SDPLWDü *H rozszerzenia VWDQRZL ] GHILQLFML RGVWSVWZR RG standardów 80/ L *H Z naturalny sposób SURZDG]GRutworzenia pewnego dialektu UML, a to z NROHL PR*H SURZDG]Lü do problemów ] SU]HQDV]DOQRFL 7U]HED]DZV]HGREU]HUR]ZD*\ü]\VNL i straty, które PRJE\üSRQLHVLRQHG]LNL korzystaniu z tych mechanizmów, szczególnie wtedy, gdy stare standardowe mechanizmy SUDFXMZ\VWDUF]DMFRdobrze.

Podsumowanie UML 80/SRZVWDáZUH]XOWDFLHSRáF]RQ\FKZ\VLáNyZWU]HFK]QDQ\FKPHtodologów: G. Booch a, I. Jacobson a i J. Rumbaugh a, NWyU\FK PHWRG\NL RSDQRZDá\ RNRáR U\QNX ]DVWRVRZD PHWRG\N RELHNWRZ\FK 80/ ]\VNXMH FRUD] ZLNV] SRSXODUQRü MDNR VNáDGRZD QDU]G]L &$6( L SUDZGRSRGREQLH EG]LH GRPLQRZDá SU]H]ZLHOHQDMEOL*V]\FKODWZREV]DU]HDQDOL]\LSURMHNWRZDQLDSI. 80/ ]JRGQLH ] GHNODUDFM WZyUFyZ QLH PD DPELFML E\ü PHWRG\N SURMHNWRZDQLD -HVW ]HVWDZHP SRMü R]QDF]H L GLDJUDPyZ NWyU\ PRJ E\ü X*\ZDQH Z GRZROQHM PHWRG\FH RSDUW\FK R SRGVWDZRZH SRMFLD RELHNWRZRFL 3RMFLD80/Z]DáR*HQLXWZyUFyZPDMSU]\NU\üZLNV]RüLVWRWQych aspektów modelowanych systemów. Kwestia semantyki i pragmatyki tej notacji pozostaje mglista, co jest QLHXFKURQQ\P VNXWNLHP VSU]HF]QRFL SRPLG]\QDWXUSURFHVyZWZyUczych a ich IRUPDOL]DFM 80/MHVWVNáDGRZVWDQGDUGX20*&25%$ 1LH ZV]\VF\ V ]DFKZ\FHQL 80/ 1LHNWyU]\ VSHFMDOLFL XZD*DM JR za twór QLHVWDELOQ\ ]E\W FL*NL SU]HUHNODPRZDQ\ L (OH ]GHILQLRZDQ\ 8ML ma NRQNXUHQWyZZSRVWDFLFDáHJR]HVWDZXLQQ\FKPHWRG\NRELHNWRZ\FK.