bakalářská práce

Klient pro správu požadavků

Text práce 863.04 kB

Autor práce: Bc. Dominik Volák

Ak. rok: 2024/2025

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

Oponent: Ing. Ondřej Vašíček

Abstrakt:

Tato bakalářská práce se zabývá návrhem a implementací klienta pro jednotný přístup k požadavkům prostřednictvím OSLC RM (Requirements Management) specifikace. Cílem práce je umožnit přístup k požadavkům s využitím nástrojů, jako jsou IBM DOORS nebo R4J pro Jira, pomocí jednotného rozhraní. V rámci práce byla nejprve provedena analýza dostupných nástrojů a OSLC standardu. Následně byl navržen a realizován klient umožňující provádění základních CRUD operací nad požadavky. Funkčnost byla ověřena na reálných datech prostřednictvím OSLC adaptéru, přičemž důraz byl kladen na správnou práci s RDF daty a podporu filtrování výsledků. Výsledkem práce je nástroj využitelný jako základ pro integraci různorodých nástrojů pro správu požadavků v rámci jednotného přístupu.

Klíčová slova:

klient, OSLC, správa požadavků, R4J, IBM DOORS, RDF, REST API, Python

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. Objasněte jestli a jak byla převzata testovací sada ze závěrečné práce, ve které vznikly adaptéry pro nástroje JIRA a R4J. Jakou roli hrála ve vašem testování?
  2. Jaká rozšíření váš klient obsahuje oproti klientovi, který byl využit jako základ pro toho vašeho?
  3. Můžete okomentovat vykonané testování?

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.

Student pracoval samostatně a cíle práce splnil. Vytvořené řešení je plně funkční i když některé aspekty implementace mohly být více konzultovány s vedoucím práce. Technická zpráva mohla být vypracována s větším předstihem aby bylo možné její celkový obsah i formu dostatečně připomínkovat.

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

Cílem práce bylo vytvořit klienta umožňujícího spravovat požadavky ve vybraném nástroji pro správu požadavků, konkrétně v nástroji JIRA a jeho rozšíření Requirements for JIRA (R4J), skrz OSLC rozhraní založené na OSLC Requirements Management (RM) specifikaci.

Práce rozšiřuje existujícího univerzálního OSLC klienta pro Python o definici OSLC Requirements Management (RM) domény a klienta podporujícího tuto doménu. Práce sice vyžadovala nastudování rozsáhlé specifikace OSLC RM domény, její implementaci v jazyce Python ovšem zjednodušoval univerzální OSLC klient a jeho sada dekorátorů pro definici OSLC domén. Práci tedy hodnotím jako průměrně obtížnou.

Práce byla vytvořena ve spolupráci se společností Honeywell, jenž využívá nástroj JIRA a jeho rozšíření R4J jako jeden z nástrojů pro správu požadavků. Předpokládá se také, že vytvořený klient bude tvořit důležitý základ plánovaného OSLC RM klienta pro nástroj IBM DOORS NG, jenž slouží ke správě požadavků komplexních bezpečnostně-kritických systémů, a je dominantním nástrojem pro správu požadavků ve společnosti Honeywell.

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 pracoval samostatně, řešení konzultoval jen zřídka, obvykle přes platformu MS Teams. Na konzultace byl vždy dostatečně připraven. Aktivita studenta mohla být určitě vyšší, hlavně z pohledu průběžného informování vedoucího o postupu práce.

Aktivita při dokončování

Student dokončil implementaci zhruba dva týdny před odevzdáním, kdy začal pracovat na sepisování technické zprávy. Draft práce byl zaslán vedoucímu necelý týden před odevzdáním a to bez kapitoly věnované evaluaci, jejíž předpokládaný obsah byl pouze probrán v rámci konzultace. Připomínky k obsaženým kapitolám byly studentovi dodány, student již ale nestihl do odevzdání zaslat verzi technické zprávy se zapracovanými připomínkami a kapitolou věnovanou evaluaci.

Publikační činnost, ocenění

Výsledky práce budou zveřejněny formou open-source software na GitLab serveru výzkumné skupiny VeriFIT. Předpokládá se využití firmou Honeywell, ať již přímo pro interakci s nástrojem JIRA a jeho rozšířením R4J, nebo jako základ plánovaného OSLC RM klienta pro nástroj IBM DOORS NG.

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

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

Posudek oponenta
Ing. Ondřej Vašíček

Mírně složitější zadání bylo splněno, výstup práce je funkční a má potenciál pro další praktické využití. Identifikoval jsem ale řadu nedostatků ze strany informační, typografické, bibliografické i implementační. Hodnotím tedy celkově jako průměrnou práci stupněm C.

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

Stupeň hodnocení: obtížnější zadání

Seznámit se se standardem OSLC, souvisejícími technologiemi a dostupnými nástroji pouvažuji za obtížné. Zároveň ale práce stavěla na již existujícím frameworku, který ulehčuje implementaci OSLC domén a poskytuje základního klienta, což práci ulehčilo. Celkově tedy jen mírně obtížnější zadání.

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

Logická struktura je v pořádku.

