Zhaogui Xu

dblp:136/4569 · DBLP profile ↗
← Back
11ranked-venue papers
3as first author
2since 2021 · last 2025
0009-0009-3975-2481ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 9 · 3 first-author · 1 since 2021Artificial intelligence and machine learning · 1 · 1 since 2021Computer networks · 1Applied, interdisciplinary, general and emerging computing · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
6 papers
Software maintenance and evolution · 32% Program analysis · 24% Debugging and program repair · 17%
Databases, data mining, and information retrieval
1 paper
Data integration and cleaning · 33% Graph data management · 33% Machine learning and data management · 33%
Computer networks
1 paper
Network measurement and analytics · 50% Routing and switching · 50%

Topics — the 19 heaviest of 22, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software maintenance and evolution › code change analysis
change classification
0.812024
Understanding Code Changes Practically with Small-Scale Language Models · ASE 2024
Software maintenance and evolution › program comprehension
code change understanding
0.812024
Understanding Code Changes Practically with Small-Scale Language Models · ASE 2024
Compilers and program optimization › program transformation › program derivation
code refinement
0.812024
Understanding Code Changes Practically with Small-Scale Language Models · ASE 2024
Debugging and program repair
fault localization
0.622018
Debugging with intelligence via probabilistic inference · ICSE 2018
Python predictive analysis for bug detection · SIGSOFT FSE 2016
Program analysis
static analysis
0.522020
Phys: probabilistic physical unit assignment and inconsistency detection · ESEC/SIGSOFT FSE 2018
Impact analysis of cross-project bugs on software ecosystems · ICSE 2020
Software maintenance and evolution
software ecosystems
0.412020
Impact analysis of cross-project bugs on software ecosystems · ICSE 2020
Routing and switching › routing
routing control
0.312018
LTSM: Lightweight and Time Sliced Measurement for Link State · ICNP 2018
Requirements engineering and software design › inconsistency management
consistency checking
0.312018
Phys: probabilistic physical unit assignment and inconsistency detection · ESEC/SIGSOFT FSE 2018
Debugging and program repair › fault localization
probabilistic fault localization
0.312018
Debugging with intelligence via probabilistic inference · ICSE 2018
Data integration and cleaning
data provenance
0.312017
LAMP: data provenance for graph based machine learning algorithms through derivative computation · ESEC/SIGSOFT FSE 2017
Graph data management
differential computation
0.312017
LAMP: data provenance for graph based machine learning algorithms through derivative computation · ESEC/SIGSOFT FSE 2017
Program analysis › static analysis
bug detection
0.212016
Python predictive analysis for bug detection · SIGSOFT FSE 2016
Program analysis
dynamic analysis
0.212016
Python predictive analysis for bug detection · SIGSOFT FSE 2016
Programming languages and type systems › type inference
probabilistic type inference
0.212016
Python probabilistic type inference with natural language support · SIGSOFT FSE 2016
Program analysis
symbolic execution
0.212016
Python predictive analysis for bug detection · SIGSOFT FSE 2016
Program analysis › dynamic analysis
trace analysis
0.212016
Python predictive analysis for bug detection · SIGSOFT FSE 2016
Programming languages and type systems
type inference
0.212016
Python probabilistic type inference with natural language support · SIGSOFT FSE 2016
Machine learning › Efficient and distributed learning › model compression › lightweight neural network
small language models
0.212024
Understanding Code Changes Practically with Small-Scale Language Models · ASE 2024
Debugging and program repair
automated debugging
0.112018
Debugging with intelligence via probabilistic inference · ICSE 2018

Methods — techniques the papers use, named apart from their topics

