A fact-based approach to software evolution

With the proliferation of software systems in everyday life and critical infrastructures, managing their evolution and compatibility is imperative. These software systems comprise various components, often created by different entities, that evolve independently. This evolutionary trajectory introdu...

Full description

Saved in:
Bibliographic Details
Main Author: Wu, Xiuheng
Other Authors: Li Yi (SCSE)
Format: Thesis-Doctor of Philosophy
Language:English
Published: Nanyang Technological University 2024
Subjects:
Online Access:https://hdl.handle.net/10356/173902
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
id sg-ntu-dr.10356-173902
record_format dspace
spelling sg-ntu-dr.10356-1739022024-04-09T03:58:57Z A fact-based approach to software evolution Wu, Xiuheng Li Yi (SCSE) School of Computer Science and Engineering yi_li@ntu.edu.sg Computer and Information Science With the proliferation of software systems in everyday life and critical infrastructures, managing their evolution and compatibility is imperative. These software systems comprise various components, often created by different entities, that evolve independently. This evolutionary trajectory introduces complexities and potential incompatibilities, especially in an environment influenced by third-party libraries and decentralized appli- cations like smart contracts. This thesis hope to shed light on techniques and tools to address the challenges of software evolution and study unanswered research questions such as client-specific incompatibilities. We firstly introduce the concept of a differential factbase, an analysis platform centered on differential facts. This platform serves as a uniform,exchangeable representation for efficient querying, manipulation, and tracking of software evolution, viewing program changes as primary objects. It forms the foundation for managing software evolution by capturing both intra-version and inter-version facts. We implement a series of differential fact extractors supporting different programming languages and platforms, and demonstrate with usage scenarios the benefits of adopting differential facts in supporting software evolution management. Having verified the usability and efficiency of differential factbase,we then show the development of EvoMe. Harnessing the power of the differential factbase, EvoMe provides a query language for prototyping tools that assist in software evolution management tasks like regression test selection. After the successful implementation of the fact-driven approach in certain applications, we shift our focus to the growing significance of smart contracts. Recognizing the importance of API documentation in the development of smart contracts, this work introduces DocCon, a technique adept at identifying inconsistencies between documentation and corresponding Solidity smart contract library code. By utilizing the fact-based approach, this technique proficiently detects errors in API documentations, helping developers comprehend correct API usages and maintaining high-quality documentations. Finally, we dive deep into the repercussions of third-party library upgrades on client systems. By understanding failures instigated by these upgrades, this research illuminates how diverse clients react distinctively to the same library upgrade. It underscores the significance of client- specific usage in determining upgrade outcomes and the challenges posed by upgrade failures. Doctor of Philosophy 2024-03-07T01:19:53Z 2024-03-07T01:19:53Z 2024 Thesis-Doctor of Philosophy Wu, X. (2024). A fact-based approach to software evolution. Doctoral thesis, Nanyang Technological University, Singapore. https://hdl.handle.net/10356/173902 https://hdl.handle.net/10356/173902 10.32657/10356/173902 en This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0). application/pdf Nanyang Technological University
institution Nanyang Technological University
building NTU Library
continent Asia
country Singapore
Singapore
content_provider NTU Library
collection DR-NTU
language English
topic Computer and Information Science
spellingShingle Computer and Information Science
Wu, Xiuheng
A fact-based approach to software evolution
description With the proliferation of software systems in everyday life and critical infrastructures, managing their evolution and compatibility is imperative. These software systems comprise various components, often created by different entities, that evolve independently. This evolutionary trajectory introduces complexities and potential incompatibilities, especially in an environment influenced by third-party libraries and decentralized appli- cations like smart contracts. This thesis hope to shed light on techniques and tools to address the challenges of software evolution and study unanswered research questions such as client-specific incompatibilities. We firstly introduce the concept of a differential factbase, an analysis platform centered on differential facts. This platform serves as a uniform,exchangeable representation for efficient querying, manipulation, and tracking of software evolution, viewing program changes as primary objects. It forms the foundation for managing software evolution by capturing both intra-version and inter-version facts. We implement a series of differential fact extractors supporting different programming languages and platforms, and demonstrate with usage scenarios the benefits of adopting differential facts in supporting software evolution management. Having verified the usability and efficiency of differential factbase,we then show the development of EvoMe. Harnessing the power of the differential factbase, EvoMe provides a query language for prototyping tools that assist in software evolution management tasks like regression test selection. After the successful implementation of the fact-driven approach in certain applications, we shift our focus to the growing significance of smart contracts. Recognizing the importance of API documentation in the development of smart contracts, this work introduces DocCon, a technique adept at identifying inconsistencies between documentation and corresponding Solidity smart contract library code. By utilizing the fact-based approach, this technique proficiently detects errors in API documentations, helping developers comprehend correct API usages and maintaining high-quality documentations. Finally, we dive deep into the repercussions of third-party library upgrades on client systems. By understanding failures instigated by these upgrades, this research illuminates how diverse clients react distinctively to the same library upgrade. It underscores the significance of client- specific usage in determining upgrade outcomes and the challenges posed by upgrade failures.
author2 Li Yi (SCSE)
author_facet Li Yi (SCSE)
Wu, Xiuheng
format Thesis-Doctor of Philosophy
author Wu, Xiuheng
author_sort Wu, Xiuheng
title A fact-based approach to software evolution
title_short A fact-based approach to software evolution
title_full A fact-based approach to software evolution
title_fullStr A fact-based approach to software evolution
title_full_unstemmed A fact-based approach to software evolution
title_sort fact-based approach to software evolution
publisher Nanyang Technological University
publishDate 2024
url https://hdl.handle.net/10356/173902
_version_ 1800916114341888000