Fast and Scalable Change Propagation through Context-Insensitive Slicing

Date
2018-12-17
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Change propagation (CP) is an activity to restore systems from inconsistent states caused by changes to their source code. Because where the inconsistencies happen is usually unknown, the current practice relies on code navigation facilities provided by integrated development environments (IDEs) to search every relevant piece of code. However, the work becomes difficult due to the increasing complexity and size of the code; inconsistencies are missed due to the lack of a systematic approach to the search and navigation. Current research approaches struggle between efficiency and effectiveness. Those working at fine-grained levels can produce very precise results, but they are hard to integrate into daily development practice for industrial developers due to a lack of scalability and maintainability; those working at coarse-grained levels are fast but generate lots of false positives, placing a heavy burden on developers. The thesis of this dissertation is that by combining the advantages of both fine- and coarse-grained approaches, we can support CP tasks for programmers efficiently in daily development. We propose a novel dependency model, providing algorithms to incrementally update the model and to produce results by tracing statement-level dependencies. Based on these, we implement a prototype tool called ModCP to support CP by an interactive workflow. We conduct several studies to evaluate our approach against current ones. We find that our model scales to large code bases, in terms of both space and time; that incremental maintenance can quickly synchronize the model with changes, saving over 96% of time on average for large systems compared to rebuilding the model; and that our approach consistently outperforms the alternatives in terms of F-score. Furthermore, we conduct an experiment to evaluate developer use of ModCP against a standard IDE-based CP methodology, showing that developers can complete these tasks faster by using our tool than by IDEs, with improved effectiveness; for complex tasks, the time savings (statistically significant) can reach approximately 50%.
Description
Keywords
Citation
Men, H. (2018). Fast and Scalable Change Propagation through Context-Insensitive Slicing (Doctoral thesis, University of Calgary, Calgary, Canada). Retrieved from https://prism.ucalgary.ca.