Ověřování asercí kódu pomocí zpětné symbolické exekuce
Code Assertions Verification Using Backward Symbolic Execution
diplomová práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/2087Identifikátory
SIS: 179174
Kolekce
- Kvalifikační práce [10923]
Autor
Vedoucí práce
Oponent práce
Parízek, Pavel
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Softwarové a datové inženýrství
Katedra / ústav / klinika
Katedra distribuovaných a spolehlivých systémů
Datum obhajoby
6. 2. 2017
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Čeština
Známka
Velmi dobře
Klíčová slova (česky)
analýza kódu, verifikace, zpětná symbolická exekuceKlíčová slova (anglicky)
code analysis, verification, backward symbolic executionPro prevenci, odhalování a opravování chyb v softwaru existuje celá řada nástrojů pro programátory, přičemž některé z nich umožňují pracovat přímo se sémantikou programu. V případě jazyka C# jsou hlavními zástupci Microsoft FxCop, Code Contracts a Pex. Použití těchto nástrojů může velkou měrou přispět k vysoké spolehlivosti programů. Jejich úplné zapojení do procesu vývoje software ve firmách je bohužel značně náročné na prostředky. Z tohoto důvodu jsme vytvořili AskTheCode, zjednodušený nástroj pro verifikaci asercí kódu. Jeho hlavním účelem je pomoci uživateli s jedním konkrétním problémem, který v daném okamžiku řeší. Vzhledem k tomuto přístupu jsme jej implementovali pomocí zpětné symbolické exekuce. Přestože je momentálně schopen pracovat pouze se základními konstrukty a typy jazyka C#, srovnání s existujícími nástroji ukázalo, že při dalším rozvoji má potenciál poskytnout uživateli významnou přidanou hodnotu. Powered by TCPDF (www.tcpdf.org)
In order to prevent, detect and fix errors in software, various tools for programmers are available, while some of them are able to reason about the behaviour of the program. In the case of C# programming language, the main representatives are Microsoft FxCop, Code Contracts and Pex. Those tools can, indeed, help to build a highly reliable software. However, when a company wants to include them in the software development process, there is a significant overhead involved. Therefore, we created a "light- weight" assertion verification tool called AskTheCode that can help the user to focus on a particular problem at a time that needs to be solved. Because of its goal-driven approach, we decided to implement it using backward symbolic execution. Although it can currently handle only basic C# statements and data types, the evaluation against the existing tools shows that it has the potential to eventually provide significant added value to the user once developed further. Powered by TCPDF (www.tcpdf.org)