GAVENDA, D. Zpětná extrakce Stateflow diagramu z kódu v jazyce C [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2024.

Posudky

Posudek vedoucího

Fiedor, Jan

Celkově hodnotím práci velmi kladně. Student se vypořádal s obtížným zadáním nadmíru dobře, navíc nad rámec požadavků zadání implementoval transformaci Stateflow diagramu do stejné reprezentace jako při zpětné rekonstrukci z kódu a jednoduchou metodu pro ověřování ekvivalence těchto reprezentací. Kromě toho také připravil věřejnou sadu Stateflow modelů s mnoha variantami různě optimalizovaného kódu generovaného z těchto modelů, jenž lze využít s výhodou nejen pro evaluaci této práce ale i pro další výzkumné účely.

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Informace k zadání Cílem práce bylo navrhnout metodu pro zpětnou rekonstrukci Stateflow diagramu nástroje MATLAB Simulink z kódu v jazyce C, který generuje překladač MATLAB Embeded Coder právě z tohoto typu digramu. Cílem zpětné rekonstrukce je vytvořit interní reprezentaci Stateflow diagramu vhodnou pro ověřování ekvivalence. Kromě návrhnu interní reprezentace a metody pro zpětnou rekonstrukci kódu implementoval student také transformaci Stateflow diagramu do navržené interní reprezentace a jednoduchou metodu pro ověřování ekvivalence interních reprezentací původního Stateflow diagramu a jeho verze zpětně zrekonstruované z kódu. Zadání tedy hodnotím jako obtížnější. Práce byla vytvořena ve spolupráci se společností Honeywell, kde je nástroj již částečně integrován do interního nástroje pro ověřování funkční ekvivalence mezi modelem a kódem pro účely certifikace.
Práce s literaturou Student využil zdroje informací doporučených vedoucími práce i sám aktivně vyhledával relevantní zdroje informací k řešení diplomové práce. Díky úzkému zaměření práce na oblast certifikace avionických komponent tato práce využívá velmi specifické zdroje informací jako jsou značně rozsáhlé standardy pro oblast avioniky.
Aktivita během řešení, konzultace, komunikace Student byl velmi aktivní během celého řešení práce, návrh i implementaci průběžně konzultoval s technickým vedoucím práce ze společnosti Honeywell, kdy byl vždy připraven a aktivně přicházel s vlastnímy myšlenkami řešení dané problematiky.
Aktivita při dokončování Technická zpráva byla konzultována s vedoucím i technickým vedoucím behěm posledních dvou týdnů před odevzdáním. Student zapracoval několik iterací připomínek, i když jedna či dvě další iterace by technické zprávě prospěly. Zpráva ale obsahuje všechny důležité informace pro pochopení cílů a výsledků práce.
Publikační činnost, ocenění Experimentální verze práce je již integrována do interního nástroje firmy Honeywell pro ověřování ekvivalence modelů a kódu pro účely certifikace, kde pomůže eliminovat potřebu manuálního peer review pro kód generovaný ze Stateflow modelů. Finální verze práce se aktuálně připravuje k integraci. Honeywell i technický vedoucí z firmy Honeywell jsou výsledky práce velmi potěšeni a plánují nadále se studentem spolupracovat na vývoji tohoto nástroje.
Navrhovaná známka
A
Body
90

Posudek oponenta

Smrčka, Aleš

Studen dosáhl dobrého a hlavně v praxi použitelného výsledku a technická zpráva je na velmi dobré úrovni.

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Náročnost zadání Práce zahrnuje spojení oblastí generování zdrojových kódů z modelů systému a statické analýzy zdrojových kódů. Ke splnění cíle bylo potřeba se podrobně seznámit s nástrojem Mathlab Simulink a jeho možnostmi při generování zdrojových kódů, se Stateflow diagramy použitými při vývoji reálných řídicích zařízeních a navržení a implementace nástroje pro zpětné získání modelu v podobě stavových diagramů umožňující jejich porovnání s původním modelem systému.
Rozsah splnění požadavků zadání
Rozsah technické zprávy Technická zpráva má cca 80 normostran textu včetně obrázků.
Prezentační úroveň technické zprávy 80 Technická zpráva obsahuje všechny hlavní části. Analýza dané problematiky a popis nástroje Simulink i jeho dopad na generování kódu jsou obsahově podrobné. Oceňuji bližší prozkoumání důsledků různých optimalizací kódu nástrojem Simulink. Popis vlastní implementace by si zasloužil více detailů s vazbou na zdrojové kódy nebo stuktur v nich použitých. Diplomová práce se zabývá modely zdrojových kódů, a proto by se hodilo využít některé ze standardních diagramů (SysML či UML) i pro popis vlastního přínosu.
Formální úprava technické zprávy 75 Formální úprava je na dobré úrovni. Má však některé nedostatky: V textu je často použita forma: "(ono) se převede/transformuje/přeloží/vygeneruje," ve které není identifikován aktér, tj. kdo je za činnost zodpovědný a jestli je potřeba činnost vykonat nebo ji již nějaký nástroj vykonal. V případě prvních kapitol není rozlišené, jestli se jedná o popis již implementované funkcionality nebo návrhu požadované změny. V případě pozdějších kapitol není jasné, jestli se jedná o popis generovanání kódu, jeho sémantiky nebo operací nad kódem." Autor několikrát ve zprávě popisuje vícekrokové aktivity holým textem namísto čitelné struktury; ideálně (číslovanými) odrážkami s doprovodným obrázkem. Technická zpráva by si zasloužila ještě jeden kontrolní průchod. Obsahuje ojedinělé významové chyby, např. poslední věta druhého odstavce na str. 14 nedává smysl nebo, na stejné stránce, je chyba v posledním řádku: místo "out32 <= 5" má být "in32 <= 5".
Práce s literaturou 89 Použitá literatura je skromná, ale s ohledem na téma práce je výběr v pořádku. Zahrnuje odkazy na standardy související s návrhem a vývojem systémů, použité nástroje a 2 odborné knihy. Autor mohl citovat více zdrojů z oblasti atuomatického generování nebo analýzy zdrojových kódů.
Realizační výstup 90 Technické řešení zahrnuje program v jazyce Java. Řešení mi bylo demonstrováno a je funkční. Zdrojové kódy mají více než 9 tis. řádků kódu a mají logickou strukturu. Nedostatkem je chybějící licence a velmi skromné komentáře (zdrojovým kódům chybí hlavička s autorem). Menší nedostatek: Nástroj se nepovedlo zprovoznit v kontejneru posledního vydání Maven (s Java ver. 21) založeném na distribuci Ubuntu. Řešení však bylo úspěšně demonstrováno na MS Windows.
Využitelnost výsledků Výsledný nástroj má jasné použití v praxi, kde na něj lze navázat při ověřování ekvivalence mezi modely řídicích systémů a jejich zdrojovými kódy generovanými z nich.
Navrhovaná známka
B
Body
85

eVSKP id 156463