velikost textu

Dynamic Analysis Framework for C#/.NET Programs

Upozornění: Informace získané z popisných dat či souborů uložených v Repozitáři závěrečných prací nemohou být použity k výdělečným účelům nebo vydávány za studijní, vědeckou nebo jinou tvůrčí činnost jiné osoby než autora.
Název:
Dynamic Analysis Framework for C#/.NET Programs
Název v češtině:
Knihovna pro dynamickou analýzu programů v jazyce C# na platformě .NET
Typ:
Diplomová práce
Autor:
Bc. Andrej Čižmárik
Vedoucí:
RNDr. Pavel Parízek, Ph.D.
Oponent:
Ing. Lubomír Bulej, Ph.D.
Id práce:
209472
Fakulta:
Matematicko-fyzikální fakulta (MFF)
Pracoviště:
Katedra distribuovaných a spolehlivých systémů (32-KDSS)
Program studia:
Informatika (N1801)
Obor studia:
Softwarové systémy (ISS)
Přidělovaný titul:
Mgr.
Datum obhajoby:
6. 2. 2020
Výsledek obhajoby:
Výborně
Jazyk práce:
Angličtina
Klíčová slova:
dynamická analýza, data-race, .NET Core
Klíčová slova v angličtině:
dynamic analysis, data-races, .NET Core
Abstrakt:
Dynamická analýza je metóda používaná na analýzu chovania programov, čo môže byť využité pri hľadaní rôznych chýb v softwari. V dnešnej dobe je trend vo vývoji viacvláknových programov, kde môžu bezpochyby nas- tať problémy so synchronizáciou vlákien. Navyše, pôvod chýb v softwari, ktoré sú spôsobené rozdielnym naplánovaním a usporiadaním operácií, je ťažko odhaliteľný, nakoľko sú tieto chyby nedeterministické. Rozhodli sme sa naimplementovať framework na dynamickú analýzu programov napísaných v jazyku C# spolu s dvoma známymi algoritmami, ktoré sa používajú na de- tekciu a predikciu data-race-ov. Vo výsledku sme vytvorili konfigurovateľný a rozšíriteľný nástroj SharpDetect, ktorý podporuje dynamickú analýzu CIL programov. Konkrétne ide o programy napísané v jazyku C# pre platformy podporované frameworkom .NET Core. Na ukážku užitočnosti vytvoreného riešenia bol SharpDetect úspešne nasadený na knižnicu NetMQ, čo je imple- mentácia ZeroMQ v programovacom jazyku C# a kde našiel jednu skutočnú chybu.
Abstract v angličtině:
Dynamic analysis is a technique used to analyse the behaviour of programs, which can be utilized when searching for various software errors. Nowadays, there is a trend in software development towards multi-threaded programs that are, undeniably, prone to race conditions. Furthermore, software errors that stem from timing issues and incorrect ordering of operations across individual threads are generally hard to find, since they are by nature non-deterministic. We decided to implement a dynamic analysis framework for C# programs, along with two well-known algorithms capable of detecting and predicting data-races. As a result, we created an extensible and configurable tool, SharpDetect, that supports dynamic analysis of CIL programs created by compilation from C# source code on platforms supported by .NET Core. To demonstrate its practical usefulness, SharpDetect was successfully applied on NetMQ, C# implementation of ZeroMQ, where it found one real software error.
Dokumenty
Stáhnout Dokument Autor Typ Velikost
Stáhnout Text práce Bc. Andrej Čižmárik 1.07 MB
Stáhnout Příloha k práci Bc. Andrej Čižmárik 1.16 MB
Stáhnout Abstrakt v českém jazyce Bc. Andrej Čižmárik 42 kB
Stáhnout Abstrakt anglicky Bc. Andrej Čižmárik 42 kB
Stáhnout Posudek vedoucího RNDr. Pavel Parízek, Ph.D. 279 kB
Stáhnout Posudek oponenta Ing. Lubomír Bulej, Ph.D. 83 kB
Stáhnout Záznam o průběhu obhajoby doc. RNDr. Petr Hnětynka, Ph.D. 152 kB