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
Description
Summary: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.