Associate Professor with Tenure
Research Interests: Software engineering, programming languages
Office Phone: 86-10-6075 7008-12
Xiong, Yingfei is an assistant professor under the young talents plan in Department of Computer Science and Technology, School of EECS. He obtained his B.Eng. from University of Electronic Science and Technology of China in 2004, and spent two years a graduate student at Peking University, and got his Ph.D. from University of Tokyo in 2009. His research interests include software engineering and programming language in general, and software debugging and bidirectional transformation in particular.
Yingfei has published more than 50 peer-reviewed research papers, and many of them are published in top-tier conferences and journals, such as ICSE, FSE, TSE, ASE, and ISSTA. He has served in Program Committee or External Review Committee of various international conferences such as OOPSLA, FASE, SPLC, APLAS, ICSE NIER, ASE Demo, and TASE, and as the co-organizer of BX meeting 2016, Tutorial Co-Chair of SPLC 2017, and a regular reviewer of IEEE Trans. Soft. Eng., Sci. Comp. Prog., J Sys. Soft., IEEE Trans. Service Computing, etc. He was a member of a team winning the First-Class Award on Scientific and Technological Progress, Ministry of Education in 2015. He was the leader of a project supported by the 973 young scientist fund, which is one of the most competitive fund for young scientist.
Yingfei Xiong’s research achievements can be summarized as follows.
1) Delta-based data synchronization: Data synchronization is the problem of propagating changes between data in different formats. This problem has been approached in a state-based bidirectional transformation. That is, given two heterogeneous but related pieces of data, x and y, and when x is modified, the system takes the versions of x before and after the change, and produces a new version of the y that is consistent with the new version of Yingfei’s research reveals that this framework may results in semantic problems at horizontal and vertical compositions, leading to unsatisfactory behavior, and proposes delta-based framework to solve this problem. Furthermore, Yingfei’s research also generalizes data synchronization from the synchronization between two pieces of data to any data. Delta-based framework is now one of the popular frameworks in defining data synchronizers.
2) Precise program repair: Program repair techniques try to modify a buggy program until it satisfies the specification. A frequent used specification is the test suite in real world programs. However, since real world test suites are often weak, satisfying the test suites does not necessarily mean the patched program is correct, and existing program repair techniques often produce a large number of incorrect patches. This problem is known as “weak test suites”. Yingfei’s research focus on reducing the number incorrect patches in program repair system. His research combines different information sources such as open source repository, QA sites to make probabilistic reasoning on the patches, and select the most probable patch to generate. His ACS system is the repair system with the highest precision and recall on Java programs.
3) Interactive configuration repair: Modern large software systems often have complex configuration systems, and fixing bugs in the configurations is often problematic to the users. Existing approaches try to find a solution for the user, however, this solution often is not what the user wants. On the other hand, enumerating all solutions is often infeasible as the number of possible solution is large. Yingfei’s research proposes range fixes, which are a compact representation of solutions that could be easily read by the users. Yingfei’s research also proposes algorithms to automatically generate range fixes, making it a useful in diagnosing the configurations of large systems.