A fact-based approach to software evolution - Wu, Xiuheng (Nanyang Technological University, 2024)
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.