bakalářská práce

Textový editor založený na blocích pro web

Text práce 1.83 MB Příloha 4.55 MB

Autor práce: Bc. Milan Takáč

Ak. rok: 2024/2025

Vedoucí: Ing. Jan Fiedor, Ph.D.

Oponent: Ing. Bohuslav Křena, Ph.D.

Abstrakt:

Cílem této práce je navrhnout a implementovat editor, který bude zjednodušovat psaní systémových požadavků. Řešením je vytvoření blokového textového editoru, který bude vizualizovat pojmy textu jako bloky. Editor byl implementován jako konfigurovatelná webová komponenta se dvěma režimy editoru - blokovým a textovým. Uživatel může mezi režimy editoru přepínat, přičemž blokový režim je primární. V blokovém režimu uživatel vidí text vizualizovaný jako bloky a může reorganizovat jednotlivé části textu. Kapitola Evaluation zobrazuje typické interakce uživatele s editorem.

Klíčová slova:

inženýrství požadavků, editor založený na blocích, React, editor požadavků, EARS, zvýrazňování syntaxe

Termín obhajoby

17.06.2025

Výsledek obhajoby

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

znamkaCznamka

Klasifikace

C

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

Otázky k obhajobě

  1. V podkapitole 2.1 jste spojil (převzal z [6]) pojmy verifikace a validace se statickým respektive dynamickým testováním. Opravdu není možné použít dynamické ověřování (testování) pro verifikaci softwaru? A naopak, nepoužívá se statické ověřování i pro validaci?
  2. Existují nástroje umožňující přepínání mezi editory?

Jazyk práce

angličtina

Fakulta

Ústav

Studijní program

Informační technologie (BIT)

Složení komise

doc. RNDr. Milan Češka, Ph.D. (předseda)
Ing. Radek Kočí, Ph.D. (člen)
Ing. Šárka Květoňová, Ph.D. (člen)
Ing. David Bařina, Ph.D. (člen)
Ing. Marta Jaroš, Ph.D. (člen)

Posudek vedoucího
Ing. Jan Fiedor, Ph.D.

Celkově hodnotím práci velmi kladně. Technická zpráva je sice i přes několik iterací přípomínek trochu slabší, kompenzuje ji ovšem dobrý realizační výstup. Vytvořená komponenta je plně funkční a umožňuje evaluaci hybridních metod specifikace požadavků kombinujících textovou a grafickou reprezentaci. Pro tyto účely bude také využita společností Honeywell.

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

Cílem práce bylo vytvořit konfigurovatelnou komponentu pro editaci textu reprezentovaného sekvencí bloků, jenž lze integrovat do uživatelských rozhraní nástrojů pro vývoj systémů. Primární využití takovéto komponenty je pro specifikaci požadavků svázaných s modely vyvíjených systémů, kde tyto modely reprezentují část termů (bloků), ze kterých se požadavky skládají, a zbylé bloky jsou obvykle klíčová slova šablon a gramatik definujících strukturu těchto požadavků.

Vytvořená komponenta umožňuje experimentování a usnadňuje evaluaci hybridních metod specifikace požadavků kombinujících textovou a grafickou reprezentaci a podporující plynulý přechod mezi nimi. Práci hodnotím jako náročnější, jelikož vyžaduje od studenta přicházet s řešeními problémů, na které v typických projektech nenarazí a kde se tedy nemůže opírat o znalosti a informace z literatury či jiných zdrojů.

Práce s literaturou

Student využil jak doporučenou literaturu, tak si samostatně vyhledával další relevantní a potřebné zdroje.

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

Student byl aktivní a samostatný. Práci pravidelně konzultoval a přicházel s vlastními myšlenkami, jak řešit problémy, na které narazil. Zapracoval také veškeré připomínky na funkcionalitu a vizuální stránku komponenty od vedoucího práce.

Aktivita při dokončování

Student začal sepisovat text práce v dostatečném předstihu, text práce byl několikrát konzultován a všechny připomínky byly zapracovány.

Publikační činnost, ocenění

Práce bude využita společností Honeywell pro účely experimentování a evaluace hybridních metod specifikace požadavků kombinujících textovou a grafickou reprezentaci. Plánuje se také integrace této komponenty do nástroje SysON, jenž slouží pro návrh systémů s využitím jazyka SysMLv2 a kde lze s výhodou využít vytvořenou komponentu pro specifikaci požadavků svázaných s těmito modely. Toto je velmi častý případ užití a jazyk SysMLv2 dokonce definuje uložení takovýchto požadavků v rámci samotného modelu.

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

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

