Crossing Software Abstraction Boundaries to Facilitate Software Engineering

Sparad:
Bibliografiska uppgifter
I publikationen:ProQuest Dissertations and Theses (2025)
Huvudupphov: Reiter, Pemma
Utgiven:
ProQuest Dissertations & Theses
Ämnen:
Länkar:Citation/Abstract
Full Text - PDF
Taggar: Lägg till en tagg
Inga taggar, Lägg till första taggen!

MARC

LEADER 00000nab a2200000uu 4500
001 3202648263
003 UK-CbPIL
020 |a 9798314876978 
035 |a 3202648263 
045 2 |b d20250101  |b d20251231 
084 |a 66569  |2 nlm 
100 1 |a Reiter, Pemma 
245 1 |a Crossing Software Abstraction Boundaries to Facilitate Software Engineering 
260 |b ProQuest Dissertations & Theses  |c 2025 
513 |a Dissertation/Thesis 
520 3 |a Due to the increasing complexity of modern software and hardware systems, fully automated software engineering methods, particularly those that focus on a single abstraction level, are insufficient to prevent, identify, and handle performance problems, bugs, and security vulnerabilities. Addressing these issues often requires gathering information from and attuning to multiple abstraction levels, usually incorporating manual analysis or deep domain knowledge. Analysis that crosses abstraction boundaries is challenging, but software engineering techniques can benefit when analysis at one abstraction level is informed by analyses on others. I use code representations as the medium for this work. First, I investigate long-held assumptions about how lower-level code representations affect human comprehension in a human study. I then cross the boundary between binary and source, showing how decompiled code can be leveraged to facilitate the repair of bugs and vulnerabilities when source code is not available. The insights gained from this success with decompiled code allow us to improve automated program repair by using static code transformations to manipulate the input code representation. Finally, I develop methods for aligning source code elements with binary code, in the absence of compiler-embedded information or recompilation. Together, this thesis shows that analyses and tools designed for or informed by a software abstraction level can benefit understanding, tools, and analyses designed for others, and extend their utility beyond or improve their accuracy on their intended code representation. 
653 |a Computer science 
653 |a Computer engineering 
773 0 |t ProQuest Dissertations and Theses  |g (2025) 
786 0 |d ProQuest  |t ProQuest Dissertations & Theses Global 
856 4 1 |3 Citation/Abstract  |u https://www.proquest.com/docview/3202648263/abstract/embedded/6A8EOT78XXH2IG52?source=fedsrch 
856 4 0 |3 Full Text - PDF  |u https://www.proquest.com/docview/3202648263/fulltextPDF/embedded/6A8EOT78XXH2IG52?source=fedsrch