Bachelor's Thesis

Support for User-Defined Functions in a Visual Programming Language

Final Thesis 2.31 MB

Author of thesis: Bc. Ivan Chodák

Acad. year: 2024/2025

Supervisor: Ing. Petr John

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

Abstract:

This thesis explores the design and implementation of user-defined functions (UDFs) in a visual programming language (VPL) within the context of the Internet of Things (IoT) and Smart Cities.
It is built on top of an existing Pocketix vpl-editor tool and integrated into the RIoT system.
The primary objective is to enable non-technical users to create, manage, and execute custom procedures, allowing for control of various IoT devices in smart environments intuitively.
By analysing the implementation against existing frameworks like Blockly and Node-RED, the thesis identifies key requirements for accessibility, flexibility, and seamless user interaction to accommodate them.
The proposed solution is integrated into the RIoT system, providing a user-friendly way for creating reusable workflows through
a visual editor.
The resulting framework promotes logical encapsulation, scalability, and efficient interaction via different IoT devices in the environment, empowering users to define reusable procedures with ease.
These user procedures can be executed via the RIoT interpret into a Go code, suitable for IoT environments.

Keywords:

visual programming languages, IoT, Smart Cities, end–user defined functions

Date of defence

19.06.2025

Result of the defence

Defended (thesis was successfully defended)

znamkaBznamka

Grading

B

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 B.

Topics for thesis defence

  1. Proč definice procedur nezohledňují typy zařízení? Jak složité by bylo něco takového zajistit?
  2. S jakými IOT zařízeními, a v jakých sítích, jde systém použít?

Language of thesis

English

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. Dr. Ing. Dušan Kolář (předseda)
doc. Ing. Vladimír Janoušek, Ph.D. (člen)
Ing. Radek Hranický, Ph.D. (člen)
doc. Ing. Jan Kořenek, Ph.D. (člen)
Ing. Zdeněk Materna, Ph.D. (člen)

Supervisor’s report
Ing. Petr John

Student pracoval v průběhu projektu samostatně a prokázal schopnost rychle pochopit širokou škálu technologií a netriviálních konceptů. Výsledné řešení umožňuje uživatelům přenášet procedury mezi programy, a tím zjednodušuje použití existujícího grafického editoru. Student také integroval své řešení s různými existujícími kódovými projekty, včetně interpretu, backendové platformy a frontendového systému. Doporučuji udělit studentovi známku B.

Evaluation criteria Verbal classification
Informace k zadání

Cílem této bakalářské práce bylo rozšířit stávající vizuální programovací editor a konkrétní platformu o opakovaně použitelné funkce vyvinuté koncovým uživatelem, které umožňují abstrakci zařízení na základě jeho typu. Za tímto účelem student nejprve prozkoumal oblast internetu věcí a související koncepty jako jsou 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 techniky vizuálního programování. Následovala analýza aktuálně využívaných přístupů k vytváření vlastních uživatelsky definovaných funkcí v nástrojích vizuálního programování pro IoT, stávajícího editoru, backendové platformy RIoT a interpretu pocketix-go. Úspěšné splnění práce vyžadovalo, aby se student seznámil s řadou technologií, zahrnující TypeScript a Lit.js na frontendové straně a Golang, GraphQL a RabbitMQ na backendové straně. Student poté navrhl a implementoval řešení na obou platformách. Zadání hodnotím jako průměrně obtížné a student úspěšně splnil všechny požadavky.

Práce s literaturou

Student prostudoval doporučenou literaturu a sám aktivně vyhledával další relavatní 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 v zimním semestru a každý týden v letním semestru. Student také často informovalprostřednictvím zpráv o dalším vývoji a poskytoval podrobné zprávy o stavu práce. Student řádně plnil zadané úkoly a práce postupovala přijatelným tempem.

Aktivita při dokončování

Student potřeboval týdenní odklad na dokončení a řádnou konzultaci práce i jejího provedení. Na druhou stranu mělo toto prodloužení pozitivní dopad na kvalitu práce.

Publikační činnost, ocenění

Student vycházel z předchozího výzkumu a poznatky z testování jeho řešení poslouží jako podklad pro další úpravy editoru.

Points proposed by supervisor: 82

Grade proposed by supervisor: B

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

Bakalářská práce obsahuje některé výše uvedené nedostatky. Výstupy jsou nicméně využitelné ve výzkumném projektu. Navrhuji hodnocení stupněm B.

Evaluation criteria Verbal classification Points
Náročnost zadání

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

Cílem práce bylo rozšířit vizuální jazyk projektu Pocketix o podporu uživatelsky definovaných procedur a integrovat jej do systému RIoT pro řízení IoT zařízení v prostředí chytrých měst. Student navázal na předchozí bakalářské práce [1, 2], které dále rozvinul o podporu procedur. Rozšíření vizuálního editoru implementoval v jazyce TypeScript s využitím knihovny Lit, rozšíření serverové části pak v jazyce Go. 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.
[2] BUREŠ, Michal. Systém pro zpracování dat z chytrých 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.

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

Technická zpráva je rozumně členěná na teoretickou a praktickou část. Teoretická část je informačně hodnotná. Analýza požadavků je diskutována obecně, uvítal bych seznam požadavků. Implementace částečně popisuje návrh.

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

Práce je psána v anglickém jazyce. Jazyková a typografická úprava je kvalitní. Občas se vyskytují překlepy nebo špatné velikosti písmen (např. „Iot“, „Rabbitmq“ nebo „Graphql“). Některé obrázky v kapitole 5 obsahující schémata by mohly být ve vektorech a nepoužívat dekorativní písmo.

85
Realizační výstup

Výstupy se skládají z (1) rozšíření projektu RIoT na serverové a klientské části a (2) úprav vizuálního editoru. Výstupy hodnotím spíše pozitivně. Uživatelské definice procedur nicméně neuvažují typy zařízení, což shledávám jako hlavní nedostatek řešení.

75
Využitelnost výsledků

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

Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Práce s literaturou

Student provedl nadprůměrnou rešerši dostupných odborných zdrojů týkajících se IoT a vizuálního programování.

95
Topics for thesis defence:
  1. Proč definice procedur nezohledňují typy zařízení? Jak složité by bylo něco takového zajistit?
Points proposed by reviewer: 80

Grade proposed by reviewer: B

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