MINÁŘOVÁ, A. Návrh a implementace programu pro převod UML struktur do programovacího jazyka [online]. Brno: Vysoké učení technické v Brně. Fakulta strojního inženýrství. 2017.
Předložená diplomová práce plně pokrývá své zadání a v některých ohledech ho i překračuje. Jako příklad funkcionality nad rámec zadání je možné zmínit zapojení výsledného programu do pracovního workflow pro automatické generování kódu na základě diagramů, které jsou součástí dokumentace projektu. Rešerní část podrobně zkoumá aktualní stav na trhu z pohledu komerčního řešení i open source aplikací. Implementace v jazyce Python je dostatečně obecná, aby bylo možné program dále rozšiřovat o další funkce a o podporu jak dalších jazyků, tak i dialektů databázových systémů. Z hlediska členění zdrojového kódu jsou použity prefixy souborů, které jsou v implementaci zbytečné, ale čtenáři diplomové práce pomáhají lépe se orientovat. V typografii by bylo vhodné dělit slova na více řádků, což by zabránilo vzniku velkých mezer mezi slovy, jako je patrné v nadpisu kapitoly 4. Práci doporučuji k obhajobě a hodnotím ji známkou A/výborně.
Kritérium | Známka | Body | Slovní hodnocení |
---|---|---|---|
Splnění požadavků a cílů zadání | A | ||
Postup a rozsah řešení, adekvátnost použitých metod | A | ||
Vlastní přínos a originalita | A | ||
Schopnost interpretovat dosažené vysledky a vyvozovat z nich závěry | A | ||
Využitelnost výsledků v praxi nebo teorii | A | ||
Logické uspořádání práce a formální náležitosti | B | ||
Grafická, stylistická úprava a pravopis | B | ||
Práce s literaturou včetně citací | A | ||
Samostatnost studenta při zpracování tématu | A |
Cílem diplomové práce byl vývoj software, který by byl schopen převádět UML diagramy na zdrojový kód objektově orientovaných jazyků, nebo na SQL kód definující databázové schema. Přínos práce tkví v usnadnění přechodu mezi fází návrhu a fází realizace u softwarových projektů. Kvalitně provedená rešerše mapuje situaci v odvětví generátorů kódu a ukazuje, že dosud neexistoval kvalitní projekt, který by cíle práce mohl splňovat v uspokojivé míře. Text práce je srozumitelný, vytknout mu lze pouze ojedinělé typografické chyby a překlepy, pár obrázků má nízkou kvalitu. Vlastní program je napsaný v Pythonu. Je nutno vytknout nerespektování normy PEP8, absenci použití Python idiomů (např. kontextových manažerů) a drobné nedokonalosti kódu, které by bylo možné snadno napravit pomocí nástrojů pro statickou analýzu. Mínusem je také absence testů a skriptu setup.py, který by usnadnil použití softwaru ostatními uživateli. Naopak lze vyzdvihnout dobrou organizaci kódu do souborů a solidní strukturu kódu - funkce a metody jsou poměrně stručné a kód je díky tomu pochopitelný i bez komentářů. K tomu, aby byl projekt dobře použitelný, je třeba ještě odvést práci na integraci do ekosystému Pythonu a na napsání testů, které jsou nutným základem pro jakékoli rozšiřování funkčnosti tohoto programu. Cíle práce se podařilo dosáhnout - software plní funkci a je navržený způsobem, který umožňuje jeho další rozšiřování a kód je v porovnání s ostatními open-source projekty nadprůměrně kvalitní.
Kritérium | Známka | Body | Slovní hodnocení |
---|---|---|---|
Splnění požadavků a cílů zadání | A | ||
Postup a rozsah řešení, adekvátnost použitých metod | C | ||
Vlastní přínos a originalita | A | ||
Schopnost interpretovat dosaž. vysledky a vyvozovat z nich závěry | A | ||
Využitelnost výsledků v praxi nebo teorii | B | ||
Logické uspořádání práce a formální náležitosti | A | ||
Grafická, stylistická úprava a pravopis | B | ||
Práce s literaturou včetně citací | A |
eVSKP id 103717