Title: UML
1UML
http//www.uml.org/
- unified modelling language
- sjednocený modelovací jazyk
2Co to je UML
UML spadá pod objektové modelovací techniky.
Základy OOA
- Abstrakce
- Dedicnost
- Polymorfismus
- Zapouzdrení
- Posílání zpráv
- Asociace
- Agregace
Booch, Rumbaugh, Jacobson
3Z ceho se UML skládá?
- Predmety (things)
- Relace (relationships)
- Diagramy (diagrams)
4Predmety (things)
5Relace (relationships)
- Závislost (dependency) znázornení vztahu, kdy
zmenou v jednom elementu je ovlivnen jiný
(závislý) element - Asociace (association) spojení definující vztah
mezi elementy - Zobecnení (generalization) vztahy
generalizace-specializace, tj. jeden element je
specializací jiného elementu - Realizace (realization) jeden element je
realizací jiného elementu
6Diagramy (diagrams)
Diagram je jeden pruhled, okénko, kterým se
díváme na model. A model je schéma, kterým se
díváme na realitu sveta.
- Statické
- diagram tríd
- diagram komponent
- diagram nasazení
- Dynamické
- diagram prípadu použití
- sekvencní diagram
- diagram spolupráce
- stavový diagram
- diagram aktivit
- objektový diagram
7Diagramy UMLhttp//cs.felk.cvut.cz/7Ehrzinap/013
DFA.htm
8Use case diagram - diagram prípadu užití
Zobrazuje chování systému (nebo jeho cásti) z
hlediska uživatele
9Class diagram - diagram tríd
- Zobrazuje statickou strukturu systému.
10Objektový diagram
- Objektový diagram zobrazuje objekty a jejich
spoje (links) v jednom okamžiku
11Sequence diagram - sekvencní diagram
Objekty si mohou posílat zprávy. Sekvencní
diagram zobrazuje jejich casovou posloupnost.
Sekvencní diagram spolu s diagramem spolupráce
(collaboration diagram) patrí do skupiny
interakcních diagramu (interaction
diagrams).Tyto dva diagramy jsou témer izomorfní
- tj. dají se prevádet z jednoho tvaru na druhý
(casto i automatizovane). Použití sekvencního
diagramu bývá vhodnejší v tech prípadech, kde
jsou duležité casové souvislosti interakcí.
12Collaboration diagram - diagram spolupráce
Objekty si mohou posílat zprávy. Diagram
spolupráce ukazuje objekty a spojení a zprávy,
které si objekty posílají
13State diagram - stavový diagram, diagram stavu a
prechodu
Používá se pro popis dynamického chování jednoho
reaktivního objektu. Diagram obsahuje jeden
stavový automat
14Activity diagram - diagram aktivit
Diagram aktivit je vlastne sociálním prípadem
stavového diagramu - jeho visuální elementy jsou
si podobné
Používá se pro popis dynamických aspektu systému.
Jde o jakýsi flowchart - znázornuje tok rízení z
aktivity do aktivity. Používané k modelování
obchodních (business) procesu.
15Component diagram - diagram komponent
Komponenta je fyzická nahraditelná cást systému,
která obaluje implementaci a poskytuje realizaci
množiny specifikovaných rozhraní.Diagram
komponent znázornuje softwarové komponenty
použité v systému. Mohou to být jak komponenty
vytvorené vlastními silami, tak komponenty
zakoupené od tretích stran.
16Deployment diagram - diagram nasazení
Diagram nasazení ukazuje rozmístení zdroju (napr.
HW) a softwarové komponenty, procesy a objekty,
které na nich žijí
17UML
18Etymologie
- Slovo sekvence je puvodne hudební termín, který
vychází z lat. sequentia a oznacuje úryvek
chrámové hudby, který následuje po evangeliu
apod. - Od lat. sequens následující
- To od lat. sequi následovat
19Sequence diagram - sekvencní diagram
Objekty si mohou posílat zprávy. Sekvencní
diagram zobrazuje jejich casovou posloupnost.
Sekvencní diagram spolu s diagramem spolupráce
(collaboration diagram) patrí do skupiny
interakcních diagramu (interaction
diagrams).Tyto dva diagramy jsou témer izomorfní
- tj. dají se prevádet z jednoho tvaru na druhý
(casto i automatizovane). Použití sekvencního
diagramu bývá vhodnejší v tech prípadech, kde
jsou duležité casové souvislosti interakcí.
20Z ceho se skládá
- objekt se zobrazuje stejne, jako v objektovém
diagramu (ovšem bez hodnot a atributu) - cára života (lifeline) ukazuje, kdy objekt žije -
v tomto diagramu všchny objekty existovaly už
pred posláním první zprávy, a dále existují po
dokoncení sekvencního diagramu (resp. nevíme, kdy
který objekt zanikne nebo nás to v tuto chvíli
nezajímá) - aktivita objektu (focus of control) ukazuje, kdy
je který objekt aktivní - zpráva
- zde jednoduchá zpráva se zobrazuje plnou šipkou a
má syntaxi návratováHodnota (argument1,
argument2, ....) - návratováHodnota není povinná
- návratováHodnota muže být v návratové zpráve
zobrazuje se cárkovnou šipkou (zde má název
Return() ) - POZOR casová osa nemá merítko - od délky
obdélníku se nedá usuzovat na délky casu ani na
to, který cas bude delší ci kratší
21Zprávy
Zpráva muže být zaslaná mezi objekty, nebo objekt
zašle zprávu sám sobe.
- Druhy zpráv
- jednoduchá prechod rízení z jednoho objektu na
druhý - synchronní objekt ceká na odpoved, aniž by do
té doby neco delal - asynchronní objekt neceká na odpoved a
pokracuje ve své práci
22Zakreslení zpráv
jednoduchá
synchronní
asynchronní
23Složitejší funkce
- popisky lze vkládat vlevo, a ve smeru casové osy
- jde jen upresnující/vysvetlucící text ci
oznacení bodu na casové ose, které lze pak využít
v podmínkách a výrazech - iterace co má být iterováno je uzavreno v
obdélníku, iteracní výraz je pod obdélníkem (zde
dokud má host hlad hvezdicka oznacuje
iteraci, v hranatých závorkách je podmínka - asynchronní zpráva je vyjádrena (prostou) šipkou
po zaslání této zprávy klient pokracuje dále ve
zpracování (nemusí cekat, až server vrátí focus
zpet), vlastne dojde k vytvorení nového vlákna - vytvorení objektu je vyznaceno pozicí objektu
(není umísten nahore, ale jeho cára života zacíná
níže na casové ose) a tím, že zpráva (v jejímž
dusledku objekt vznikl) vede prímo k objektu
(namísto do jeho lifeline) - uvolnení objektu je oznaceno krížkem
- podmínka má peníze zpráva bude poslána jen
tehdy, pokud bude podmínka splnena
24(No Transcript)
25Sekvencní diagram príklad 1
- Pro príklad operacního systému pocítace
vytvorte sekvencní diagram predstavující stisk
klávesy v textovém editoru, který zpusobí
zobrazení tohoto znaku na obrazovce.
Predpokládejte interakce mezi temito objekty - GUI (grafické uživatelské rozhraní)
- OS (operacní systém)
- CPU (procesor)
- Grafická karta
- Monitor
26Príklad 1 - rešení
27Sekvencní diagram príklad 2
- Vytvorte sekvencní diagram pro praní prádla v
pracce. Predpokládejte interakce mezi temito
objekty - prívod vody
- buben
- odtok
28Príklad 2 sekvence kroku
- Voda se prívodní hadicí napustí do bubnu
- Buben se 5 min nebude pohybovat
- Voda se prestane napouštet
- Buben se bude asi 15 min otácet obema smery
- Voda s pracím práškem se vypustí
- Voda se znovu zacne napouštet
- Buben se znovu otácí obema smery
- Voda se prestane napouštet
- Voda z máchání se vypustí
- Buben se zacne otácet pouze jedním smerem a
rychlost otácení se na 5 min zvýší - Buben se prestane otácet, címž praní koncí
29Príklad 2 - rešení
30Sekvencní diagram príklad 3
- Vytvorte sekvencní diagram pro nákup nápoje v
automatu. Predpokládejte, že se automat skládá z
techto ctyr objektu - Zákazník
- Ovládací panel
- Pokladna
- Výdejník
31Príklad 3 sekvence kroku
- Zákazník vhodí mince do otvoru v ovládacím panelu
- Zákazník si vybere druh nápoje
- Peníze propadnou do pokladny
- Pokladna predá na výdejník pokyn pro vydání
nápoje - Výdejník vydá nápoj
32Príklad 3 - rešení
33Príklad 3 scénár 2
- Pro prípad nápojového automatu uvažujte
scénár, v nemž zákazník nemá správný obnos. - Pokladna zkontroluje, zda množství vhozených
mincí odpovídá cene nápoje - Pokud je vhozená cástka vyšší, vyplatí pokladna
rozdíl
34Scénár 2 - rešení
35Príklad 3 scénár 3
- Pro prípad nápojového automatu uvažujte
scénár, kdy je požadovaný druh nápoje vyprodán. - Poté, co zákazník zvolí vyprodaný druh, automat
vypíše zprávu Vyprodáno - Automat ceká na volbu jiného druhu nápoje
36Scénár 3 - rešení
37(No Transcript)