Jazyk UML a objektově orientovaný návrh Flashcards
(3 cards)
Jazyk UML + rozdělení diagramů
Jazyk UML je grafický jazyk pro popis programových systémů. Slouží pro vizualizaci, specifikaci, návrh a dokumentaci systémů. K zobrazení se využívají diagramy, kde nejčastěji používané jsou:
1. Strukturální
(a) Diagram tříd
(b) Diagram případů užití
(c) Diagram komponent
(d) Diagram nasazení
2. Behaviorální
(a) Diagram aktivit
(b) Diagram sekvencí
(c) Diagram stavů
Nejpoužívanější jsou diagramy tříd a případů užití. Diagram tříd popisuje strukturu systému, znázorňuje datové struktury a operace u objektů a souvislosti mezi nimi. Skládá se z tříd, rozhraní, abstraktních tříd. Tyto tři prvky se dále skládají z názvu třídy/rozhraní, atributů (rozhraní neobsahuje atributy) a operací (metody/funkce). Diagram případů užití se nejčastěji používá při komunikaci se zákazníkem a méně technicky znalou
stranou. Skládá se z herců (actor) a případů užití. Tyto strany jsou propojeny mezi sebou i samy se sebou pomocí těchto vztahů: asociace, generalizace, rozšíření vztahu, vztah
zahrnuje
Objektově orientovaný návrh
Objektově orientovaný návrh (OON) je způsob, jak si při vývoji softwaru uspořádat a popsat informace. Vychází z principů, které známe z reálného světa – tedy pracuje s objekty (například auto, uživatel, objednávka), což lidem usnadňuje pochopení návrhu.
Tento přístup není vázán na konkrétní programovací jazyk, ale jazyk, ve kterém bude program nakonec napsán, musí podporovat objektově orientované programování (OOP) – tedy práci s třídami, objekty, dědičností atd.
Výhody objektově orientovaného návrhu:
Pomáhá přehledně rozdělit program na části, které spolu komunikují jen tam, kde to dává smysl.
Díky tomu se snižuje riziko chyb a zároveň i náklady na vývoj a opravy.
Zaměřuje se jen na vztahy mezi objekty, nikoliv na konkrétní kód nebo implementaci.
Kdy OON není vhodný:
Pokud neexistuje kompilátor (překladač) pro OOP jazyk na cílové platformě.
Pokud se návrh má implementovat v jazyce, který nepodporuje OOP (například v čistém jazyce C).
Pokud by přepisování existujícího projektu na objektový návrh bylo příliš drahé nebo zbytečné – hlavně u malých nebo krátkodobých projektů.
Vztahy mezi třídami
1) Závislost - Přerušovaná čára s plnou šipkou
Slabý vztah mezi dvěma třídami, kdy jedna třída nějakým způsobem využívá druhou.
Změna jedné třídy může ovlivnit druhou, ale ne naopak.
2) Asociace - Plná čára s plnou šipkou
Obecný vztah mezi dvěma třídami, které spolu spolupracují.
Může být jednosměrná (jedna třída zná druhou) nebo obousměrná (obě se navzájem znají).
3) Agregace - Plná čára s prázdným kosočtvercem
Speciální typ asociace, kdy jedna třída obsahuje jinou třídu, ale nevlastní ji úplně.
Pokud se hlavní třída zničí, obsažené třídy mohou existovat dál.
4) Kompozice - Plná čára s plným kosočtvercem
Silnější verze agregace, pokud se hlavní objekt zničí, zničí se i vnořený objekt. Část nemá bez celku smysl
5) Dědičnost/generalizace - Plná čára s prázdnou šipkou
Vztah rodič-potomek - podtřída dědí vlastnosti metody nadtřídy
Vztah na úrovni třídy + Hierarchické uspořádání tříd.