http://www.uml.org/
UML
unified modelling language
sjednocený modelovací jazyk
Co to je UML
UML spadá pod „objektové modelovací techniky“.
OOA
Základy OOA:
•Abstrakce
•Dědičnost
UML
OMT
•Polymorfismus
•Zapouzdření
•Posílání zpráv
•Asociace
•Agregace
Booch, Rumbaugh, Jacobson
Z čeho se UML skládá?
• Předměty (things)
• Relace (relationships)
• Diagramy (diagrams)
Předměty (things)
• Strukturní
Seskupení
• Behaviorální
•Poznámky
Relace (relationships)
• Závislost (dependency) : znázornění vztahu, kdy
změnou v jednom elementu je ovlivněn jiný (závislý) element
• Asociace (association) : spojení definující vztah mezi
elementy
• Zobecnění (generalization) : vztahy generalizacespecializace, tj. jeden element je specializací jiného elementu
• Realizace (realization) : jeden element je realizací jiného
elementu
Diagramy (diagrams)
– Statické
• diagram tříd
• diagram komponent
• diagram nasazení
– Dynamické
•
•
•
•
•
•
diagram případu použití
sekvenční diagram
diagram spolupráce
stavový diagram
diagram aktivit
objektový diagram
Diagram je jeden průhled,
okénko, kterým se díváme
na model.
A model je schéma, kterým
se díváme na realitu světa.
Diagramy UML
http://cs.felk.cvut.cz/%7Ehrzinap/013DFA.htm
Use case diagram - diagram
případů užití
Zobrazuje chování systému (nebo jeho části) z hlediska uživatele
Class diagram - diagram tříd
Zobrazuje statickou strukturu systému.
Objektový diagram
Objektový diagram zobrazuje objekty a jejich spoje (links) v
jednom okamžiku
Sequence diagram sekvenční diagram
Objekty si mohou posílat zprávy. Sekvenční diagram zobrazuje jejich
časovou posloupnost.
Sekvenční diagram spolu s diagramem
spolupráce (collaboration diagram) patří
do skupiny interakčních diagramů
(interaction diagrams).
Tyto dva diagramy jsou téměř izomorfní tj. dají se převádět z jednoho tvaru na
druhý (často i automatizovaně). Použití
sekvenčního diagramu bývá vhodnější v
těch případech, kde jsou důležité časové
souvislosti interakcí.
Collaboration 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í
State diagram - stavový diagram,
diagram stavů a přechodů
Používá se pro popis
dynamického chování jednoho
reaktivního objektu. Diagram
obsahuje jeden stavový
automat
Activity diagram - diagram
aktivit
Diagram aktivit je vlastně sociálním
případem stavového diagramu - jeho
visuální elementy jsou si podobné
Používá se pro popis dynamických
aspektů systému. Jde o jakýsi
flowchart - znázorňuje tok řízení z
aktivity do aktivity. Používané k
modelování obchodních (business)
procesů.
Component diagram diagram komponent
Komponenta je fyzická
nahraditelná část systému, která
obaluje implementaci a poskytuje
realizaci množiny specifikovaných
rozhraní.
Diagram komponent znázorňuje
softwarové komponenty použité v
systému. Mohou to být jak
komponenty vytvořené vlastními
silami, tak komponenty zakoupené
od třetích stran.
Deployment diagram diagram nasazení
Diagram nasazení
ukazuje rozmístění
zdrojů (např. HW)
a softwarové
komponenty,
procesy a objekty,
které na nich žijí
UML
Sekvenční diagram
Etymologie
• Slovo sekvence je původně hudební
termín, který vychází z lat. sequentia a
označuje úryvek chrámové hudby, který
následuje po evangeliu apod.
• Od lat. sequens = následující
• To od lat. sequi = následovat
Sequence diagram sekvenční diagram
Objekty si mohou posílat zprávy. Sekvenční diagram zobrazuje jejich
časovou posloupnost.
Sekvenční diagram spolu s diagramem
spolupráce (collaboration diagram) patří
do skupiny interakčních diagramů
(interaction diagrams).
Tyto dva diagramy jsou téměř izomorfní tj. dají se převádět z jednoho tvaru na
druhý (často i automatizovaně). Použití
sekvenčního diagramu bývá vhodnější v
těch případech, kde jsou důležité časové
souvislosti interakcí.
Z čeho se skládá
• objekt se zobrazuje stejně, jako v objektovém diagramu
(ovšem bez hodnot a atributů)
• čára života (lifeline) ukazuje, kdy objekt žije - v tomto
diagramu všchny objekty existovaly už před posláním první
zprávy, a dále existují po dokončení sekvenční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 může být v návratové zprávě : zobrazuje se
čárkovnou šipkou (zde má název Return() )
• POZOR : časová osa nemá měřítko - od délky obdélníku se nedá usuzovat
na délky času ani na to, který čas bude delší či kratší
Zprávy
Zpráva může být zaslaná mezi objekty, nebo
objekt zašle zprávu sám sobě.
Druhy zpráv:
• jednoduchá – přechod řízení z jednoho
objektu na druhý
• synchronní – objekt čeká na odpověď,
aniž by do té doby něco dělal
• asynchronní – objekt nečeká na odpověď
a pokračuje ve své práci
Zakreslení zpráv
: Jméno1
: Jméno2
jednoduchá
synchronní
asynchronní
Složitější funkce
• popisky lze vkládat vlevo, a ve směru časové
osy - jde jen upřesňující/vysvětlucící text či
označení bodů na časové ose, které lze pak
využít v podmínkách a výrazech
• iterace : co má být iterováno je uzavřeno v
obdélníku, iterační výraz je pod obdélníkem (zde
*[dokud má host hlad] : hvězdička označuje
iteraci, v hranatých závorkách je podmínka
• asynchronní zpráva je vyjádřena (prostou)
šipkou: po zaslání této zprávy klient pokračuje
dále ve zpracování (nemusí čekat, až server
vrátí focus zpět), vlastně dojde k vytvoření
nového vlákna
Sekvenční diagram – příklad 1
Pro příklad operačního systému počítače
vytvořte sekvenční diagram představující stisk
klávesy v textovém editoru, který způsobí
zobrazení tohoto znaku na obrazovce.
Předpokládejte interakce mezi těmito objekty:
•
•
•
•
•
GUI (grafické uživatelské rozhraní)
OS (operační systém)
CPU (procesor)
Grafická karta
Monitor
Příklad 1 - řešení
: GUI
: OS
: CPU
stisk klávesy
zpětná vazba
: Grafická
karta
: Monitor
Sekvenční diagram – příklad 2
Vytvořte sekvenční diagram pro praní
prádla v pračce. Předpokládejte interakce
mezi těmito objekty:
• přívod vody
• buben
• odtok
Příklad 2 – sekvence kroků
Voda se přívodní hadicí napustí do bubnu
Buben se 5 min nebude pohybovat
Voda se přestane napouštět
Buben se bude asi 15 min otáčet oběma směry
Voda s pracím práškem se vypustí
Voda se znovu začne napouštět
Buben se znovu otáčí oběma směry
Voda se přestane napouštět
Voda z máchání se vypustí
Buben se začne otáčet pouze jedním směrem a
rychlost otáčení se na 5 min zvýší
11. Buben se přestane otáčet, čímž praní končí
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Příklad 2 - řešení
: Přívod vody
: Buben
: Odtok
Přitéká čistá voda
Zůstane nehybný
Konec
Otáčí se dopředu a dozadu
Odtéká voda s pracím práškem
Přitéká čistá voda
Otáčí se dopředu a dozadu
Odtéká voda z máchání
Konec
Otáčí se jedním směrem
Konec
Sekvenční diagram – příklad 3
Vytvořte sekvenční diagram pro nákup
nápoje v automatu. Předpokládejte, že se
automat skládá z těchto čtyř objektů:
•
•
•
•
Zákazník
Ovládací panel
Pokladna
Výdejník
Příklad 3 – sekvence kroků
1. Zákazník vhodí mince do otvoru v
ovládacím panelu
2. Zákazník si vybere druh nápoje
3. Peníze propadnou do pokladny
4. Pokladna předá na výdejník pokyn pro
vydání nápoje
5. Výdejník vydá nápoj
Příklad 3 - řešení
: Zákazník
: Ovládací
panel
: Výdejník
: Pokladna
Vhodit mince
Vybrat druh
Peníze do pokladny
Pokyn pro vydání
Vydat nápoj
Příklad 3 – scénář 2
Pro případ nápojového automatu
uvažujte scénář, v němž zákazník nemá
správný obnos.
1. Pokladna zkontroluje, zda množství
vhozených mincí odpovídá ceně nápoje
2. Pokud je vhozená částka vyšší, vyplatí
pokladna rozdíl
Scénář 2 - řešení
: Zákazník
: Ovládací
panel
: Pokladna
: Výdejník
Vhodit mince
Vybrat druh
Peníze do pokladny
Kontrola drobných
Pokyn pro vydání
Vrátit drobné
Vydat nápoj
Příklad 3 – scénář 3
Pro případ nápojového automatu
uvažujte scénář, kdy je požadovaný druh
nápoje vyprodán.
1. Poté, co zákazník zvolí vyprodaný druh,
automat vypíše zprávu Vyprodáno
2. Automat čeká na volbu jiného druhu
nápoje
Scénář 3 - řešení
: Zákazník
: Ovládací
panel
: Pokladna
: Výdejník
Vhodit mince
Vybrat druh
Peníze do pokladny
Pokyn pro vydání
Zobrazit vyprodáno
Vybrat nový
Poslat vstup
Pokyn pro vydání
Vydat nápoj
Descargar

UML