Jak prototyp editoru, tak technickou zprávu považuji za dobré, byť obojí by se dalo vylepšit, jak je uvedeno v předchozích bodech. Student však odvedl kus užitečné práce, čímž prokázal schopnosti očekávané od bakaláře.

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

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

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

Struktura technické zprávy je vcelku logická, byť důsledně nesleduje etapy životního cyklu softwaru. Například požadavky jsou diskutovány v kapitole 4 zaměřené podle názvu na návrh, přičemž použitelné technologie jsou probrány již v kapitole 3, tedy dříve než požadavky. Nekonzistence v etapách vývoje softwaru se objevuje i v samotném textu práce, konkrétně v podkapitolách 2.1 až 2.4.

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

Práce by si zasloužila ještě jednou přečíst a odstranit evidentní chyby: namátkou na straně 8 zdvojený text "that can be used for this purpose" nebo chybné vysvětlení zkratky UML ("United Modeling Language"), na straně 20 odkazy na neexistující obrázek 1.1 (správně měl být odkaz na obrázek 4.1) nebo na straně 38 nezvyklá sazba uvozovek okolo slova "sanitation". Obrázek 2.2 by jistě bylo vhodnější překreslit do vektorové grafiky a přetékání textu za pravý okraj při zarovnání do bloku celkovému dojmu také nepřidá. Frekvence chyb ale není vysoká, takže čtenáře příliš neruší.

75
Realizační výstup

Vytvořený editor lze považovat za zdařilý prototyp, který však ještě není plně připraven pro praktické nasazení. Uživatel by jistě rád označoval bloky jenom myší nebo používal standardní klávesy či klávesové zkratky (např. Del resp. Ctrl+X pro smazání resp. vyjmutí označených bloků). Hodila by se i klávesová zkratka pro přepnutí textového a blokového módu. Bylo by potřeba odstranit i implementační chyby (často nefunguje šipka nahoru ani rozpoznávání bloků s více slovy; v některých situacích nedokáže editor označené bloky vložit na požadované místo, jen je neustále přesouvá, až je nakonec ztratí zcela; přepnutím mezi módy editoru se ztratí uživatelsky definované bloky). Implementaci editoru student určitě věnoval dost času a problémy, se kterými se potýkal, nebyly triviální. Řada funkcí editoru pracuje tak, jak bych očekával, a oceňuji, že se mi editor podařilo zprovoznit na svém počítači za pár minut. Za pozitivní také považuji to, že se editor choval stejně nezávisle na použitém prohlížeči (Firefox, MS Edge, Google Chrome).

75
Využitelnost výsledků

Práce ověřila koncept blokového editoru, na který lze navázat.

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

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

Rozsah technické zprávy

Stupeň hodnocení: splňuje pouze minimální požadavky

Technická zpráva má přibližně 49 normostran, s rezervou tedy splňuje minimální požadavky. Všechny texty mají v práci svůj smysl. V některých místech by čtenář ocenil více informací, aby lépe pochopil provázanost jednotlivých myšlenek. Také by bylo vhodné udělat skutečné vyhodnocení vytvořeného nástroje. Kapitola 6 obsahuje pouze popis funkčnosti a omezení vytvořeného nástroje, očekával bych však vyhodnocení uživatelských zkušeností, výkonnosti editoru na rozsáhlejších modelech nebo ověření editoru v různých webových prohlížečích.

Práce s literaturou

Většina studijních pramenů je vybrána vhodně. Výhradu mám ke kapitole 2, kde student spojil informace z různých zdrojů (včetně nespolehlivých jako GeeksforGeeks) do nekonzistentního celku. Na smíchání pojmů verifikace a validace se statickým a dynamickým ověřování (testováním) softwaru upozorním v otázce k obhajobě. U řady internetových zdrojů v seznamu literatury není uvedeno datum navštívení a zjištění data poslední změny internetového zdroje mohlo být věnováno větší úsilí.

65
Otázky k obhajobě:
  1. V podkapitole 2.1 jste spojil (převzal z [6]) pojmy verifikace a validace se statickým respektive dynamickým testováním. Opravdu není možné použít dynamické ověřování (testování) pro verifikaci softwaru? A naopak, nepoužívá se statické ověřování i pro validaci?
Výsledný počet bodů navržený oponentem: 72

Známka navržená oponentem: C

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