diplomová práce

Návrh a implementace programu pro převod UML struktur do programovacího jazyka

Text práce 1.77 MB Příloha 68.29 kB

Autor práce: Ing. Alice Minářová

Ak. rok: 2016/2017

Vedoucí: Ing. Petr Jindra

Oponent: Ing. Matěj Týč, Ph.D.

Abstrakt:

Tato práce se zabývá problematikou UML diagramů na kód. Nejprve jsou analyzována existující řešení na poli této problematiky a na základě získaných zjištění je navržen a implementován vlastní nástroj. Tento přijímá UML diagramy tříd a databázové modely z volně dostupného modelovacího prostředí Dia, které každý dokáže převést do tří cílových jazyků. Stěžejní vlastností tohoto nástroje je možnost snadno modulárně přidávat další cílové jazyky.

Klíčová slova:

Diagramy UML, relační databázový model, převod diagramů na kód

Termín obhajoby

15.6.2017

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znakmkaAznamka

Klasifikace

A

Průběh obhajoby

Studentka seznámila členy komise s výsledky své DP. Popsala cíle a představila základní pojmy. Následně zodpověla dotaz oponenta. RNDr. Kuba - převody mezi jazyky (diagramy)

Jazyk práce

čeština

Fakulta

Ústav

Studijní obor

Aplikovaná informatika a řízení (M-AIŘ)

Složení komise

prof. Ing. Miluše Vítečková, CSc. (předseda)
RNDr. Martin Kuba, Ph.D. (místopředseda)
prof. RNDr. Ing. Jiří Šťastný, CSc. (člen)
doc. Ing. Radomil Matoušek, Ph.D. (člen)
doc. Ing. Ivan Švarc, CSc. (člen)
doc. Ing. Václav Jirsík, CSc. (člen)

Posudek vedoucího
Ing. Petr Jindra

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 hodnocení Známka
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

Známka navržená vedoucím: A

Posudek oponenta
Ing. Matěj Týč, Ph.D.

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 hodnocení Známka
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

Známka navržená oponentem: B