Static data flow analysis for Java programs
Statická analýza datových toků pro programy v jazyce Java
diplomová práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/110191Identifikátory
SIS: 198785
Kolekce
- Kvalifikační práce [11190]
Autor
Vedoucí práce
Oponent práce
Kofroň, Jan
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Umělá inteligence
Katedra / ústav / klinika
Katedra softwarového inženýrství
Datum obhajoby
16. 9. 2019
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
Klíčová slova (česky)
Java, bytecode, statická analýza, datový tokKlíčová slova (anglicky)
Java, bytecode, static analysis, data flowTato práce navrhuje metodologii JaBSSA určenou k ziskání zavislostí mezi vstu- py a výstupy Java programů za použití statické programové analýzy na byte- code Java programů. Metodologie JaBSSA je založená na konstrukci context- sensitive grafu volání analyzovaného programu a následnou konstrukci oriento- vaného grafu datových toků, kde uzly majíci specifická metadata reprezentují vstupy a výstupy analyzovaného programu a hrany představují datové toky mezi nimi v analyzovaném programu. Program na přiloženém CD obsahuje imple- mentaci pro metodologii JaBSSA, což slouží jako ověření navrhovaného konceptu. Příklady Java programů spolu se sadou testů, která generuje výsledky implemen- tace metodologie JaBSSA na příkladech, jsou součástí daného programu. Vyge- nerované výsledky slouží pro demonstraci schopností a nedostatků navrhovaného konceptu. 1
This thesis proposes a methodology for an acquisition of dependencies between outputs and inputs in Java programs by using static program analysis on bytecode of Java programs. JaBSSA methodology designed by the author is presented in the thesis. The methodology is based on a construction of context-sensitive call graph of the analyzed program and subsequent construction of directed data flow graph, where nodes containing particular metadata represent inputs and outputs of the analyzed program and edges represent data flows amongst them present in the analyzed program. The program on added CD contains JaBSSA's implemen- tation, which serves as a proof of the proposed concept. Java program examples together with test suite generating results of JaBSSA's implementation upon pre- pared Java program examples are part of the program. These generated results are used for demonstration of capabilities and flaws of the proposed concept. 1