Publication Type
PhD Dissertation
Version
publishedVersion
Publication Date
1-2023
Abstract
A seam in software is a place where two components within a software system meet. There are more seams in software now than ever before as modern software systems rely extensively on third-party software components, e.g., libraries. Due to the increasing complexity of software systems, understanding and improving the reliability of these components and their use is crucial. While the use of software components eases the development process, it also introduces challenges due to the interaction between the components.
This dissertation tackles problems associated with software reliability when using third-party software components. Developers write programs that interact with libraries through their Application Programming Interfaces (API). Both static and dynamic analysis of API-using code require knowledge of the API and its usage constraints. Hence, we develop techniques to learn and model the usage constraints of APIs. Next, we apply the insights gleaned from our studies to support bug-finding techniques using static and dynamic analysis. Then, we look into larger software systems comprising multiple components. We propose techniques for mining rules to monitor the joint behaviors of apps, and for exploiting known library vulnerabilities from a project importing a library. These techniques aim to assist developers to better understand third-party components, and to detect weaknesses in software systems.
Keywords
Software Engineering, Software Supply Chain Security, Artificial Intelligence for Software Engineering
Degree Awarded
PhD in Computer Science
Discipline
Software Engineering | Systems Architecture
Supervisor(s)
LO, David
First Page
1
Last Page
309
Publisher
Singapore Management University
City or Country
Singapore
Citation
KANG, Hong Jin.
Fortifying the seams of software systems. (2023). 1-309.
Available at: https://ink.library.smu.edu.sg/etd_coll/454
Copyright Owner and License
Author
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.