Katedra informatiky
Přírodovědecká fakulta
Univerzita Palackého
17. listopadu 1192/12
771 46 Olomouc

POSUDEK
BAKALÁŘSKÉ DIPLOMOVÉ PRÁCE

Název bakalářské práce: Diagramy tříd
Diplomant:  Marek Langr
Autor posudku: RNDr. Arnošt Večerka							vedoucí práce 

Posudek: 

Na začátku práce diplomant popisuje charakteristické modelovacího jazyka UML. Je zde přehled diagramů, které UML obsahuje. Podrobněji je zde popsán způsobe reprezentace tříd v diagramu, používaný způsob zápisu atributů. Následuje přehled vztahů mezi třídami, jsou popsány vztahy asociace, agregace, kompozice a dědičnosti. Tuto úvodní část uzavírá popis asociační třídy.
Poněkud zavádějící je zde vysvětlení důvodu, proč používáme asociační třídy. Uvádí se zde příklad, kdy  v zaměstnaneckém vztahu mezi firmou a osobou není bez asociační třídy řešitelný případ, jestliže stejná osoba pracuje ve více firmách. Ve skutečnosti tento případ je řešitelný umístěním potřebných atributů do třídy Firma. Důvod, proč používáme asociační třídu je, že je to výhodnější řešení.
V následující kapitole je přehled existujících systémů pro návrh a sestavení UML diagramů. Jsou zde zhodnoceny jejich funkce a možnosti praktického využití.
Další, 5. kapitola je programátorská dokumentace. Tato kapitola je poměrně rozsáhlá. Je v ní diagram případů užití a diagram tříd aplikace. Za nimi následuje přehled jednotlivých tříd aplikace spolu s výčtem jejich stěžejních členů.
Po formální stránce je práce napsána pečlivě, je přehledně členěna, gramatické nedostatky jsou v ní jen velmi ojediněle.
Při testování vlastní aplikace její spuštění a založení projektu proběhlo hladce. Při sestavovaní zkušebních diagramů tříd se objevily určité její nedostatky:
•	Funkce Přizpůsobit velikost obsahu nepracuje dobře. Část diagramu třídu s názvem třídy je zbytečně velká. Šířka je někdy zbytečně velká, někdy naopak je malá, čímž obsah mírně přesahuje hranici diagramu.
•	Při zadání parametru operace, který má násobnost větší než 1 se objevuje zpráva o chybě Název datového typu nesmí obsahovat mezery.
•	Při zadání směru argumentu operace (například slovem in označujícím, že argument je vstupní) se objevuje zpráva o chybě Název argumentu musí být tvořen pouze z alfanumerických znaků a nesmí obsahovat mezery nebo zpráva Název datového typu nesmí obsahovat mezery.
•	U atributu lze jako výchozí hodnotu zadat cokoliv, tedy i hodnotu, která neodpovídá datovému typu atributu.
•	Nevhodně je řešeno zobrazení vztahů mezi třídami. Má-li třída více vztahů s jinými třídami a tyto jsou na stejné straně této třídy, zakreslení vztahů se překrývá, čímž nelze poznat o jaké vztahy jde. Například na následujícím diagramu mezi třídami A a B je vztah asociace, mezi třídami A a C je vztah agregace. Z diagramu to ale nelze zjistit.

•	Při stanovení navigace mezi asociovanými třídami, která je jednosměrná, lze tuto navigaci stanovit jen v tom směru, ve kterém byl kreslen vztah asociace.
•	Jméno asociace je někdy nevhodně umístěno tak, že je přes čáru, kterou je asociace zakreslena, jak ukazuje následující obrázek.

Další funkce aplikace - generování zdrojového kódu tříd z jejich diagramu a export diagramu do obrázku - pracovaly bez problémů.
Součástí aplikace je nápověda, ve které jsou stručně popsány jednotlivé funkce aplikace.   

Navrhuji hodnocení velmi dobře.

Datum 22.1.2012

.................................................
Podpis