Detail práce

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

Bakalářská práce Student: Sečkařová Petra Akademický rok: 2016/2017 Vedoucí: Smrčka Aleš, Ing., Ph.D.
Název anglicky
Extraction of Control Flow Graph from Java Bytecode
Jazyk práce
český
Abstrakt

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

Klíčová slova

bajtkód jazyka Java, graf toku řízení, analýza, LLVM IR

Ústav
Studijní program
Informační technologie
Soubory
Stav
obhájeno, hodnocení A
Obhajoba
12. června 2017
Oponent
Průběh obhajoby

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
  1. 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?
  2. 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?
Komise
Zendulka Jaroslav, doc. Ing., CSc. (UIFS FIT VUT), předseda
Fučík Otto, doc. Dr. Ing. (UPSY FIT VUT), člen
Grézl František, Ing., Ph.D. (UPGM FIT VUT), člen
Matoušek Petr, doc. Ing., Ph.D., M.A. (UIFS FIT VUT), člen
Smrčka Aleš, Ing., Ph.D. (UITS FIT VUT), člen
Citace
SEČKAŘOVÁ, Petra. Extrakce grafu toku řízení z bajtkódu Java. Brno, 2017. Bakalářská práce. Vysoké učení technické v Brně, Fakulta informačních technologií. 2017-06-12. Vedoucí práce Smrčka Aleš. Dostupné z: https://www.fit.vut.cz/study/thesis/19241/
BibTeX
@bachelorsthesis{FITBT19241,
    author = "Petra Se\v{c}ka\v{r}ov\'{a}",
    type = "Bakal\'{a}\v{r}sk\'{a} pr\'{a}ce",
    title = "Extrakce grafu toku \v{r}\'{i}zen\'{i} z bajtk\'{o}du Java",
    school = "Vysok\'{e} u\v{c}en\'{i} technick\'{e} v Brn\v{e}, Fakulta informa\v{c}n\'{i}ch technologi\'{i}",
    year = 2017,
    location = "Brno, CZ",
    language = "czech",
    url = "https://www.fit.vut.cz/study/thesis/19241/"
}
Nahoru