Class Diagrams Tda Atributy Operace Tda Tda je
![Class Diagrams Class Diagrams](https://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-1.jpg)
Class Diagrams
![Třída Atributy Operace Třída Atributy Operace](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-2.jpg)
Třída Atributy Operace
![Třída • Třída je jakýsi prototyp objektů. • Za třídou si můžeme představit množinu Třída • Třída je jakýsi prototyp objektů. • Za třídou si můžeme představit množinu](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-3.jpg)
Třída • Třída je jakýsi prototyp objektů. • Za třídou si můžeme představit množinu jejích instancí. • Každý objekt dané třídy má stejnou množinu atributů (proměnných) a operací (metod). • Tzv. abstraktní třída nedefinuje imlementaci (algoritmus) jedné nebo více metod. • Je-li třída abstraktní, není možno vytvořit její instanci.
![Dědičnost (Inheritance) 1 Abstraktní třída Abstraktní metoda Dědičnost (Inheritance) 1 Abstraktní třída Abstraktní metoda](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-4.jpg)
Dědičnost (Inheritance) 1 Abstraktní třída Abstraktní metoda
![Dědičnost • Třída B, která dědí od třídy A, má všechny atributy a operace Dědičnost • Třída B, která dědí od třídy A, má všechny atributy a operace](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-5.jpg)
Dědičnost • Třída B, která dědí od třídy A, má všechny atributy a operace jako třída A (a možná nějaké navíc). • Třída B je specializací třídy A. • Třída A je zobecněním třídy B. • Pokud třída A definuje implementaci nějaké operace (metody) a, pak tato implementace operace a bude použita i pro třídu B, ledaže by třída B tuto operaci předefinovala (overriding).
![Polymorfismus • Dědí-li třída B od třídy A, pak všechny instance třídy B mohou Polymorfismus • Dědí-li třída B od třídy A, pak všechny instance třídy B mohou](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-6.jpg)
Polymorfismus • Dědí-li třída B od třídy A, pak všechny instance třídy B mohou vystupovat rovněž jako instance třídy A. • Instance třídy B jsou tedy „mnohotvaré“ (polymorfní), mají tvar definovaný třídou B i třídou A. • Dědičnost je transitivní. Tedy, dědí-li C od B a B od A, dědí i C od A. • V roli instanci třídy A může vystupovat každá instance tříd B nebo C
![Atributy-operace třídy/instance • Atributy/operace třídy mohou být použity, aniž by existovala jediná instance této Atributy-operace třídy/instance • Atributy/operace třídy mohou být použity, aniž by existovala jediná instance této](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-7.jpg)
Atributy-operace třídy/instance • Atributy/operace třídy mohou být použity, aniž by existovala jediná instance této třídy. Jsou to vlastnosti této třídy jako celku, nikoliv jednotlivých instancí. • Atributy instance jsou vlastnostmi této instance a mohou mít instance od instance rozdílné hodnoty. • Operace instance jsou prováděny pro danou instanci a proto tato instance musí v okamžiku vyvolání operace existovat.
![Dědičnost (Inheritance) 2 Generalization Set Name Dědičnost (Inheritance) 2 Generalization Set Name](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-8.jpg)
Dědičnost (Inheritance) 2 Generalization Set Name
![Multiplicita atributů Osoba jmeno: String [1] adresa: String [1. . * ] telefon: String Multiplicita atributů Osoba jmeno: String [1] adresa: String [1. . * ] telefon: String](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-9.jpg)
Multiplicita atributů Osoba jmeno: String [1] adresa: String [1. . * ] telefon: String [ 0. . * ] datum. Narozeni: Date [0. . 1]
![Dědičnost (Inheritance) 3 Generalization Set Constraint disjoint/overlapping complete/incomplete Dědičnost (Inheritance) 3 Generalization Set Constraint disjoint/overlapping complete/incomplete](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-10.jpg)
Dědičnost (Inheritance) 3 Generalization Set Constraint disjoint/overlapping complete/incomplete
![Asociace 1 Asociace Asociace 1 Asociace](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-11.jpg)
Asociace 1 Asociace
![Asociace 2 Multiplicita Asociace 2 Multiplicita](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-12.jpg)
Asociace 2 Multiplicita
![Asociace 3 Asociace Class Diagram Link Object Diagram Asociace 3 Asociace Class Diagram Link Object Diagram](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-13.jpg)
Asociace 3 Asociace Class Diagram Link Object Diagram
![Asociace 4 Asociace 4](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-14.jpg)
Asociace 4
![Asociace 5 Chybný model Správný model Asociace 5 Chybný model Správný model](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-15.jpg)
Asociace 5 Chybný model Správný model
![Asociace 6 Asociace 6](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-16.jpg)
Asociace 6
![Asociace 7 Asociace 7](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-17.jpg)
Asociace 7
![Asociace 8 Asociace 8](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-18.jpg)
Asociace 8
![Navigovatelnost 1 Banka * * Bankovni. Ucet Není specifikována ani v jednom směru Asociace Navigovatelnost 1 Banka * * Bankovni. Ucet Není specifikována ani v jednom směru Asociace](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-19.jpg)
Navigovatelnost 1 Banka * * Bankovni. Ucet Není specifikována ani v jednom směru Asociace je navigovatelná v jednom směru, ve druhém není navigovatelnost specifikována Bankovni. Ucet Asociace je navigovatelná v jednom směru, ve druhém navigovatelná není. Bankovni. Ucet Asociace není navigovatelná v žádném směru.
![Asociační třída 1 Asociační třída 1](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-20.jpg)
Asociační třída 1
![Asociační třída 2 Předchozí model je ekvivalentní tomuto modelu: Asociační třída 2 Předchozí model je ekvivalentní tomuto modelu:](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-21.jpg)
Asociační třída 2 Předchozí model je ekvivalentní tomuto modelu:
![Kvalifikovaná asociace 1 Banka cislo. Uctu 1 0. . 1 Bankovni. Ucet Kvalifikovaná asociace 1 Banka cislo. Uctu 1 0. . 1 Bankovni. Ucet](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-22.jpg)
Kvalifikovaná asociace 1 Banka cislo. Uctu 1 0. . 1 Bankovni. Ucet
![Kvalifikovaná asociace 2 Banka cislo. Uctu 1 0. . 1 Bankovni. Ucet Lze přepsat Kvalifikovaná asociace 2 Banka cislo. Uctu 1 0. . 1 Bankovni. Ucet Lze přepsat](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-23.jpg)
Kvalifikovaná asociace 2 Banka cislo. Uctu 1 0. . 1 Bankovni. Ucet Lze přepsat bez použití kvalifikovaé asociace takto: Banka 1 * Bankovni. Ucet cislo. Uctu
![Co je toto? . . . Co je toto? . . .](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-24.jpg)
Co je toto? . . .
![. . . Objektový diagram reprezentující čtverec . . . Objektový diagram reprezentující čtverec](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-25.jpg)
. . . Objektový diagram reprezentující čtverec
![. . . Objektový diagram reprezentující čtverec Instance Link (nikoliv asociace) . . . Objektový diagram reprezentující čtverec Instance Link (nikoliv asociace)](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-26.jpg)
. . . Objektový diagram reprezentující čtverec Instance Link (nikoliv asociace)
![Umíte nakreslit diagram tříd (class diagram) k tomuto diagramu objektů (object diagram)? Umíte nakreslit diagram tříd (class diagram) k tomuto diagramu objektů (object diagram)?](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-27.jpg)
Umíte nakreslit diagram tříd (class diagram) k tomuto diagramu objektů (object diagram)?
![Umíte nakreslit diagram tříd (class diagram) k tomuto diagramu objektů (object diagram)? Umíte nakreslit diagram tříd (class diagram) k tomuto diagramu objektů (object diagram)?](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-28.jpg)
Umíte nakreslit diagram tříd (class diagram) k tomuto diagramu objektů (object diagram)?
![Agregace 1 Agregace je zvláštním případem asociace, kdy jedna třída má ve vztahu výsadnější Agregace 1 Agregace je zvláštním případem asociace, kdy jedna třída má ve vztahu výsadnější](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-29.jpg)
Agregace 1 Agregace je zvláštním případem asociace, kdy jedna třída má ve vztahu výsadnější postavení než druhá třída. Typickým příkladem jsou asociace typu celek-součást. Součást Celek Class diagram na předchozím obrázku by byl teady asi lépe vyjádřen takto:
![Agregace 2 Agregace je zvláštním případem asociace, kdy jedna třída má ve vztahu výsadnější Agregace 2 Agregace je zvláštním případem asociace, kdy jedna třída má ve vztahu výsadnější](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-30.jpg)
Agregace 2 Agregace je zvláštním případem asociace, kdy jedna třída má ve vztahu výsadnější postavení než druhá třída. Typickým příkladem jsou asociace typu celek-součást. Class diagram na předchozím obrázku by byl teady asi lépe vyjádřen takto: Agregac e
![Agregace 3 Agregace je relace: • transitivní: Je-li B součástí celku A a C Agregace 3 Agregace je relace: • transitivní: Je-li B součástí celku A a C](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-31.jpg)
Agregace 3 Agregace je relace: • transitivní: Je-li B součástí celku A a C součástí celku B, pak C je součástí celku A. • antisymetrická: Je-li B součástí A, pak A není součástí B.
![Agregace 4 Kdy asociaci modelovat jako agregaci? Je třeba zodpovědět násůledující otázky: 1. Vystihuje Agregace 4 Kdy asociaci modelovat jako agregaci? Je třeba zodpovědět násůledující otázky: 1. Vystihuje](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-32.jpg)
Agregace 4 Kdy asociaci modelovat jako agregaci? Je třeba zodpovědět násůledující otázky: 1. Vystihuje podstatu asociace fráze „je částí celku“ ? 2. Jsou některé operace celku aplikovatelné na jeho součásti? 3. Propagují se hodnoty některých atributů z celku na všechny nebo aspoň některé části? 4. Je asociace asymetrická (popř. transitivní)?
![Agregace 5 Důležité pravidlo: Nejste-li si jisti, zda je daná asociace agregací, modelujte ji Agregace 5 Důležité pravidlo: Nejste-li si jisti, zda je daná asociace agregací, modelujte ji](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-33.jpg)
Agregace 5 Důležité pravidlo: Nejste-li si jisti, zda je daná asociace agregací, modelujte ji raději pouze jako prostou asociaci (nic zásadního se nepokazí).
![Kompozice 1 Kompozice 1](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-34.jpg)
Kompozice 1
![Kompozice 2 Kompozice je forma agregace s dvěma dodatečnými omezeními: 1. Součást může patřit Kompozice 2 Kompozice je forma agregace s dvěma dodatečnými omezeními: 1. Součást může patřit](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-35.jpg)
Kompozice 2 Kompozice je forma agregace s dvěma dodatečnými omezeními: 1. Součást může patřit maximálně do jednoho celku (oddělení nemůže být sdíleno více divizemi) 2. Jakmile je součást zařazena do celku, je její životní cyklus určen životním cyklem celku (zanikne-li společnost, zaniknou i všechny její divize).
![Kompozice 3 Důležité pravidlo: Modelujeme-li agregaci jako prostou asociaci, nic podstatného se nestane. Namodelujeme-li Kompozice 3 Důležité pravidlo: Modelujeme-li agregaci jako prostou asociaci, nic podstatného se nestane. Namodelujeme-li](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-36.jpg)
Kompozice 3 Důležité pravidlo: Modelujeme-li agregaci jako prostou asociaci, nic podstatného se nestane. Namodelujeme-li kompozici jako prostou asociaci nebo jako agregaci, ztrácíme důležitou informaci o dvou omezeních – (i) nesdílení součásti mezi celky a (ii) determinace životního cyklu součásti životním cyklem celku.
![Definice omezení pro asociace • Multiplicita (kardinalita množiny) • Kvalifikovaná asociace • Uspořádanost instancí Definice omezení pro asociace • Multiplicita (kardinalita množiny) • Kvalifikovaná asociace • Uspořádanost instancí](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-37.jpg)
Definice omezení pro asociace • Multiplicita (kardinalita množiny) • Kvalifikovaná asociace • Uspořádanost instancí na * konci ( {ordered}, {sequence}, {bag} ) • Explicitně vyjádřené omezeni clen Osoba * {subset} * predseda 1 0, 1 Výbor
![Definice omezení pro objekty 1 Zamestnanec hruba. Mzda vedouci 0. . 1 * {hruba. Definice omezení pro objekty 1 Zamestnanec hruba. Mzda vedouci 0. . 1 * {hruba.](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-38.jpg)
Definice omezení pro objekty 1 Zamestnanec hruba. Mzda vedouci 0. . 1 * {hruba. Mzda < vedouci. hruba. Mzda}
![Definice omezení pro objekty 2 Okno delka sirka { 0. 8 ≤ delke/sirka ≤ Definice omezení pro objekty 2 Okno delka sirka { 0. 8 ≤ delke/sirka ≤](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-39.jpg)
Definice omezení pro objekty 2 Okno delka sirka { 0. 8 ≤ delke/sirka ≤ 1. 5 }
![Definice omezení pro objekty 3 Osoba vek: int {vek je neklesajici } Definice omezení pro objekty 3 Osoba vek: int {vek je neklesajici }](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-40.jpg)
Definice omezení pro objekty 3 Osoba vek: int {vek je neklesajici }
![Viditelnost Osoba + vek: int - vyska: float # vaha: float ~ povolani: String Viditelnost Osoba + vek: int - vyska: float # vaha: float ~ povolani: String](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-41.jpg)
Viditelnost Osoba + vek: int - vyska: float # vaha: float ~ povolani: String +. . public -. . private #. . protected ~. . package Aplikovtelné na: • atributy • operace • asociace
![Scope (vlastnosti instancí nebo tříd) zprava. Na. Zaznamníku maximalni. Delka. Zpravy maximalni. Doba. Uchovani Scope (vlastnosti instancí nebo tříd) zprava. Na. Zaznamníku maximalni. Delka. Zpravy maximalni. Doba. Uchovani](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-42.jpg)
Scope (vlastnosti instancí nebo tříd) zprava. Na. Zaznamníku maximalni. Delka. Zpravy maximalni. Doba. Uchovani datum. Nahrani cas. Nahrani priorita zprava
![Sudoku Sudoku](http://slidetodoc.com/presentation_image_h/c1be95055509b92a8375786cde47285f/image-43.jpg)
Sudoku
- Slides: 43