# Základní charakteristiky objektu * identita - 2 objekty jsou rozdílné, i když mají stejné vlastnosti, např. Petr-Petr * klasifikace -> třídy; třída = množina objektů * polymorfizmus - stejná operace, různé chování. např. otočení trojúhelníku a kruhu * dědičnost - sdílení atributů, např. živočich -> člověk, pták * abstrakce - soustředění se na podstatné * zapouzdření - API, vnitřní fungování je nám skryto * sdílení =~ dědičnost * životní cyklus - analýza, návrh systému, objektový návrh, implementace * modely * objektový - je statický, _objekty_ a jejich _vazby_/uzly a souvislosti * dynamický - stavový diagram - _stavy_ a _události_ * funkční - transformace dat, DFD - _procesy_ a _datové toky_ * třída - popisuje skupinu objektů stejných vlastností * značení třídy je box V. instance ma zaoblené rohy * metoda - implementace operace na třídu * link - vazba/vztah mezi objekty - je dvousměrná * kardinalita - násobnost - kolik výskytu jedné třídy se vztahuje k přiřazené třídě * symbolika * -o = 0/1 * - = 1 * -* = 0 nebo vice * -1+ = 1 a více * -8-20 = 8 až 20 * atribut spojení * kvalifikace - 2 třídy a kvalifikátor; zmenšuje násobnost vazby * 1:N, M:N * např. adresář + jméno souboru -> určují soubor -> 1:1 * agregace - "skládá se"/"je součástí" - kosočtverec V. kolečko; součást-celek * generalizace - vztah nadtřída-podtřída, např. zařízení <- pumpa, nádrž * inheritance =~ dědění # Dynamícké modelování * stav, událost, stavový diagram * stav - soubor atributů a spojení objektů v t_0 * událost - stlačení tlačítka myši; jednosměrná, nemá trvání! * diagram sledu událostí - wireframe, posloupnosti * stavový diagram - vztah událostí a vztahů, popisuje chování pouze jedné třídy * o->O->o * podmínka - platí v určitém čase * operace - odezva na stavy a události * aktivita - má čas trvání, váže vztah * akce(?) - váže se k události * generalizace stavu - "nebo"; ostatní stavy jsou podstavy; dědí z předků * agregace - "a" * konkurence - objekty nezávisle mění stav, vrozeně konkurenční * scénář, události, diagram sledů a událostí, stavový diagram # Funkční modelování * říká co se stane(dynamické říká kdy, modelové kde) * Data Flow Diagram - určuje výsledky transformací * graf datových toků * procesy, datové toky, datastore, aktory * signature - definuje interface operace * transformace - definuje učinek operace # Vztah funkčního - objektového - dynamického modelu * funkční = co systém musí dělat; operace na třídách a argumenty * dynamický = posloupnosti; stav objektů a operací; časově závislé chování systému * objektový = strukturu aktorů, toků, datastore; co mění stav a podléhá operacím; realné třídy objektů a jejich vztahy # OMT metodologie * celý životní cyklus 1. analýza -> formální model - objekty a vztahy; dynamický tok řízení; funkční transformace dat 2. návrh systému -> architektura + rozložení do subsystémů 3. návrh objektů -> praktický návrh, rozpracování modelu analýzy 4. implementace * rychlejší implementace, iterativní upřesňování => stabilnější systém ke změnám * souhrn k analýze - úvodní formulace problému * OM - statická struktura skutečnosti; určíme třídy objektů a vazby; atributy a dědičnost * DM - chování systému; scénáře -> stavový diagram každého aktivního objektu * FM - funkční odvození hodnot; identifikace vstup/výstup; vytvoření DFD * systémový návrh - vrcholová strategie po rozložení na subsystémy; politická a koncepční rozhodnutí