NOVÁK, A. Softwarový interface pro práci s databázovými soubory [online]. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. 2019.
Cílem bakalářské práce byla kompletní realizace obousměrného softwarového propojení pro práci s databázovými soubory používanými jako testovací soubory ve Zkušební laboratoři CVVOZE. Zadání předpokládalo popis možností programového přístupu k databázím, provedení dokumentace na zkušebně používaných databázových souborů, navržení struktury, vlastní realizaci a otestování softwarového interface. Konzultace probíhaly převážně v prezenční formě. Student pracoval pod mým vedením aktivně a samostatně, návrh a jeho výstupy konzultoval pravidelně, v tomto bodě velmi kladně hodnotím zodpovědný přístup a bezproblémovou komunikaci studenta. Práci na časově náročné realizaci návrhu zjevně věnoval dostatek času, z literatury nastudoval problematiku databází, zvládl vše naprogramovat, projevoval dostatek invence a celkově dovedl návrh do úspěšné realizace i přes objektivní problémy se samotnými databázovými soubory. Demonstraci funkčnosti softwarového interface jsem byl osobně přítomen. Dle průběhu konzultací jsem přesvědčen, že si dobře rozvrhl časový plán realizace návrhu. Přesto se student pravděpodobně dostal do časové tísně s dokumentací své práce, což se projevilo až ve finální fázi konzultací, částečně za to mohou výše uvedené obtíže s databázemi, jejichž verze nemohla být pro úspěšnou realizaci změněna. Finální dokument práce ke konzultaci byl odevzdán relativně velmi pozdě vzhledem k rozsáhlosti potřebných úprav. V tomto bodě jsem na vině i já jako vedoucí, kdy jsem kontroloval pouze postupně přicházející dokumentaci testovacích souborů, a více jsem nezdůrazňoval chybějící části struktury výsledného dokumentu. Zadání bakalářské práce bylo z pohledu vedoucího splněno (což i prokazuje výše zmíněná funkční realizace), avšak mám řadu výhrad k předložené dokumentaci, která bohužel velmi ostře kontrastuje s množstvím studentem vykonané práce. Nejmarkantnější jsou nedostatky v prezentační úrovni, kdy práce čtenáře dostatečně neuvádí do odborného kontextu, a dále řada úkolů zadání, které student zcela jistě provedl (vyhledání dostupných softwarových řešení či otestování funkce interface) nejsou dokumentovány téměř vůbec. Nejkvalitnějšími částmi odevzdané práce je dokumentace testovacích souborů a funkční kód realizace softwarového interface. Tyto součásti jsou z pohledu zadavatele dobře využitelné. Rozsah dokumentace testovacích souborů je pak dle mého názoru dostatečný, vzhledem k softwarové povaze práce. Z hlediska kritérií hodnocení vedoucího si však přes uvedené výtky k odevzdanému dokumentu myslím, že student prokázal dostatečnou úroveň bakalářských schopností a z tohoto důvodu práci doporučuji k obhajobě.
Cílem bakalářské práce bylo vytvoření softwarového propojení k zpřístupnění dat testu na vibračním testovacím zařízení CVVOZE. Zadání bakalářská práce je rozděleno na 4 hlavní části: V první části měl student prozkoumat možnosti přístupu k databázovým souborům ve formátu MS Access. Tuto část se snaží autor splnit v jednostránkové kapitole 2 a v třístránkové kapitole 3. V kapitole 2 (Použité vývojové nástroje) autor popisuje výběr programovacího jazyka, seznamuje čtenáře s tím, co je to databáze a vysvětluje pojem Open Database Conectivity. Ve třetí kapitole (Práce s databází MDB v C++) autor popisuje nastavení programovacího prostředí Visual Studio 2015 krok za krokem. Kapitola dále obsahuje ukázky kódu nutného k vytvoření databázového souboru, připojení se k tomuto souboru, příklady čtení a zápisu do databáze. Kapitola je pojatá jako typický tutoriál programování na internetu napsaný člověkem, který bez hlubšího porozumění věci prezentuje objevenou cestu k cíli. V kapitole 3.2 a 3.3 autor uvádí rozdílná vysvětlení pro proměnnou hstmt typu SQLHSTMT. V kapitole 3.3-3.5 míchá autor popis C++ knihovny pro provádění SQL příkazů a samotných SQL příkazů, čímž dochází k velmi matoucím formulacím. Zde bych doporučil oddělit popis kódu v C++ a SQL a každou část uvést v samostatné kapitole. Po formální stránce čtenáře na první pohled upoutá očividné snímky obrazovky s kódem. Celkově mi k prvnímu bodu zadání chybí porovnání s jinými možnostmi přístupu k daným souborům. Autor našel jednu funkční cestu a tu prezentuje. Splnění bodu je tak diskutabilní. Další 2 body zadání, tj. zpracování dokumentace databázových souborů a návrh struktury vlastního obousměrného SW rozhraní shrnu společně, jelikož to tak učinil i autor práce. Práce prezentuje přístup ke 3 typům souborů. Kapitola 4 popisuje databázový soubor a C++ funkce pro přístup k datům ze souboru pro sinusové vibrace, kapitola 5 pro náhodné vibrace a kapitola 6 pro rázy. Kapitoly jsou stejné strukturou, proto se zde vyjádřím jen ke kapitole 4. Autor opětovně míchá 2 věci dohromady. V tomto případě míchá popis struktury databáze a popis vlastních funkcí a to velmi zmatečně. Kapitola obsahuje mnoho nedostatků. Z formálních připomínek namátkou: • V kapitole 4.1.1 autor zmatečně dělí věty tečkami a tvrzení pak téměř nedávají smysl. • V kapitole 4.1.2, třetí odstavec: "Druhý parametr třída typu Sinus, která slouží jako pomocný nástroj...". - Čtenář až zpětně pochopí, že autor si pro kontrolu dat vytvořil vlastní třídu, která zapouzdřuje data pro uložení do souboru. Pro vybrání dat ze souboru však autor již tuto třídu nepoužívá. K tomu slouží struktury představené v kapitole 4.1.3. • V kapitole 4.1.3 také autor vysvětluje, že přidává na první řádek (v C++ indexovaný indexem 0) prázdné hodnoty, aby bylo první měření uloženo na indexu 1. • Tabulka 4.2 nejprve uvádí vazby mezi proměnnými a jejich významy. V půlce tabulky najednou autor začne vázat očividně nesouvisející prvky, například proměnná TestTime je vysvětlena jako Curve Type, MultichannelControl s Shock Distance apod. • Většina tabulek nemá žádnou vypovídající hodnotu. Například tabulka 4.4 uvádí 4x stejný vzorec pro přepočet. Tabulky 4.5, 4.7-4.14 by každá šla shrnout do jednoho řádku vysvětlení, nebo do 1 řádku ve větší tabulce. • Tabulky 4.18 a 4.20 mají velice odlišný styl a není jasné, co jimi chce autor říci. Výše uvedené nedostatky se odvíjí i v odevzdaných zdrojových souborech. Na první pohled je viditelná naprostá dlouhodová neudržitelnost kódu. Autor téměř nezná pojmy jako cyklus for, funkce a jejich volání. Autor například napsal funkci SetInputChannel8, poté si 7x zkopíroval všech 28 řádků funkce a na 15 místech upravil číslo. Pro představu, soubor Sinfunkce.cpp má díky tomuto přístupu k programování 3353 řádků a soubor SinHeader.h má řádků 933. Oproti tomu si autor většinu funkcionality zapouzdřil do C++ třídy, ale opět nevyužívá pokročilejší funkce jako dědičnost apod. Soubor SinFunkce.cpp také obsahuje funkci main, která je obvykle hlavní funkcí programu. Tato funkce je téměř celá zakomentovaná, tj. neaktivní. Spuštění tohoto kódu by pouze vypsalo text "konec" a neprovedlo žádnou operaci s daty. V zakomentované/neaktivní části je vidět náhodné testování funkcí implementovaných v souboru. Tato část se dá maximálně považovat za ukázku, jak by měl výsledný program tyto funkce volat a tedy, jak by budoucí programátor měl tuto knihovnu použít v reálné aplikaci. Poslední bod zadání ukládá studentovi navržený interface realizovat a otestovat jeho funkčnost. Zde nastává otázka, zda byl bod zadání splněn. Pokud se jako realizace počítá C++ knihovna pro práci s daným souborem, který si pak každý může implementovat do svého programu a jako otestování by se bral zakomentovaný kód z funkce main, tak se dá bod zadání považovat za splněný. V bakalářské práci bych však čekal demo kód, včetně *.exe souborů, který bude s knihovnou pracovat. V textové práci však určitě chybí otestování funkcionality a zhodnocení. Z výše uvedených poznatků je patrné, že práce je na velmi nízké úrovni jak obsahově, tak délkou. Ačkoliv samotný text práce má 42 stran a splňuje doporučený rozsah, práce není vyvážená. Teoretická část téměř chybí a oproti tomu se práce opakuje v rámci kapitol 4 až 6, které jsou téměř stejné. Práce neobsahuje obvyklé části, jako je například seznámení s pracovištěm CVVOZE a motivací k úpravám daných souborů. Formální úprava také není nejlepší, často se mění písmo, kódy jsou vložené jako obrázky a jazyková úroveň je velice špatná. V rámci literárních zdrojů student využíval téměř výhradně online zdroje, avšak v rámci této práce je to pochopitelné. Z výše uvedených argumentů soudím, že práce sice splňuje zadání, ale je na velmi nízké úrovni jak technické, tak prezentační. Doporučuji tedy hodnocení nedostatečný/40b.
eVSKP id 119271