Z pohledu pochopitelnosti práce nejasně vysvětluje, co je jejím hlavním smyslem a výsledkem. Text práce směřuje na to, že byl především vytvořen klient s rozhraním na příkazové řádce, který lze použít pro komunikaci. Toto rozhraní však ale vůbec není důležitým výstupem práce. Hlavním plánovaným využitím je import modulů domény a klienta do kódu jiných aplikací. 

Z informační stránky mám dvě výhrady:

  • Sekce 5.6.3 diskutuje limitaci implementovaného klienta, která je způsobená limitací klienta, na kterém tato práce stavěla. Jedná se o neschopnost zpracovat složky s zanořenými podsložkami, které adaptér R4J reprezentuje v rámci jednoho RDF jako přímo vnořené (inline) RDF zdroje. Toto chování je v práci označeno za nestandardní, neočekávané a za porušení standardu OSLC. Toto je ale chybné tvrzení. Standard OSLC explicitně podporuje odkazované i zanořené (inline) zdroje. Zanořené zdroje jsou dokonce v některých doménách i explicitně doporučeny.
  • Sekce 6.2.6 udává jako důvod pro selhání některých testů známou chybu v adaptéru pro některý z nástrojů JIRA nebo R4J. V práci ale není vysvětleno, o jakou chybu se jedná a jaký má dopad na funkcionalitu. Dle popisu v citovaném zdroji se jedná o chybu v API nástroje R4J a tedy ne o chybu v jednom z adaptérů. Chybný je dále pouze návratový kód v odpovědi na požadavek, ale operace proběhne v pořádku. Tohle chování tedy mohlo být v této práci jednoduše vyřešeno ignorováním chybného návratového kódu.
70
Formální úprava technické zprávy

Po jazykové stránce je práce v pořádku až na pár drobných překlepů.

K typografické stránce mám několik výhrad:

  • Rozbitá reference na obrázek na straně 10.
  • Nedodržení konvence kapitalizace některých nadpisů včetně samotného názvu práce.
  • Nadměrná velikost některých obrázků (5.1, 5.2).
  • Chybně vysázená vsuvka pomocí dlouhých pomlček (např. strana 13 a 33).
70
Realizační výstup

Kusy kódu, které byly převzaty, jsou jasně vyznačeny. 

Hlavním výstupem práce je korektní implementace tříd pro jednotlivé OSLC zdroje (resource) podle specifikace OSLC RM. Výhradu mám proti tomu, že modul implementované domény míchá dohromady i zdroje z jiných domén, které by měly být umístěny ve svých vlastních modulech.

Dalším výstupem je modul klienta, který poskytuje metody pro komunikaci s adaptéry pro nástroje JIRA a R4J. Poskytnuté metody jsou funkční a byly dostatečně otestovány. Za nedostatek považuji zvolenou signaturu metod, jelikož mají parametry zvlášť pro každý atribut daného OSLC zdroje. Není tedy možné metodě předat předpřipravený objekt. Tohle ztěžuje především update existujících zdrojů, který typicky probíhá získáním aktuální verze zdroje pomocí GET, úpravou potřebných atributů a následným PUT celého upraveného zdroje.

Posledním výstupem, který je ale nedůležitý a jen pro účely demonstrace, je rozhraní na příkazové řádce. Jeho kvalita a použitelnost je poměrně nízká a celkově působí nedodělaně. Rozhraní poskytuje neužitečné odpovědi (např. není vždy poznat zda se operace povedla) a některé informace skrze klienta nelze získat (např. URI zdroje v odpovědi na GET). Funkcionalita je navíc limitována tím, že není schopen brát OSLC zdroje na vstupu přímo ve formátech RDF/XML/JSON. Každý zdroj a jeho jednotlivé parametry musí být rozebrány do jednotlivých argumentů příkazové řádky. Podobně pak klient na výstupu vypisuje OSLC zdroje v jednoduchém nestandardním formátu namísto formátu RDF/XML/JSON.

70
Využitelnost výsledků

Je možné, že dojde k praktickému vyzkoušení vytvořených modulů ve firmě Honeywell. Dále je pak pravděpodobné jejich další využití jako základ pro navazující závěrečné práce.

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

Práce s literaturou

Všechny relevantní zdroje jsou citovány.

Nedostatky:

  • Nenašel jsem referenci na nástroje JIRA a R4J, které jsou pro práci klíčové. 
  • Řada záznamů v bibliografii má nevhodně vysázeného autora (např. IBM Corp., OSLC, Docker Inc.).
  • Především v úvodních sekcích o použitých technologiích se nachází velké množství odstavců s citací na konci ve stylu parafráze. Ve skutečnosti ale jde jen o nevhodně vysázené odkazy na zdroje informací, ze kterých student volně čerpal.
  • Při demonstraci student uvedl, že do určité míry převzal testovací sadu ze závěrečné práce, ve které byly vytvořeny adaptéry pro nástroje JIRA a R4J. V textu práce tohle ale není řečeno. 
70
Otázky k obhajobě:
  1. Objasněte jestli a jak byla převzata testovací sada ze závěrečné práce, ve které vznikly adaptéry pro nástroje JIRA a R4J. Jakou roli hrála ve vašem testování?
  2. Jaká rozšíření váš klient obsahuje oproti klientovi, který byl využit jako základ pro toho vašeho?
Výsledný počet bodů navržený oponentem: 70

Známka navržená oponentem: C

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