Home > Events > PhD Defense - Haipeng Cai

PhD Defense - Haipeng Cai

Start: 7/13/2015 at 2:30PM
End: 7/13/2015 at 5:30PM
Location: 117 I Cushing Hall
Attendees: Faculty and students are welcome to attend the presentation portion of the defense. Light refreshments will be served.
Add to calendar:
iCal vCal

Haipeng Cai

July 10, 2015                2:30 pm        117 - I Cushing Hall

Advisor:  Dr. Douglas Thain

Committee Members:

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.