Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
informatika:maturita:17a [31. 03. 2015, 12.34] xzemla1 [Základní dělení diagramů UML] |
informatika:maturita:17a [13. 02. 2018, 20.00] (aktuální) xsilling zvětšení use case nadpisu |
||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
====== Grafický popis algoritmu ====== | ====== Grafický popis algoritmu ====== | ||
- | |||
- | <WRAP center round tip 60%> | ||
- | POUZE KONCEPT | ||
- | </WRAP> | ||
===== Vývojový diagram ===== | ===== Vývojový diagram ===== | ||
- | slouží ke grafickému znázornění algoritmu pomocí symbolů a čar (šipek) | ||
- | ==== Pravidla: ==== | + | Vývojový diagram slouží ke grafickému znázornění algoritmu pomocí symbolů a čar (šipek). Algoritmus je přesný postup, kterým lze vyřešit danou úlohu. |
- | algoritmus postupuje shora dolů, zleva doprava, pokud není jiný směr uveden šipkami, ty určují směr v jiném případě | + | |
- | * **obdélník s popisem** - krok algoritmu | + | |
- | * **kosočtverec** - větvení postupu algoritmu podle splnění podmínky(cyklus) ?? | + | |
- | * **obdélník se zaoblenými rohy** - počátek nebo ukončení algoritmu | + | |
- | * **obdélník s čarami po stranách** - programy | + | |
- | * **rovnoběžník(lichoběžník)** - vstup, výstup | + | |
- | * **šestiúhelník** - cyklus | + | |
+ | ==== Pravidla ==== | ||
- | ==== Druhy algoritmů ==== | + | Ve vývojovém diagramu se postupuje shora dolů a zleva doprava, lze však změnit směr užitím šipek. |
- | + | ||
- | * **document flowcharts** - ukazují řízení toků dokumentů | + | Pro zápis diagramu používáme následující symboly (spolu s vnitřními popisy): |
- | * **data flowcharts** - řizení toků dat | + | |
- | * **system flowcharts** - řízení toků fyzické vrstvy, nebo vrstvy zdrojů | + | |
- | * **program flowcharts** - řízení toků v programu | + | |
+ | * **obdélník** – krok algoritmu (příkazy – například i výpis) | ||
+ | * **kosočtverec** – větvení postupu algoritmu podle naplnění podmínky; bývá (z hlediska ISO normy pro neimperativní paradigmata nesprávně) používán i jako podmínka pro cykly | ||
+ | * **zaoblený obdélník** – počátek nebo ukončení algoritmu | ||
+ | * **obdélník se svislými čarami po stranách** – dodatečné podprogramy | ||
+ | * **rovnoběžník** – vstup | ||
+ | * **obdélník s ořezanými rohy** – ohraničení kroků cyklu tak, aby byly ohraničeny neořezanými stranami (pro //for// a //while// je podmínka uvnitř horní hranice, pro //do while// uvnitř hranice spodní) | ||
+ | {{:informatika:maturita:250px-vyvojovy_diagram_zarovka.png?500 | Příklad vývojového diagramu}} | ||
+ | |||
+ | ==== Druhy vývojových diagramů ==== | ||
+ | |||
+ | * **document flowcharts** – řízení toků dokumentů | ||
+ | * **data flowcharts** – řízení toků dat | ||
+ | * **system flowcharts** – řízení toků fyzické vrstvy nebo vrstvy zdrojů | ||
+ | * **program flowcharts** – řízení toků v programu | ||
===== UML ===== | ===== UML ===== | ||
- | název z angličtiny - unified modeling language | ||
- | Grafický jazyk pro vizualizaci a návrhy programových způsobů. Podporuje objektově orientovaný přístup k analýze, ale již nespecifikuje metodiku funkce programu. | + | Název z angličtiny – **unified modeling language**. |
- | ====Účely UML==== | + | Jedná se o grafický jazyk pro vizualizaci a návrhy programových způsobů. Podporuje objektově orientovaný přístup k analýze, ale již nespecifikuje metodiku funkce programu. |
- | * **Kreslení konceptu** - do diagramů se nakreslí podstatné věci před programováním | + | |
- | * **Kreslení detailních návrhů** - aby programátor přesně pochopil, co mu analytik zadává | + | |
- | * **Jako programovací jazyk** - z diagramů přímo spustitelný kód, v této souvislosti se často používá pojem MDA (model driven architecture) | + | |
+ | ==== Účely UML ==== | ||
+ | |||
+ | * **Kreslení konceptu** – do diagramů se nakreslí podstatné věci před programováním. Modelovací software jako Umbrello poté umožňuje generování šablony kódu podle UML konceptu. | ||
+ | * **Kreslení detailních návrhů** – umožňují programátorovi lépe pochopit analytické zadání. | ||
+ | * **Jako programovací jazyk** – kód spustitelný přímo z diagramů, v této souvislosti se často používá pojem MDA (model driven architecture). | ||
==== Základní dělení diagramů UML ==== | ==== Základní dělení diagramů UML ==== | ||
- | * **Diagramy struktury** (tříd, objektů, apod.) - zobrazují vnitřní strukturu programu | ||
- | * **Diagramy chování** (use-case diagramy,...) - zobrazují pouze vnější chování, to, co uvidí běžný uživatel | ||
- | === Use-Case diagramy === | + | UML umožňuje tvorbu několika typů diagramů, které můžeme kategorizovat podle toho, jaké aspekty systému reprezentují: |
- | doslova "případ užití" - zobrazují pouze funkcionalitu systému, chování programu tak, jak jej vidí uživatel, nikoliv přesnou realizaci. Diagram ukazuje, co má systém umět, ale nikoliv jak to bude zrealizováno. | + | |
- | Základní dva prvky diagramu jsou značky aktérů (actors - uživatelů) a případů užití (use case - jednotlivých možností, které se aktérům nabízejí). | + | * **Diagramy použití a chování** – zobrazují vnější chování systému a jeho funkce (use case diagramy). |
+ | * **Diagramy struktur** – zobrazují prvky, které musí být přítomny v systému, aby mohl správně fungovat, respektive jeho logickou strukturu (diagramy tříd, diagramy objektů, diagramy komponent). | ||
+ | * **Diagramy interakcí** – speciální druh diagramů chování, který se zaměřuje na znázornění toku dat a komunikace uvnitř modelovaného systému (sekvenční diagramy, komunikační diagramy). | ||
+ | |||
+ | ==== Use case diagramy ==== | ||
+ | |||
+ | Doslova diagramy "případů užití" – zobrazují funkcionalitu systému – pouze chování programu (nikoliv přesnou realizaci), a to přímo očima koncového uživatele. Diagram tedy pouze ukazuje, co má systém umět. | ||
+ | |||
+ | Základní dva prvky diagramu jsou značky aktérů (actors – uživatelé) a případů užití (use cases – jednotlivé možnosti, které se aktérům nabízejí). | ||
+ | |||
+ | {{ :informatika:maturita:usecase_diagram.png?500 | Příklad use case diagramu}} | ||
==== Diagramy tříd ==== | ==== Diagramy tříd ==== | ||
- | můžeme využít k zobrazení tříd, jejich metod, atributů a vztahů mezi nimi. | ||
- | === Vztahy mezi třídami: === | + | Diagramy tříd se využívají k zobrazení tříd, jejich metod, atributů a vztahů mezi nimi. |
+ | |||
+ | === Vztahy a značení === | ||
+ | |||
+ | * **Asociace** – vztah informuje o spojení instancí dvou tříd | ||
+ | * **Agregace** – vztah celek – část | ||
+ | * **Kompozice** – silnější verze agregace | ||
+ | * **Dědičnost** – potomek dědí atributy předka | ||
+ | * **Závislost** – změna jedné třídy ovlivní třídu druhou | ||
+ | * **Realizace** – souhrn všech veřejně dostupných metod dané třídy | ||
+ | * **+** = public | ||
+ | * **−** = private | ||
+ | * **#** = protected | ||
+ | |||
+ | {{ :informatika:maturita:class_1.gif | Příklad diagramu tříd}} | ||
+ | |||
+ | ==== Diagramy objektů ==== | ||
+ | |||
+ | Diagramy objektů (nebo také instancí) fungují podobně jako diagramy tříd, ovšem zachycují stav běžícího systému v přesně daném momentu – nezobrazují třídy, ale jejich konkrétní instance, u kterých očekáváme, že by se v systému mohly za běhu vyskytnout. | ||
- | * **Asociace** - vztah informuje o spojení instancí dvou tříd | + | {{ :informatika:maturita:objektovy.gif | Příklad diagramu objektů}} |
- | * **Agregace** - vztah celek - část | + | |
- | * **Kompozice** - silnější verze agregace | + | |
- | * **Dědičnost** - potomek dědí atributy předka | + | |
- | * **Závislost** - změna jednohé třídy ovlivní druhou | + | |
- | * **Realizace** - souhrn všech veřejně dostupných metod dané třídy | + | |
+ | ==== Sekvenční diagramy ==== | ||
+ | Sekvenční diagramy (také diagramy událostí) se starají o znázornění posloupného zasílání zpráv a požadavků mezi sledovanými objekty. Ty jsou znázorněny v horní části diagramu a vychází z nich svislé přerušované čáry (lifelines) indikující jejich existenci (při smazání končí znakem X). Následně se (zleva) posílají objektům požadavky pomocí šipek doplněných o název volané funkce. Šipky mohou být rovněž přerušované, v takovém případě však značí odpovědi na požadavky. Doba zpracování požadavků se znázorňuje obdélníky na lifeline. | ||
+ | {{ :informatika:maturita:sekvencni.png | Příklad sekvenčního diagramu}} | ||