重庆大学| 主页焦点| 主页推荐| 网站地图| 使用帮助 RSS 我要投稿

计算机学院专家讲座“Boosting Complete-Code Tool for Partial Program Analysis”

时间 : 2017年11月17日 09时30分

地点 : 重庆大学主教学大楼1811

主办单位 : 计算机学院

协办单位 : 计算机学院

“Boosting Complete-Code Tool for Partial Program Analysis”

主讲人 : 钟浩

报告摘要:To improve software quality, researchers and practitioners have proposed static analysis tools for various purposes (e.g., detecting bugs, anomalies, and vulnerabilities). Although many such tools are powerful, they typically need complete programs where all the code names (e.g., class names, method names) are resolved. In many scenarios, researchers have to analyze partial programs in bug fixes (the revised source files can be viewed as a partial program), tutorials, and code search results. As a partial program is a subset of a complete program, many code names in partial programs are unknown. As a result, despite their syntactical correctness, existing complete-code tools cannot analyze partial programs, and existing partial-code tools are limited in both their number and analysis capability. Instead of proposing another tool for analyzing partial programs, we propose a general approach, called GRAPA that boosts existing tools for complete programs to analyze partial programs. Our major insight is that after unknown code names are resolved, tools for complete programs can analyze partial programs with minor modifications. In particular, GRAPA locates Java archive files to resolve unknown code names, and resolves the remaining unknown code names from resolved code names. To illustrate GRAPA, we implement a tool that leverages the state-of-the-art tool, WALA, to analyze Java partial programs. We thus implemented the first tool that is able to build system dependency graphs for partial programs, complementing existing tools. We conduct an evaluation on 8,198 partial-code commits from four popular open source projects. Our results show that GRAPA fully resolved unknown code names for 98.5% bug fixes, with an accuracy of 96.1% in total. Furthermore, our results show the significance of GRAPA’s internal techniques, which provides insights on how to integrate with more complete-code tools to analyze partial programs.


主讲人简介:

 


主讲人简介: Hao Zhong received his PhD degree from Peking University in 2009. His Ph.D dissertation was nominated for the distinguished Ph.D dissertation award of China Computer Federation. After graduation, he worked as an assistant professor at Institute of Software, Chinese Academy of Sciences, and was promoted as an associate professor in 2012. From 2013 to 2014, he was a visiting scholar at University of California, Davis. Since 2014, he had become an associate professor at Shanghai Jiao Tong University. He is a member of the IEEE and ACM. His research interest is the area of software engineering, with an emphasis on empirical software engineering and mining software repositories. He is a recipient of ACM SIGSOFT Distinguished Paper Award 2009, the best paper award of ASE 2009, and the best paper award of APSEC 2008。

 


作者 : 计算机学院

阅读 : 0