Using Combination of Static Program Analysis Techniques for Program Comprehension of Large Systems
Použití kombinace technik statické analýzy programů pro porozumění rozsáhlým systémům
dizertační práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/204870Identifikátory
SIS: 190166
Kolekce
- Kvalifikační práce [11986]
Autor
Vedoucí práce
Konzultant práce
Kofroň, Jan
Oponent práce
Lengál, Ondřej
Černý, Tomáš
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Informatika - Softwarové systémy
Katedra / ústav / klinika
Katedra softwarového inženýrství
Datum obhajoby
22. 9. 2025
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Prospěl/a
Klíčová slova (česky)
porozumění kódu|statická analýza kódu|analýza datového toku|symbolická exekuceKlíčová slova (anglicky)
program comprehension|static program analysis|data-flow analysis|symbolic executionPorozumění kódu je složitá činnost, která vývojářům zabírá více než polovinu času a přispívá k fragmentaci jejich práce. Přestože různé nástroje zjednodušují tuto čin- nost pomocí technik statické analýzy kódu, vývojáři je málokdy používají, protože jimi poskytované informace jsou příliš obecné nebo málo detailní. Tato práce cílí na vyřešení těchto nedostatků vytvořením Understandability Framework, sady principů a doporučení pro vytváření vývojových nástrojů a jejich integrace do procesu vývoje software. Un- derstandability Framework doporučuje vytvářet nástroje pro porozumění kódu jako sady znovupoužitelných komponent, které mohou být přizpůsobeny a kombinovány vývojáři, aby splnily specifické nároky daného projektu. Výsledné nástroje mohou dosáhnout vysoké úrovně přesnosti kombinováním technik statické analýzy kódu o různé škálovatel- nosti, jako například analýzy datového toku a symbolické exekuce. Experimentální im- plementace Understandability Framework a její použití na systému z praxe ukazují, že prezentovaný přístup může významně přispět k efektivitě procesu vývoje software. 1
Program comprehension is a complex endeavor that consumes more than half of de- velopers' time and contributes to work fragmentation. Although various tools tackle program comprehension tasks using static program analysis techniques, developers rarely use them because the provided information is either too general or not detailed enough. This thesis addresses these shortcomings by presenting the Understandability Frame- work, a set of principles and implementation guidelines for creating development tools and integrating them into the software development process. The framework recommends building program comprehension tools as sets of reusable components that developers can customize and combine to suit the project's specific needs. Produced tools can reach suf- ficient precision by combining static program analysis techniques of different scalability, such as data-flow analysis and symbolic execution. An experimental implementation of the framework and its usage on an industrial system show that the presented approach can substantially contribute to the efficiency of the development process. 1
