kirancodes.me
To Proof Maintenance & Beyond!

Cross-language program slicing for dynamic web applications

Hung Viet Nguyen, Christian Kästner, Tien N. Nguyen

Abstract

During software maintenance, program slicing is a useful technique to assist developers in understanding the impact of their changes. While different program-slicing techniques have been proposed for traditional software systems, program slicing for dynamic web applications is challenging since the client-side code is generated from the server-side code and data entities are referenced across different languages and are often embedded in string literals in the server-side program. To address those challenges, we introduce WebSlice, an approach to compute program slices across different languages for web applications. We first identify data-flow dependencies among data entities for PHP code based on symbolic execution. We also compute SQL queries and a conditional DOM that represents client-code variations and construct the data flows for embedded languages: SQL, HTML, and JavaScript. Next, we connect the data flows across different languages and across PHP pages. Finally, we compute a program slice for a given entity based on the established data flows. Running WebSlice on five real-world, open-source PHP systems, we found that, out of 40,670 program slices, 10% cross languages, 38% cross files, and 13% cross string fragments, demonstrating the potential benefit of tool support for cross-language program slicing in dynamic web applications.

BibTeX
@inproceedings{Nguyen-al:FSE15,
  author    = {Hung Viet Nguyen and
               Christian K{\"{a}}stner and
               Tien N. Nguyen},
  title     = {Cross-language program slicing for dynamic web applications},
  booktitle = {{ESEC/SIGSOFT} {FSE}},
  pages     = {369--380},
  publisher = {{ACM}},
  year      = {2015},
}

Related papers