Using Java PathFinder for Construction of Abstractions of Java Programs
Using Java PathFinder for Construction of Abstractions of Java Programs
diplomová práce (OBHÁJENO)
![Náhled dokumentu](/bitstream/handle/20.500.11956/20732/thumbnail.png?sequence=7&isAllowed=y)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/20732Identifikátory
SIS: 45034
Kolekce
- Kvalifikační práce [11264]
Autor
Vedoucí práce
Oponent práce
Poch, Tomáš
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Softwarové systémy
Katedra / ústav / klinika
Katedra softwarového inženýrství
Datum obhajoby
25. 5. 2009
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Velmi dobře
S rostoucí složitostí moderních softwarových systémů se jejich verifikace stává velmi obtížnou úlohou. Techniky formální verifikace a analýzy slouží k nalezení chyb v kódu nebo pro prokázání, že kód splňuje určité vlastnosti. Populární technika automatické verifikace je model checking, který využívá procházení stavového prostoru. Nicméně model checking je náchylný k problému exponenciálního nárustu počtu stavů (state explosion) a proto nemůže být použit pro složité vícevláknové softwarové systémy. Obecné řešení tohoto problému (state explosion) spočívá ve vytvoření abstrakce cílového systému a následném použití tohoto modelu k verifikaci. V rámci diplomové práce jsme navrhli a implementovali nástroj pro konstrukci abstrakce Java komponent v jazyce behavior protocol, který využívá model checker Java PathFinder pro procházení stavového prostoru. Výsledky experimentů na několika netriviálních komponentách ukazují, že nástroj může být použit v praxi.
The growing complexity of software systems makes the verification of the systems very difficult. Techniques of formal verification and analysis are used to find bugs in the code, or to prove that the code satisfies some properties. A popular automated verification technique is model checking, which uses state space traversal. However, model checking is prone to state explosion and therefore does not scale to complex multi-threaded software systems. Common solution to this problem (state explosion) is to create an abstraction of the target system, and then verify only the abstraction. We have designed and implemented a tool for construction of abstraction of Java components in behavior protocols, which is based on the Java PathFinder model checker. Results of experiments on several non-trivial components show that the tool can be used in practice.