fine-tuning · 1.5probabilistic inference · 0.9small language models · 0.8small language model · 0.8symbolic constraint solving · 0.7time-sliced measurement · 0.7distributed task assignment · 0.7program semantics analysis · 0.3probability distribution · 0.3bayesian modeling · 0.3program dependence analysis · 0.3automatic differentiation · 0.3trace encoding · 0.2natural language analysis · 0.2
YearPublicationVenuePosition
2025 Code Graph Model (CGM): A Graph-Integrated Large Language Model for Repository-Level Software Engineering Tasks
abstract
Recent advances in Large Language Models (LLMs) have shown promise in function-level code generation, yet repository-level software engineering tasks remain challenging. Current solutions predominantly rely on proprietary LLM agents, which introduce unpredictability and limit accessibility, raising concerns about data privacy and model customization. This paper investigates whether open-source LLMs can effectively address repository-level tasks without requiring agent-based approaches. We demonstrate this is possible by enabling LLMs to comprehend functions and files within codebases through their semantic information and structural dependencies. To this end, we introduce Code Graph Models (CGMs), which integrate repository code graph structures into the LLM's attention mechanism and map node attributes to the LLM's input space using a specialized adapter. When combined with an agentless graph RAG framework, our approach achieves a 43.00% resolution rate on the SWE-bench Lite benchmark using the open-source Qwen2.5-72B model. This performance ranks first among open weight models, second among methods with open-source systems, and eighth overall, surpassing the previous best open-source model-based method by 12.33%.
Hongyuan Tao, Ying Zhang 0090, Zhenhao Tang, Hongen Peng, Xukun Zhu, Bingchang Liu, Yingguang Yang, Ziyin Zhang, Zhaogui Xu, Haipeng Zhang 0004, Linchao Zhu, Rui Wang 0015, Hang Yu 0002, Peng Di
NeurIPS9
2024 Understanding Code Changes Practically with Small-Scale Language Models
abstract
Recent studies indicate that traditional techniques for understanding code changes are not as effective as techniques that directly prompt language models (LMs). However, current LM-based techniques heavily rely on expensive, large LMs (LLMs) such as GPT-4 and Llama-13b, which are either commercial or prohibitively costly to deploy on a wide scale, thereby restricting their practical applicability. This paper explores the feasibility of deploying small LMs (SLMs) while maintaining comparable or superior performance to LLMs in code change understanding. To achieve this, we created a small yet high-quality dataset called HQCM which was meticulously reviewed, revised, and validated by five human experts. We fine-tuned state-of-the-art 7b and 220m SLMs using HQCM and compared them with traditional techniques and LLMs with ≥70b parameters. Our evaluation confirmed HQCM's benefits and demonstrated that SLMs, after finetuning by HQCM, can achieve superior performance in three change understanding tasks: change summarization, change classification, and code refinement. This study supports the use of SLMs in environments with security, computational, and financial constraints, such as in industry scenarios and on edge devices, distinguishing our work from the others.
Cong Li 0003, Zhaogui Xu, Peng Di, Dongxia Wang 0002, Zheng Li 0035
ASE2
2020 Impact analysis of cross-project bugs on software ecosystems
abstract
Software projects are increasingly forming social-technical ecosystems within which individual projects rely on the infrastructures or functional components provided by other projects, leading to complex inter-dependencies. Through inter-project dependencies, a bug in an upstream project may have profound impact on a large number of downstream projects, resulting in cross-project bugs. This emerging type of bugs has brought new challenges in bug fixing due to their unclear influence on downstream projects. In this paper, we present an approach to estimating the impact of a cross-project bug within its ecosystem by identifying the affected downstream modules (classes/methods). Note that a downstream project that uses a buggy upstream function may not be affected as the usage does not satisfy the failure inducing preconditions. For a reported bug with the known root cause function and failure inducing preconditions, we first collect the candidate downstream modules that call the upstream function through an ecosystem-wide dependence analysis. Then, the paths to the call sites of the buggy upstream function are encoded as symbolic constraints. Solving the constraints, together with the failure inducing preconditions, identifies the affected downstream modules. Our evaluation of 31 existing upstream bugs on the scientific Python ecosystem containing 121 versions of 22 popular projects (with a total of 16 millions LOC) shows that the approach is highly effective: from the 25490 candidate downstream modules that invoke the buggy upstream functions, it identifies 1132 modules where the upstream bugs can be triggered, pruning 95.6% of the candidates. The technique has no false negatives and an average false positive rate of 7.9%. Only 49 downstream modules (out of the 1132 we found) were reported before to be affected.
Wanwangying Ma, Lin Chen 0015, Xiangyu Zhang 0001, Yang Feng 0003, Zhaogui Xu, Zhifei Chen, Yuming Zhou, Baowen Xu
ICSE5
2018 LTSM: Lightweight and Time Sliced Measurement for Link State
abstract
Link state measurement is the fundamental part of routing control and has received wide attention in research community. However, due to the massive number of network nodes, it is considerably expensive to measure the network timely. In this work, we propose LTSM, a lightweight and time sliced measurement approach for link state to reduce the measurement cost. In LTSM, the measurement tasks are assigned to all nodes evenly and launched at proper time. Theoretically, the measurement cost can be reduced by 50%. We design a prototype of the approach and implement it on a real-world network consisting of 37 public cloud nodes and 1, 332 links. Experimental results show that our approach can acquire the link state of the network efficiently.
Liang Gu, Ran Ju, Zhaogui Xu
ICNP3
2018 Debugging with intelligence via probabilistic inference
abstract
We aim to debug a single failing execution without the assistance from other passing/failing runs. In our context, debugging is a process with substantial uncertainty - lots of decisions have to be made such as what variables shall be inspected first. To deal with such uncertainty, we propose to equip machines with human-like intelligence. Specifically, we develop a highly automated debugging technique that aims to couple human-like reasoning (e.g., dealing with uncertainty and fusing knowledge) with program semantics based analysis, to achieve benefits from the two and mitigate their limitations. We model debugging as a probabilistic inference problem, in which the likelihood of each executed statement instance and variable being correct/faulty is modeled by a random variable. Human knowledge, human-like reasoning rules and program semantics are modeled as conditional probability distributions, also called probabilistic constraints. Solving these constraints identifies the most likely faulty statements. Our results show that the technique is highly effective. It can precisely identify root causes for a set of real-world bugs in a very small number of interactions with developers, much smaller than a recent proposal that does not encode human intelligence. Our user study also confirms that it substantially improves human productivity.
Zhaogui Xu, Shiqing Ma, Xiangyu Zhang 0001, Shuofei Zhu, Baowen Xu
ICSE1
2018 Phys: probabilistic physical unit assignment and inconsistency detection
abstract
Program variables used in robotic and cyber-physical systems often have implicit physical units that cannot be determined from their variable types. Inferring an abstract physical unit type for variables and checking their physical unit type consistency is of particular importance for validating the correctness of such systems. For instance, a variable with the unit of ‘meter’ should not be assigned to another variable with the unit of ‘degree-per-second’. Existing solutions have various limitations such as requiring developers to annotate variables with physical units and only handling variables that are directly or transitively used in popular robotic libraries with known physical unit information. We observe that there are a lot of physical unit hints in these softwares such as variable names and specific forms of expressions. These hints have uncertainty as developers may not respect conventions. We propose to model them with probability distributions and conduct probabilistic inference. At the end, our technique produces a unit distribution for each variable. Unit inconsistencies can then be detected using the highly probable unit assignments. Experimental results on 30 programs show that our technique can infer units for 159.3% more variables compared to the state-of-the-art with more than 88.7% true positives, and inconsistencies detection on 90 programs shows that our technique reports 103.3% more inconsistencies with 85.3% true positives.
Sayali Kate, John-Paul Ore, Xiangyu Zhang 0001, Sebastian G. Elbaum, Zhaogui Xu
ESEC/SIGSOFT FSE5
2017 LAMP: data provenance for graph based machine learning algorithms through derivative computation
abstract
Data provenance tracking determines the set of inputs related to a given output. It enables quality control and problem diagnosis in data engineering. Most existing techniques work by tracking program dependencies. They cannot quantitatively assess the importance of related inputs, which is critical to machine learning algorithms, in which an output tends to depend on a huge set of inputs while only some of them are of importance. In this paper, we propose LAMP, a provenance computation system for machine learning algorithms. Inspired by automatic differentiation (AD), LAMP quantifies the importance of an input for an output by computing the partial derivative. LAMP separates the original data processing and the more expensive derivative computation to different processes to achieve cost-effectiveness. In addition, it allows quantifying importance for inputs related to discrete behavior, such as control flow selection. The evaluation on a set of real world programs and data sets illustrates that LAMP produces more precise and succinct provenance than program dependence based techniques, with much less overhead. Our case studies demonstrate the potential of LAMP in problem diagnosis in data engineering.
Shiqing Ma, Yousra Aafer, Zhaogui Xu, Wen-Chuan Lee, Juan Zhai, Yingqi Liu, Xiangyu Zhang 0001
ESEC/SIGSOFT FSE3
2016 Python predictive analysis for bug detection
abstract
Python is a popular dynamic language that allows quick software development. However, Python program analysis engines are largely lacking. In this paper, we present a Python predictive analysis. It first collects the trace of an execution, and then encodes the trace and unexecuted branches to symbolic constraints. Symbolic variables are introduced to denote input values, their dynamic types, and attribute sets, to reason about their variations. Solving the constraints identifies bugs and their triggering inputs. Our evaluation shows that the technique is highly effective in analyzing real-world complex programs with a lot of dynamic features and external library calls, due to its sophisticated encoding design based on traces. It identifies 46 bugs from 11 real-world projects, with 16 new bugs. All reported bugs are true positives.
Zhaogui Xu, Peng Liu 0010, Xiangyu Zhang 0001, Baowen Xu
SIGSOFT FSE1
2016 Python probabilistic type inference with natural language support
abstract
We propose a novel type inference technique for Python programs. Type inference is difficult for Python programs due to their heavy dependence on external APIs and the dynamic language features. We observe that Python source code often contains a lot of type hints such as attribute accesses and variable names. However, such type hints are not reliable. We hence propose to use probabilistic inference to allow the beliefs of individual type hints to be propagated, aggregated, and eventually converge on probabilities of variable types. Our results show that our technique substantially outperforms a state-of-the-art Python type inference engine based on abstract interpretation.
Zhaogui Xu, Xiangyu Zhang 0001, Lin Chen 0015, Kexin Pei, Baowen Xu
SIGSOFT FSE1
2014 Dynamic Slicing of Python Programs
abstract
Python is widely used for web programming and GUI development. Due to the dynamic features of Python, Python programs may contain various unlimited errors. Dynamic slicing extracts those statements from a program which affect the variables in a slicing criterion with a particular input. Dynamic slicing of Python programs is essential for program debugging and fault location. In this paper, we propose an approach of dynamic slicing for Python programs which combines static analysis and dynamic tracing of the Python byte code. It precisely handles the dynamic features of Python, such as dynamic typing of variables, heavy usage of first-class objects, and dynamic modifications of classes and instances. Finally, we evaluate our approach on several Python programs. Experimental results show that the whole dynamic slicing for each subject program spends at most about 13 seconds on the average and costs at most 7.58 mb memory space overhead. Furthermore, the average slice ratio of Python source code ranges from 9.26% to 59.42%. According to it, our dynamic slicing approach can be effectively and efficiently performed. To the best of our knowledge, it is the first one of dynamic slicing for Python programs.
Zhifei Chen, Lin Chen 0015, Yuming Zhou, Zhaogui Xu, William C. Chu, Baowen Xu
COMPSAC4
2013 Recommending Web Service Based on User Relationships and Preferences
abstract
With the popularity of social network and the increasing number of Web Services, making individual service recommendation has been a hot research spot nowadays. In this paper, we present a service recommendation algorithm named as URPC-Rec (User Relationships & Preferences Clustering and Recommendation), which first clusters users based on their history behaviors such as the services they ever invoked, and then makes personalized recommendations for users considering both the clustering results and user basic information and relationships, such as gender, age, occupation, preference tags, etc. The case study indicates that URPC-Rec can effectively reduce the dimensionality of sparse matrix, and partially solve the cold-start problem of recommendation systems. The comprehensive experiment shows that URPC-Rec algorithm with user relationships and references has better recommending result than the one without user information and the collaborative filtering approach.
Zhaogui Xu, Lei Xu 0003, Yanhui Li 0001, Lin Chen 0015
ICWS2