Diagram tříd je:

  • Zobrazení statické struktury systému prostřednictvím tříd a vztahů mezi nimi.

využití diagramu tříd:

  • fáze analýzy (konceptuální model)
  • fáze návrhu (návrh atributů a operací)
  • fáze implementace (návrh a tvorba programového kódu) projektovaného systému

základní konstrukční prvky:

Třída (class)

sdružuje objekty se společnými vlastnostmi a chováním (sdílejí stejné atributy, operace, vztahy a sémantiku)

atribut

charakterizuje vlastnost objektu
vypovídá o stavu objektu, případně popisuje historii jeho stavů (aktivit)

operace (metoda)

funkční složka objektu, která zajišťuje jeho chování; má formu funkce nebo procedury
constructor: vytvoření instance třídy, tj. objektu (CREATE)
get: čtení hodnoty atributu (READ)
set: editace hodnoty atributu (UPDATE)
destructor: zničení objektu (DELETE)
trida

Dostupnost (visibility) objektů diagramu tříd

Určuje, zda a jak mohou ostatní elementy modelu využívat atributy a operace daného objektu.

- private (soukromý)

pouze pro danou třídu

# protected (chráněný)

pouze pro danou třídu a její instance (dětské třídy nebo objekty)

* package

pouze pro objekty obsažené ve stejném balíčku (package)

+ public (veřejný)

pro všechny objekty

Typy tříd

Model 

entitní, konceptuální, aplikační třída objekty reprezentované třídou obsahují a zpracovávají data

View  

boundary, třída uživatelského rozhraní objekty reprezentované třídou používají aktoři k interakci se systémem
třída má definované pouze operace: s entitními třídami (jež poskytují data) je spojena asociacemi (agregacemi)

Controller 

ovládací třída objekty reprezentované třídou koordinují chování v systému (definují způsob reakce uživatelského rozhraní na uživatelský vstup)

Vztahy

asociace

obecný sémantický vztah mezi prvky modelu, který specifikuje spojení mezi jejich instancemi
(objekty, které vzniknou z tříd spojených asociací, si budou moci posílat zprávy)
asociace

agregace

forma asociace, jež vyjadřuje vztah celek - část
element může „přežít“ svůj kontejner, příp. stát se součástí jiného kontejneru
agregace

kompozice

silnější vazba než agregace - zrušením kontejneru automaticky zrušíme i obsažený element;
daný element může být součástí právě jednoho kontejneru
kompozice

dědičnost (generalizace)

hierarchický vztah tříd, v němž třída - potomek (subclass, specifický typ) dědí atributy a operace třídy - předka (superclass, nadtyp);
kromě zděděných charakteristik může mít potomek ještě své specifické vlastnosti;
zděděné vlastnosti mohou být v potomkovi modifikovány
dedicnost

závislost

vztah mezi dvěma elementy modelu, v němž změna jednoho (nezávislého) elementu ovlivní druhý (závislý) element
zavislost

realizace

souhrn všech veřejně přístupných metod dané třídy;
umožňuje vícenásobné využití operací, aniž bychom museli zavádět dědičnost mezi třídami
realizace

Násobnost (multiplicita, kardinalita) vztahů

zápis

význam

0..* * 0 až více
0..1 0 nebo 1
1..* 1 až více
1..1 1 právě 1
1..3 1,2,3 1 až 3
5,10,20 5, 10 nebo 20
5..* 5 až více

Vlastnosti správného diagramu tříd:

  • je normalizovaný
  • umožňuje flexibilitu
  • umožňuje znovupoužitelnost

Příklady a ukázky:

Diagram tříd pro informační systém školy

tridy

Komentář:

  • Třídy Zkouška a Rozvrh jsou tzv. asociační třídy, které mají vazbu nikoli ke konkrétním třídám, ale k jejich vztahu.
  • Třída Osoba je tzv. abstraktní třída, která slouží pouze ke vzniku tříd Student nebo Zaměstnanec, ale vlastní instance (tj. objekty Osoba) nevytváří.
  • Třídy ZápisStudentů a ZápisZnámek jsou tzv. třídy uživatelského rozhraní, jež mají pouze operace a data jim poskytují entitní třídy spojené asociacemi nebo agregacemi.

Bibliografické citace


bibcitace

Bibliografický popis

bibpopis

Výpůjčky knih

vypujcka

Webová stránka

webpage

Katalog webových stránek


katalogWeb

 

Naposledy změněno: čtvrtek, 25. března 2021, 16.26