bakalářská práce

Vizuální programování IoT zařízení

Text práce 4.9 MB

Autor práce: Bc. Lukáš Podvojský

Ak. rok: 2023/2024

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

Oponent: Ing. Petr John

Abstrakt:

Cílem této práce je poskytnout koncovým uživatelům nástroj vizuálního programování, který zjednoduší proces tvorby programů určených pro zařízení internetu věcí (IoT). Existuje mnoho typů zařízení IoT, která používají různé komunikační protokoly. Nedostatečná standardizace těchto zařízení nutí společnosti vytvářet řešení na míru. Uživatelé pak mají k dispozici předdefinovanou funkcionalitu, kterou lze jen mírně upravit. Jedním z řešení této nedostatečné schopnosti koncových uživatelů přizpůsobit chování zařízení je poskytnout jim větší volnost v definování logiky prostřednictvím konceptu vizuálního programování. Výsledkem této práce je vznik nové knihovny implementující vizuální programovací jazyk a vizuální editor, jehož výstupem je serializovaná podoba programu, která může být následně transformována do jazyka cílových zařízení. Výsledná knihovna je vytvořena pomocí webových technologií a lze ji integrovat do stávajících řešení.

Klíčová slova:

vizuální programování, internet věcí, IoT, vizuální editor, grafický editor, webová aplikace, JavaScript, TypeScript, Lit, webové komponenty

Termín obhajoby

11.06.2024

Výsledek obhajoby

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

znamkaAznamka

Klasifikace

A

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

Otázky k obhajobě

  1. Ve svém řešení podporujete uživatelem definované procedury, které jsou závislé na konkrétním jazyce, což je limitující z pohledu využití v jiných jazycích. Jakým způsobem by bylo možné zlepšit podporu dalších jazyků?
  2. Není Scratch a Blockly to stejné?
  3. Pro jaký typ uživatelů je vaše řešení navrženo?
  4. Jaký je možný postup do budoucna?

Jazyk práce

čeština

Fakulta

Ústav

Studijní program

Informační technologie (BIT)

Složení komise

doc. Ing. František Zbořil, Ph.D. (předseda)
Ing. Libor Polčák, Ph.D. (člen)
doc. Mgr. Lukáš Holík, Ph.D. (člen)
doc. Ing. Vítězslav Beran, Ph.D. (člen)
Ing. Radek Hranický, Ph.D. (člen)

Posudek vedoucího
Ing. Jiří Hynek, Ph.D.

Student ke své práci přistupoval svědomitě. Řešil netriviální téma. Výsledky publikoval na studentské konferenci. Navrhuji hodnocení stupněm A.

Kritérium hodnocení Slovní hodnocení
Informace k zadání

Zadání bakalářské práce vzniklo v návaznosti na výstupy projektu řešeného ve spolupráci s firmou Logimic [1]. Cílem práce bylo navrhnout a implementovat novou verzi vizuálního editoru pro tvorbu jednoduchých programů určených pro chytrá zařízení. Student se musel seznámit s problematikou IoT a principy vizuálního programování. Pro implementaci vizuálního editoru student dále prostudoval knihovnu Lit a jazyky TypeScript, HTML a CSS. Za hlavní přínos oproti výstupům projektu [1] považuji zejména pokročilou podporu tvorby výrazů. Zadání hodnotím jako obtížnější a považuji ho za splněné.

[1] Služby pro systém řízení a monitoringu vody v retenčních nádržích, Logimic, s.r.o., 2022-2023, ukončen, zahájení: 2022-11-01, ukončení: 2023-04-30

Práce s literaturou

Student prostudoval doporučenou literaturu a aktivně si dohledával další zdroje týkající se IoT, vizuálního programování a použitých technologií.

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

Student byl aktivní během celého akademického roku a účastnil se pravidelných online porad.

Aktivita při dokončování

Některé části technické zprávy byly dokončovány na poslední chvíli.

Publikační činnost, ocenění

Dosažené výsledky byly publikovány na studentské konferenci Excel@FIT 2024.

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

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

Posudek oponenta
Ing. Petr John

Pan Podvojský vytvořil novou verzi vizuálního programovacího jazyka a editoru zaměřeného na programování chytrých zařízení koncovým uživatelem. Výsledek je možné za tímto účelem jednoduše integrovat do existujících systémů díky zvolené technologii. Navrhuji hodnocení stupněm A.

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

Stupeň hodnocení: průměrně obtížné zadání

Zadání hodnotím jako průměrně obtížné.

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

Práce má obvyklou strukturu. Nejprve jsou představeny teoretické základy potřebné pro řešení práce, a to problematika internetu věcí (použití chytrých zařízení, používané architektury a používané technologie pro komunikaci a přenos dat) a problematiku vizuálního programování (typy existujících vizuálních jazyků a existující editory). Dále následují kapitoly analýzy, návrhu, implementace a testování. Kapitoly na sebe vhodně navazují, text je pro čtenáře pochopitelný. V některých částech práce se nacházejí vizualizace, které nejsou zcela vysvětleny v textu.

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

Formální úprava technické zprávy je na velmi dobré úrovni.

95
Realizační výstup

Realizační výstup splňuje zadání práce a působí velmi dobrým dojmem. Student implementoval dvě knihovny. První z nich obsahuje typové definice pro práci s jazykem a druhá editor, který je schopný jazyk vizualizovat uživateli přívětivým způsobem v grafickém editoru. Na implementaci knihovny editoru student využil minimalistické knihovny Lit, díky čemuž je možné tuto knihovnu využít v široké škále existujících aplikačních rámců (jako jsou Angular, nebo React) bez nutnosti reimplementace knihovny. Svůj přístup student otestoval s reálnými uživateli. Celkově hodnotím řešení jako velmi propracované.

95
Využitelnost výsledků

Práce navazuje na projekt Služby pro systém řízení a monitoringu vody v retenčních nádržích, objednaný společností Logimic, s.r.o. Student se inspiroval existujícím návrhem, implementoval nové knihovny a upravil předchozí modely jazyků. Výstup tak hodnotím jako velmi povedený a využitelný jak v praxi, tak jako základ pro další výzkum.

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

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

Práce splňuje zadání, a to ve všech bodech.

Rozsah technické zprávy

Stupeň hodnocení: je v obvyklém rozmezí

Práce je v typickém rozsahu pro bakalářskou práci.

Práce s literaturou

Student cituje 35 zdrojů, které se skládají převážně z vědeckých článků a knižních publikací. Zvolené zdroje vhodně pokrývají popisovanou problematiku.

95
Otázky k obhajobě:
  1. Ve svém řešení podporujete uživatelem definované procedury, které jsou závislé na konkrétním jazyce, což je limitující z pohledu využití v jiných jazycích. Jakým způsobem by bylo možné zlepšit podporu dalších jazyků?
Výsledný počet bodů navržený oponentem: 95

Známka navržená oponentem: A

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