Master's Thesis

Design and implementation of program for transformation of UML structures to programming language

Final Thesis 1.77 MB Appendix 68.29 kB

Author of thesis: Ing. Alice Minářová

Acad. year: 2016/2017

Supervisor: Ing. Petr Jindra

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

Abstract:

This work deals with the problematics of conversion of UML diagrams to code. Initially, existing solutions in this field are analyzed. Based on the gained findings, a new tool is designed and implemened. It accepts UML class diagrams and database models from the free diagramming environment Dia and for each of these offers three target languages. The key feature of this tool is its modular design allowing new target languages to be added easily.

Keywords:

UML diagrams, relational database model, diagram to code conversion

Date of defence

15.6.2017

Result of the defence

Defended (thesis was successfully defended)

znakmkaAznamka

Grade

A

Process of defence

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)

Language of thesis

Czech

Faculty

Department

Study field

Applied Computer Science and Control

Composition of Committee

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)

Supervisor’s report
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ě.
Evaluation criteria Mark
Fulfilment of requirements and objectives of assignment A
Working process, extent and suitability of applied methods A
Scholarly contribution and originality A
Ability to interpret achieved results and draw conclusions A
Applicability of results in practice or theory A
Logical arrangement of thesis and its layout B
Grafic layout, used style and language level B
Work with used sources including quotations A
Student's independence when working on the topic A

Grade proposed by supervisor: A

Reviewer’s report
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í.
Evaluation criteria Mark
Fulfilment of requirements and objectives of assignment A
Working process, extent and suitability of applied methods C
Scholarly contribution and originality A
Ability to interpret achieved results and draw conclusions A
Applicability of results in practice or theory B
Logical arrangement of thesis and its layout A
Grafic layout, used style and language level B
Work with used sources including quotations A

Grade proposed by reviewer: B