Extrakce grafu toku řízení z bajtkódu Java

Loading...
Thumbnail Image
Date
ORCID
Mark
A
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoké učení technické v Brně. Fakulta informačních technologií
Abstract
Grafy toku řízení (Control Flow Graph -- CFG) slouží jako základ pro mnoho analýz vyhodnocujících kvalitu programu. Takovou analýzou je i testování založené na modelech (model-based testing), které na základě analýzy modelu kódu, např. grafu, generuje testovací případy. Aby bylo možné tuto analýzu provádět co nejobecněji, je vhodné, aby instrukce obsažené v CFG patřily do některé z obecných instrukčních sad.Tato práce se zabývá extrakcí grafů toku řízení z bajtkódu jazyka Java a následným překladem jednotlivých instrukcí bajtkódu uvnitř základních bloků do instrukční sady LLVM IR. Výsledný program dokáže spolehlivě získat grafy toku řízení z programů v jazyce Java zadaných v jakékoli z nejběžnějších forem pro šíření tohoto typu software (.jar archiv, .java nebo .class soubory). Grafy na výstupu jsou navíc koncipovány tak, aby nad nimi bylo možné provádět analýzu za účelem generování jednotkových testů.
The most of the analyses evaluating the quality of code are derived from Control Flow Graphs -- CFG. Model-based testing as one of them uses paths found in CFG for generation of test cases. To ease use of a general analysis of CFG, there is a need for CFG to contain instructions of some general instruction set. This work deals with extraction of control flow graphs from Java bytecode, followed by a translation of the instructions inside basic blocks into LLVM IR set. The resulting program is able to reliably extract control flow graphs from a Java program, given in any of its casual forms (.jar archive, .java or .class file). In addition to that, the graphs on output are assembled so, that they can be analyzed in order to generate unit tests.
Description
Citation
SEČKAŘOVÁ, P. Extrakce grafu toku řízení z bajtkódu Java [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2017.
Document type
Document version
Date of access to the full text
Language of document
cs
Study field
Informační technologie
Comittee
doc. Ing. Jaroslav Zendulka, CSc. (předseda) doc. Dr. Ing. Otto Fučík (místopředseda) Ing. František Grézl, Ph.D. (člen) Ing. Petr Matoušek, Ph.D., M.A. (člen) Ing. Aleš Smrčka, Ph.D. (člen)
Date of acceptance
2017-06-12
Defence
Studentka nejprve prezentovala výsledky, kterých dosáhla v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Studentka následně odpověděla 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í studentky na položené otázky rozhodla práci hodnotit stupněm " A ". Otázky u obhajoby: V práci uvádíte, že využití existujících nástrojů pro extrakci grafů s sebou neslo více problémů než užitku. Na čem je toto tvrzení založeno? Byly učiněny experimenty s těmito nástroji? Proč byla zvolena právě instrukční sada LLVM IR? Podle textu existují při překladu Java bajtkódu do LLVM IR problémy a některé instrukce jsou pouze simulovány. Byly zvažovány i nějaké alternativy?
Result of defence
práce byla úspěšně obhájena
Document licence
Standardní licenční smlouva - přístup k plnému textu bez omezení
DOI
Collections
Citace PRO