Fortifying the seams of software systems

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...

Full description

Saved in:
Bibliographic Details
Main Author: KANG, Hong Jin
Format: text
Language:English
Published: Institutional Knowledge at Singapore Management University 2023
Subjects:
Online Access:https://ink.library.smu.edu.sg/etd_coll/454
https://ink.library.smu.edu.sg/context/etd_coll/article/1452/viewcontent/GPIS_AY2018_Kang_Hong_Jin.pdf
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Singapore Management University
Language: English
id sg-smu-ink.etd_coll-1452
record_format dspace
spelling sg-smu-ink.etd_coll-14522023-07-13T01:01:28Z Fortifying the seams of software systems KANG, Hong Jin 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. 2023-01-01T08:00:00Z text application/pdf https://ink.library.smu.edu.sg/etd_coll/454 https://ink.library.smu.edu.sg/context/etd_coll/article/1452/viewcontent/GPIS_AY2018_Kang_Hong_Jin.pdf http://creativecommons.org/licenses/by-nc-nd/4.0/ Dissertations and Theses Collection (Open Access) eng Institutional Knowledge at Singapore Management University Software Engineering Software Supply Chain Security Artificial Intelligence for Software Engineering Software Engineering Systems Architecture
institution Singapore Management University
building SMU Libraries
continent Asia
country Singapore
Singapore
content_provider SMU Libraries
collection InK@SMU
language English
topic Software Engineering
Software Supply Chain Security
Artificial Intelligence for Software Engineering
Software Engineering
Systems Architecture
spellingShingle Software Engineering
Software Supply Chain Security
Artificial Intelligence for Software Engineering
Software Engineering
Systems Architecture
KANG, Hong Jin
Fortifying the seams of software systems
description 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.
format text
author KANG, Hong Jin
author_facet KANG, Hong Jin
author_sort KANG, Hong Jin
title Fortifying the seams of software systems
title_short Fortifying the seams of software systems
title_full Fortifying the seams of software systems
title_fullStr Fortifying the seams of software systems
title_full_unstemmed Fortifying the seams of software systems
title_sort fortifying the seams of software systems
publisher Institutional Knowledge at Singapore Management University
publishDate 2023
url https://ink.library.smu.edu.sg/etd_coll/454
https://ink.library.smu.edu.sg/context/etd_coll/article/1452/viewcontent/GPIS_AY2018_Kang_Hong_Jin.pdf
_version_ 1772829203723452416