bakalářská práce

Podpora uživatelsky definovaných funkcí ve Visuálním Programovacím Jazyce

Text práce 2.31 MB

Autor práce: Bc. Ivan Chodák

Ak. rok: 2024/2025

Vedoucí: Ing. Petr John

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

Abstrakt:

Táto práca sa zaoberá návrhom a implementáciou užívateľsky definovaných funkcií (UDF) vo vizuálnom programovacom jazyku (VPL) v kontexte Internetu vecí (IoT) a inteligentných miest.
Stavia na existujúcom Pocketix vizuálnom editore a je integrovaná do RIoT systému.
Hlavným cieľom je umožniť technicky nezdatným užívateľom intuitívne vytvárať, spravovať a využívať vlastné procedúry spravujúce a ovládajúce IoT zariadenia v múdrych ekosystémoch.
Analýzou existujúcej implementácie v kontraste voči existujúcim systémom, ako sú Blockly a Node-RED, identifikuje kľúčové požiadavky na prístupnosť, flexibilitu a plynulú interakciu pre užívateľa.
Navrhované riešenie je integrované do systému RIoT a poskytuje užívateľsky prívetivý spôsob pre na vytváranie opakovane použiteľných procedúr prostredníctvom vizuálneho editoru.
Výsledné riešenie podporuje logickú enkapsuláciu, škálovateľnosť a efektívnu interakciu so zariadeniami IoT, čím umožňuje používateľom jednoducho definovať znova použitelné procedúry.
Tieto užívateľské procedúry môžu byť spustené za pomoci RIoT interpretu v Go kóde, ktorý je vhodný pre prácu v múdrych
prostrediach.

Klíčová slova:

vizuálne programovacie jazyky, IoT, inteligentné mestá, užívateľsky definované funkcie

Termín obhajoby

19.06.2025

Výsledek obhajoby

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

znamkaBznamka

Klasifikace

B

Průběh obhajoby

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.

Otázky k obhajobě

  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?

Jazyk práce

angličtina

Fakulta

Ústav

Studijní program

Informační technologie (BIT)

Složení komise

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)

Posudek vedoucího
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.

Kritérium hodnocení Slovní hodnocení
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.

Výsledný počet bodů navržený vedoucím: 82

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

Posudek oponenta
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.

Kritérium hodnocení Slovní hodnocení Body
Náročnost zadání

Stupeň hodnocení: 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í

Stupeň hodnocení: zadání splněno

Rozsah technické zprávy

Stupeň hodnocení: 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
Otázky k obhajobě:
  1. Proč definice procedur nezohledňují typy zařízení? Jak složité by bylo něco takového zajistit?
Výsledný počet bodů navržený oponentem: 80

Známka navržená oponentem: B

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová