Walker, Robert J.Denzinger, JörgAycock, John DanielMen, Hao2018-12-182018-12-182018-12-17Men, H. (2018). Fast and Scalable Change Propagation through Context-Insensitive Slicing (Doctoral thesis, University of Calgary, Calgary, Canada). Retrieved from https://prism.ucalgary.ca.http://hdl.handle.net/1880/109367Change 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%.enUniversity of Calgary graduate students retain copyright ownership and moral rights for their thesis. You may use this material in any way that is permitted by the Copyright Act or through licensing that has been assigned to the document. For uses that are not allowable under copyright legislation or licensing, you are required to seek permission.Computer ScienceFast and Scalable Change Propagation through Context-Insensitive Slicingdoctoral thesis10.11575/PRISM/34987