Master's Thesis

Visual Programming Language Evaluation Simulator

Final Thesis 3.78 MB

Author of thesis: Ing. Filip Štolfa

Acad. year: 2024/2025

Supervisor: Ing. Petr John

Reviewer: Ing. Jiří Hynek, Ph.D.

Abstract:

As the popularity and number of smart devices grows, so does the need for robust tooling aimed at novice and experienced users alike, allowing them to utilize their devices to their full potential. Users of IoT systems create user defined programs to connect their devices into a useful smart system. This master's thesis deals with creating a user-friendly debugger and simulator for a visual programming language, which enables end users to test and better understand their programs using visual cues. It focuses especially on how different programs interact with each other and how they affect devices in the system. The goal of this thesis is to design and implement a library for parsing, evaluating and debugging user defined programs inside a simulated environment, to prevent potential harm of running faulty programs on real devices. The library also contains visual components, which can be used to build a responsive user interface for the underlying debugger and simulator. An example application is built to showcase the capabilities of the implemented solution.

Keywords:

debugger, simulator, IoT, visual programming, smart devices, TypeScript, Lit, responsive design

Date of defence

24.06.2025

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

Process of defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A.

Topics for thesis defence

  1. Mohou nastat zacyklení programů z důvodu automatických triggers? Pokud ano, jak by bylo možné tyto situace vhodně ošetřit.
  2. Je možné simulovat doby běhu spouštěných programů?
  3. Bylo by možné vhodně vizualizovat vazby mezi programy?
  4. Kdo je potenciálnim zákazníkem daného řešení?
  5. Měl jste při vývoji a návrhu feedback i od uživatelů?

Language of thesis

English

Faculty

Department

Study programme

Information Technology and Artificial Intelligence (MITAI)

Specialization

Machine Learning (NMAL)

Composition of Committee

prof. Dr. Ing. Jan Černocký (předseda)
doc. Ing. Lukáš Burget, Ph.D. (člen)
doc. Ing. Vladimír Janoušek, Ph.D. (člen)
Ing. Michal Hradiš, Ph.D. (člen)
Ing. Jaroslav Rozman, Ph.D. (člen)
Ing. František Grézl, Ph.D. (člen)

Supervisor’s report
Ing. Petr John

Student pracoval samostatně a v průběhu projektu prokázal důkladný a pečlivý přístup. Výsledkem je velmi kvalitně provedené řešení, které poskytuje vizuální ladicí program a simulátor pro automatizaci IoT jako samostatnou a nezávislou platformu. Navrhuji hodnocení stupněm A.

Evaluation criteria Verbal classification
Informace k zadání

Cílem této diplomové práce bylo rozšířit stávající vizuální programovací editor o opakovaně použitelný vizuální simulátor a nástroj pro ladění (debugger), který by umožnil i ne-technickým uživatelům testovat své automatizace v prostředí internetu věcí (IoT). Aby tohoto student dosáhl, prozkoumal nejprve oblast IoT a související zastřešující koncepty, jako jsou chytrá města (Smart Cities), komunikační technologie, architektury a případy použití takových zařízení. Pro lepší pochopení dostupných přístupů a interakcí pak student potřeboval prostudovat současné přístupy k vývoji pro koncové uživatele, od programování spouštěcích akcí až po vizuální techniky programování. Následovala analýza aktuálně využívaných přístupů k ladění a simulaci jak obecně, tak v oblasti IoT. Poté student analyzoval stávající editor a stanovil požadavky na simulátor i debugger. Student se musel seznámit s technologiemi TypeScript a Lit.js. Student poté navrhl a implementoval samostatnou knihovnu, která poskytuje API pro integraci jak s vybraným editorem, tak s jakýmkoliv jiným editorem implementujícím toto API a využívajícím stejnou verzi jazyka. Zadání hodnotím jako obtížnější a student úspěšně splnil všechny jeho body.

Aktivita při dokončování

Práce byla dokončena s dostatečným předstihem, aby mohla být otestována a nasazena. Dále byla také prezentována v IoT společnosti Logimic.

Publikační činnost, ocenění

Student vycházel z předchozího výzkumu a jeho práce poslouží jako podklad pro další výzkum a následnou vědeckou publikaci.

Práce s literaturou

Student prostudoval doporučenou literaturu a aktivně vyhledával další zdroje.

Aktivita během řešení, konzultace, komunikace

Student komunikoval po celý akademický rok. Konzultace s vedoucím práce probíhaly online přibližně jednou za dva týdny. Student také často komunikoval prostřednictvím zpráv a informoval o pokroku. Student řádně plnil zadané úkoly a práce postupovala dobrým tempem.

Points proposed by supervisor: 98

Grade proposed by supervisor: A

Reviewer’s report
Ing. Jiří Hynek, Ph.D.

Diplomová práce je kvalitní jak po teoretické, tak po praktické stránce. Student významně rozšířil existující vizuální editor, čímž podstatně přispěl k výzkumnému projektu. Navrhuji hodnocení stupněm A.

Evaluation criteria Verbal classification Points
Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Prezentační úroveň technické zprávy

Technická zpráva je členěna vhodně na teoretickou a praktickou část. Kapitoly na sebe navazují. Vytkl bych pouze nedostatečnou analýzu požadavků na nové řešení (bod zadání č. 3).

85
Formální úprava technické zprávy

Práce je po jazykové a typografické stránce na vysoké úrovni. Obrázky jsou úhledné ve vektorech. Text obsahuje pouze některé zanedbatelné nedostatky (špatné uvozovky a pomlčky).

90
Práce s literaturou

Student provedl nadprůměrnou rešerši odborných publikací týkajících se dané problematiky.

95
Realizační výstup

Realizační výstup je na vysoké úrovni. Byl implementovaný interpret jazyka Pocketix spolu s krokovacím nástrojem. Dále byl implementován simulátor událostí, přičemž všechny nástroje jsou uživatelsky vhodně integrované pro zlepšení použitelnosti celého prostředí, mimo jiné i pro mobilní telefony. Provedení hodnotím velmi kladně.

95
Využitelnost výsledků

Výstupy jsou využitelné v rámci výzkumného projektu Pocketix.

Náročnost zadání

Evaluation level: obtížnější zadání

Cílem práce bylo rozšířit vizuální editor projektu Pocketix o podporu krokování programů a simulací událostí vznikající na chytrých zařízeních. Student navázal na předchozí bakalářskou práci implementující základní vizuální editor [1] a významně ji rozšířil o interpret programů, debugger a simulátor. Pro tyto účely musel důkladně prostudovat principy tvorby takovýchto nástrojů. Rozšíření vizuálního editoru implementoval v jazyce TypeScript s využitím knihovny Lit. Zadání hodnotím jako obtížnější.

[1] PODVOJSKÝ, Lukáš. Vizuální programování IoT zařízení. Brno, 2024. Bakalářská práce. Vysoké učení technické v Brně, Fakulta informačních technologií. Vedoucí práce Ing. Jiří Hynek, Ph.D.

Topics for thesis defence:
  1. Mohou nastat zacyklení programů z důvodu automatických triggers? Pokud ano, jak by bylo možné tyto situace vhodně ošetřit.
  2. Bylo by možné vhodně vizualizovat vazby mezi programy?
  3. Je možné simulovat doby běhu spouštěných programů?
Points proposed by reviewer: 95

Grade proposed by reviewer: A

Responsibility: Mgr. et Mgr. Hana Odstrčilová