PhD Defense - Haipeng Cai
|Start:||7/13/2015 at 2:30PM|
|End:||7/13/2015 at 5:30PM|
|Location:||117 I Cushing Hall|
Faculty and students are welcome to attend the presentation portion of the defense. Light refreshments will be served.
July 10, 2015 2:30 pm 117 - I Cushing Hall
Advisor: Dr. Douglas Thain
Dr. Colin McMillan Dr. Aaron Striegel Dr. Raul Santelices
Cost-effective Dependence Analyses for Reliable Software Evolution
Program dependence analysis is a fundamental approach to code-based impact prediction which underlies change planning and management, as well as a range of other dependence-based client analyses such as testing, debugging, and comprehension, all of which are crucial for reliable software evolution. However, existing such approaches suffer from difficult cost-effectiveness balancing: Fine-grained analyses offer detailed but large results at prohibitive costs, whereas coarser analyses achieve better efficiency at the cost of great imprecision. In addition, current techniques have little utility when applied to distributed systems consisting of decoupled components.
This dissertation addresses these challenges via three novel approaches to cost-effectivedependence analysis, followed by a comprehensive study assessing representative prior alternatives. First, a quantitative semantic-dependence analysis is presented to separate program entities by relevance, which has been applied for prioritizing impact prediction so as to reduce impact-inspection efforts at statement level. The second approach attacks the great imprecision and low cost-effectiveness of previous dynamic impact analyses at method level by exploiting a diverse set of hybrid techniques that combine static and dynamic dependence analysis, which ended up with not only more precise and cost-effective techniques but also a unified framework that offers variable cost-effectiveness options to fit varying budgets and task scenarios for impact prediction. Finally, a new dynamic analysis is developed to discover method-level runtime dependencies both within and across multiple concurrent processes, which is shown instrumental in evolving distributed systems.