diplomová práce

Simulátor vyhodnocení visuálního programovacího jazyka

Text práce 3.78 MB

Autor práce: Ing. Filip Štolfa

Ak. rok: 2024/2025

Vedoucí: Ing. Petr John

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

Abstrakt:

S rostoucí popularitou a počtem chytrých zařízení roste i potřeba kvalitních nástrojů určených pro začínající i zkušené uživatele, které jim umožní využít plný potenciál jejich zařízení. Uživatelé systémů IoT vytváří uživatelsky definované programy, které propojují jejich zařízení do užitečného chytrého systému. Tato diplomová práce se zabývá vytvořením uživatelsky přívětivého debuggeru a simulátoru pro vizuální programovací jazyk, který koncovým uživatelům umožní testovat a lépe pochopit jejich programy pomocí vizuálních nápověd. Zaměřuje se zejména na objasnění interakce programů a na jejich vliv na zařízení v systému. Cílem práce bylo navrhnout a implementovat knihovnu pro zpracování, vyhodnocování a ladění uživatelsky definovaných programů v simulovaném prostředí, čímž lze předejít škodám, která mohou nastat spouštěním chybných programů na reálných zařízeních. Knihovna obsahuje také vizuální komponenty, ze kterých je možné vytvořit responzivní uživatelské rozhraní pro implementovaný debugger a simulátor. Pro demonstraci implementovaného řešení byla sestavena ukázková aplikace.

Klíčová slova:

debugger, simulátor, IoT, vizuální programování, chytrá zařízení, TypeScript, Lit, responzivní design

Termín obhajoby

24.06.2025

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. 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ů?

Jazyk práce

angličtina

Fakulta

Ústav

Studijní program

Informační technologie a umělá inteligence (MITAI)

Specializace

Strojové učení (NMAL)

Složení komise

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)

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

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

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

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

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

Kritérium hodnocení Slovní hodnocení Body
Rozsah splnění požadavků zadání

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

Rozsah technické zprávy

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

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

Otázky k obhajobě:
  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ů?
Výsledný počet bodů navržený oponentem: 95

Známka navržená oponentem: A

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