Dr. Hao Zhong
Department of Computer Science and Engineering
Shanghai Jiao Tong University
I received my Ph.D degree from Peking University in 2009. My Ph.D dissertation was nominated for the distinguished Ph.D dissertation award of China Computer Federation. My PhD advisor is Prof. Hong Mei, and was co-advised by Prof. Lu Zhang and Prof. Tao Xie. After graduation, I joined Institute of Software, Chinese Academy of Sciences as an assistant professor, and was promoted as an associated professor in 2011. From 2012 to 2014, I was a visiting scholar with University of California, Davis, where I worked with Prof. Zhendong Su. In 2014, I joined Shanghai Jiao Tong University. I am a recipient of ACM SIGSOFT Distinguished Paper Award, the best paper award of ASE, and the best paper award of APSEC.
Please submit your high-quality research papers to ASE 2021 and MSR 2021.
Prospective Master and PhD Students: Please contact me, if you are a self-motivated student with strong programming skills and interested in software engineering and its related research topics.
My research interests include empirical software engineering, software maintenance, and mining software engineering data, with emphasis on the following themes:
- Code synchronization/migration:
- Even with tools, migrating/synchronizing code from one location/language to another location/language is time-consuming, and the process can introduce errors. While the prior tools require programmers to write API mappings, in 2010, we proposed the first approach that mines API mappings across languages ICSE 2010. In 2013, we conducted an empirical study to understand the behavioral differences of API mappings FASE 2013. In 2019, we proposed an approach to migrate UI tests from iOS to Android, without mining their API mappings ISSTA 2019. Besides API mappings, we explored other aspects of code synchronization/migration. In 2016, we proposed an approach to synchronize code clones, when one instance is updated ICPC 2016.
- Software evolution and its analysis:
- In 2017, we proposed the first approach called GRAPA that is able to build accurate system dependency graphs from partial code ASE 2017. The tool is useful to analyze revision histories, since they are often not compilable after they are checked out. With its support, we have explored the change patterns of software evolution ICSME 2018, JSS 2019, and how to more effectively detect bugs SCIENCE CHINA Information Sciences 2019. With GRAPA, we propose an approach called DEPA that has the capability of inferring bug signatures from thousands of bug fixes for the first time, and it has detected some real bugs TSE 2020.
- Documentation errors:
- Software documents consist of natural language sentences, code samples, stack traces, and other elements. It brings new challenges to detect their errors. In 2011, we conducted an empirical study to understand how programmers maintain API documents FASE 2011. In 2013, we proposed the first approach that detects bugs from mixed documents such as API documents OOPSLA 2013. It detected thousands of real bugs in API documents, and most of them are obsolete code samples/names.
- Program repair:
- In 2015 and 2018, we conducted empirical studies to understand the theoretical limits and the potential of automatic program repair ICSE 2015, EMSE 2018. In 2015, we proposed an approach that enrich the repair operators from mining StackOverflow SANER 2018. In 2018, we argue that it is a way to implement practical tools, if we design automatic-program-repair tools for individual types of bugs JSS 2018.
- Mining specifications:
- A specification defines the legal usage of a software. In 2009, we proposed the first approach that mines specifications and uses mined specifications to index code samples ECOOP 2009, and the first approach that mines specifications from API documents ASE2009. In 2012, we further proposed an approach that mines specifications from both documents and API code ICSE 2012. In 2018, we conducted an empirical study to explore various open questions in this research field, and its results are useful to improve the state of the art TSE 2018. Through mined specifications, we have detected hundreds of real bugs. In 2020, we conducted an empirical study to analyze how programmers write parameter rules ICSE 2020.
- Concurrency bugs:
- In 2015, we build a benchmark for concurrency bugs ASE 2015. When we prepare the benchmark, we find that locks can be hidden inside APIs, and existing tools cannot detect concurrency bugs, if locks are hidden. In 2019, we proposed an approach to reveal hidden locks inside APIs ASE 2016.
A complete list is here.
Professional Activities and Service
- Program Committee (SE):
- ICSE 2016 SEIP, ICSE 2020, ICSE 2020 doctor symposium
- ESEC/FSE 2020
- OOPSLA 2017
- ASE 2018, ASE 2019, ASE 2021
- ICSME 2017, ICSME 2018, ICSME 2019
- MSR 2019, MSR 2020, MSR 2021
- COMPSAC 2018, COMPSAC2019
- TASE 2015
- Program Committee (AI):
- (External) Reviewer: ICSE 2011, FSE 2015, ASE 2011, ASE 2010, ASE 2009, ASE 2008, ICSM 2011, ICSM 2009, ICSM 2006, ESEM 2011, QSIC 2009, Transaction on Software Engineering, Transaction on Software Engineering and Methodology, Software Testing Verification and Reliability, IEEE Software, Information and Software Technology, Science China Information Sciences, and Chinese Journal of Computers.