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...
Saved in:
Main Author: | |
---|---|
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 |