EDBT 2026 Demo / reviewers in the wild / expert
Xiaohu Yang 0001
dblp:95/6761 · also Xiao-Hu Yang 0001
· DBLP profile ↗
88ranked-venue papers
2as first author
51since 2021 · last 2026
—ORCID · conflict
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 59 · 2 first-author · 39 since 2021Applied, interdisciplinary, general and emerging computing · 16 · 7 since 2021Human-computer interaction and ubiquitous computing · 9Databases, data management, data science and information retrieval · 4 · 4 since 2021Artificial intelligence and machine learning · 3 · 2 since 2021Security and privacy · 3 · 3 since 2021Computer networks · 1 · 1 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Field Matters: A Lightweight LLM-enhanced Method for CTR PredictionabstractClick-through rate (CTR) prediction is a fundamental task in modern recommender systems. In recent years, the integration of large language models (LLMs) has been shown to effectively enhance the performance of traditional CTR methods. However, existing LLM-enhanced methods often require extensive processing of detailed textual descriptions for large-scale instances or user/item entities, leading to substantial computational overhead. To address this challenge, this work introduces LLaCTR, a novel and lightweight LLM-enhanced CTR method that employs a field-level enhancement paradigm. Specifically, LLaCTR first utilizes LLMs to distill crucial and lightweight semantic knowledge from small-scale feature fields through self-supervised field-feature fine-tuning. Subsequently, it leverages this field-level semantic knowledge to enhance both feature representation and feature interactions. In our experiments, we integrate LLaCTR with six representative CTR models across four datasets, demonstrating its superior performance in terms of both effectiveness and efficiency compared to existing LLM-enhanced methods. Our code is available at https://github.com/istarryn/LLaCTR. Feng Liu 0047, Jiawei Chen 0007, Xingyu Lou, Changwang Zhang, Jun Wang 0020, Yuegang Sun, Xiaohu Yang 0001, Can Wang 0001 |
WWW | 8 |
| 2026 | Concordia: Enabling Low-Conflict Distributed Transaction Scheduling in Sharding Blockchain via Cooperative Perception
Yanxiu Liu, Linpeng Jia, Xiaohu Yang 0001, Zhongcheng Li, Yi Sun 0004 |
WWW | 3 |
| 2026 | Improving the ability of pre-trained language model by imparting large language model's experience
Chao Ni 0001, Xinrui Li 0004, Xiaohu Yang 0001 |
J. Syst. Softw. | 4 |
| 2026 | Improving Gas Efficiency in Smart Contracts: Data-Driven Insights and LLM-Assisted RemediationabstractSmart contracts, primarily written in Solidity, are Turing-complete programs on platforms like Ethereum, requiring gas fees for deployment and execution. Gas quantifies computational costs, and inefficient contracts result in unnecessary expenses for developers and users. Gas optimization at the source code level has been studied in various related works; however, existing methods for summarizing gas-inefficient patterns primarily rely on author-defined rules or heuristic approaches, and their evaluations lack a labeled dataset.In this paper, we conduct a comprehensive empirical study on the issue of gas optimization in smart contracts. We begin by gathering audit reports from Code4rena, a well-known smart contract audit platform. These reports include both expert evaluations, conducted by professionals known as Wardens, and automated analyses generated by the platform’s static analysis tool, 4naly3er. After filtering out false-positive gas optimization instances from the automated reports, we identify 2,095 instances of gas-inefficient patterns across 54 projects. We categorize these inefficiencies into 24 types using thematic analysis and find that static analysis tools often produce false positives and negatives. To address this, we propose a hybrid method combining static analysis and large language models (LLMs) to detect and repair gas inefficiencies. The static analysis tool identifies potential optimization opportunities, while the LLM refines these findings and suggests effective repairs. Our evaluation shows that our approach achieves a precision rate of 82.28% and a recall rate of 88.46%, and can save 919 units of gas per function on average during execution. Yijie Ruan, Zhipeng Gao 0002, Jiachi Chen, Lingfeng Bao, Xiaohu Yang 0001 |
IEEE Trans. Software Eng. | 5 |
| 2025 | What You See is What You Get: Attention-Based Self-Guided Automatic Unit Test GenerationabstractSoftware defects heavily affect software's function-alities and may cause huge losses. Recently, many AI-based approaches have been proposed to detect defects, which can be divided into two categories: software defect prediction and automatic unit test generation. While these approaches have made great progress in software defect detection, they still have several limitations in practical application, including the low confidence of prediction models and the inefficiency of unit testing models. To address these limitations, we propose a WYSIWYG (i.e., What You See Is What You Get) approach: Attention-based Self-guided Automatic Unit Test GenERation (AUGER), which contains two stages: defect detection and error triggering. In the former stage, AUGER first detects the proneness of defects. Then, in the latter stage, it guides to generate unit tests for triggering such an error with the help of critical information obtained by the former stage. To evaluate the effectiveness of AUGER, we conduct a large-scale experiment by comparing with the state-of-the-art (SOTA) approaches on the widely used datasets (i.e., Bears, Bugs.jar, and Defects4J). AUGER makes great improvements by 4.7% to 35.3% and 17.7% to 40.4% in terms of Fl-score and Precision in defect detection, and can trigger 23 to 84 more errors than SOTAs in unit test generation. Besides, we also conduct a further study to verify the generalization in practical usage by collecting a new dataset from real-world projects. Chao Ni 0001, Xiaodan Xu, Xiaohu Yang 0001 |
ICSE | 4 |
| 2025 | FIRE: Smart Contract Bytecode Function Identification via Graph-Refined Hybrid Feature EncodingabstractThe growing popularity of smart contracts has spurred an increasing demand for efficient analysis of their bytecode.Reverse engineering plays a critical role in understanding and auditing smart contracts, with function identification being a key aspect.However, existing function identification techniques often struggle with scalability, accuracy, and adaptability across different contract versions.This paper presents FIRE (Smart Contract Bytecode Function Identification via Graph-Refined Hybrid Encoding), a novel approach to function identification in Ethereum smart contract bytecode.By leveraging hybrid encoding of basic blocks and incorporating a graph neural network (GNN) based on control flow graph (CFG), our method improves the effectiveness of function identification.The approach demonstrates strong generalization across contract versions and significantly reduces runtime.We evaluate FIRE on multiple datasets and show its superior performance compared to existing techniques, highlighting its potential for efficient smart contract bytecode analysis. Lingfeng Bao, Xiaohu Yang 0001 |
Internetware | 3 |
| 2025 | Why Is My Transaction Risky? Understanding Smart Contract Semantics and Interactions in the NFT EcosystemabstractThe NFT ecosystem represents an interconnected, decentralized environment that encompasses the creation, distribution, and trading of Non-Fungible Tokens (NFTs), where key actors, such as marketplaces, sellers, and buyers, utilize smart contracts to facilitate secure, transparent, and trustless transactions. Scam tokens are deliberately created to mislead users and facilitate financial exploitation, posing significant risks in the NFT ecosystem. Prior work has explored the NFT ecosystem from various perspectives, including security challenges, actor behaviors, and risks from scams and wash trading, leaving a gap in understanding the semantics and interactions of smart contracts during transactions, and how the risks associated with scam tokens manifest in relation to the semantics and interactions of contracts. To bridge this gap, we conducted a large-scale empirical study on smart contract semantics and interactions in the NFT ecosystem, using a curated dataset of nearly 100 million transactions across 20 million blocks on Ethereum. We observe a limited semantic diversity among smart contracts in the NFT ecosystem, dominated by proxy, token, and DeFi contracts. Marketplace and proxy registry contracts are the most frequently involved in smart contract interactions during transactions, engaging with a broad spectrum of contracts in the ecosystem. Token contracts exhibit bytecode-level diversity, whereas scam tokens exhibit bytecode convergence. Certain interaction patterns between smart contracts are common to both risky and non-risky transactions, while others are predominantly associated with risky transactions. Based on our findings, we provide recommendations to mitigate risks in the blockchain ecosystem, and outline future research directions. Xuanming Liu, Zhiyuan Wan, Zuobin Wang, David Lo 0001, Difan Xie, Xiaohu Yang 0001 |
ASE | 7 |
| 2025 | ACTaint: Agent-Based Taint Analysis for Access Control Vulnerabilities in Smart ContractsabstractSmart contracts have become a foundational component of blockchain systems, enabling decentralized, transparent, and autonomous execution of application logic across various domains, including decentralized finance (DeFi), gaming, and digital identity. Due to their immutable and trustless nature, smart contracts often manage and transfer substantial amounts of assets without human intervention. However, vulnerabilities in smart contracts can lead to substantial financial losses. Among these, access control vulnerabilities are particularly critical, typically originating from inadequately designed or incorrectly implemented permission mechanisms. Most existing methods for detecting access control vulnerabilities are based on static analysis, which heavily relies on manually defined rules and pattern matching. While these methods are efficient at identifying certain classes of known vulnerabilities, they are inherently limited in scope and generalization. In particular, they often fail to capture the underlying business logic of smart contracts.In this paper, we propose an LLM-based multi-agent system, named ACTaint, for detecting access control vulnerabilities in Solidity smart contracts. ACTaint first performs static analysis to guide the sink agent in identifying potential sinks. Then, based on the identified sinks, the taint agent conducts taint analysis to determine whether a data flow exists from untrusted sources to these sinks. We evaluate our approach on three datasets: known CVE cases, a set of 624 real-world smart contracts, and another set of 93 real-world smart contracts. The results demonstrate that our method outperforms existing tools in both datasets. On the first dataset, our approach outperforms state-of-the-art tools, including AChecker and GPTLens, achieving higher recall and F1-score. On the second dataset, our method surpasses the leading static analysis tool AChecker, with a 8.3% improvement in precision and an 9.7% improvement in F1-score. Huarui Lin, Zhipeng Gao 0002, Jiachi Chen, Xiang Chen 0005, Xiaohu Yang 0001, Lingfeng Bao |
ASE | 5 |
| 2025 | SolContractEval: A Benchmark for Evaluating Contract-Level Solidity Code GenerationabstractThe rise of blockchain has brought smart contracts into mainstream use, creating a demand for smart contract generation tools. While large language models (LLMs) excel at generating code in general-purpose languages, their effectiveness on Solidity, the primary language for smart contracts, remains underexplored. Solidity constitutes only a small portion of typical LLM training data and differs from general-purpose languages in its version-sensitive syntax and limited flexibility. These factors raise concerns about the reliability of existing LLMs for Solidity code generation. Critically, existing evaluations, focused on isolated functions and synthetic inputs, fall short of assessing models’ capabilities in real-world contract development.To bridge this gap, we introduce SolContractEval, the first contract-level benchmark for Solidity code generation. It comprises 124 tasks drawn from real on-chain contracts across nine major domains. Each task input, consisting of complete context dependencies, a structured contract framework, and a concise task prompt, is independently annotated and cross-validated by experienced developers. To enable precise and automated evaluation of functional correctness, we also develop a dynamic evaluation framework based on historical transaction replay. Building on SolContractEval, we perform a systematic evaluation of six mainstream LLMs. We find that Claude-3.7-Sonnet achieves the highest overall performance, though evaluated models underper-form relative to their capabilities on class-level generation tasks in general-purpose programming languages. Second, current models perform better on tasks that follow standard patterns but struggle with complex logic and inter-contract dependencies. Finally, they exhibit limited understanding of Solidity-specific features and contextual dependencies. Zhifan Ye, Jiachi Chen, Zhenzhe Shao, Lingfeng Bao, Xiaohu Yang 0001, Zhongxin Liu 0002 |
ASE | 5 |
| 2025 | Enhancing LLM's Ability to Generate More Repository-Aware Unit Tests Through Precise Context InjectionabstractRecently, Large Language Models (LLMs) have gained attention for their ability to handle a broad range of tasks, including unit test generation. Despite their success, LLMs may exhibit hallucinations when generating unit tests for focal methods or functions due to their lack of awareness regarding the project’s global context. While many studies have explored the role of context, they often extract fixed patterns of context for different models and focal methods, which may not be suitable for all generation processes (e.g., excessive irrelevant context could lead to redundancy, preventing the model from focusing on essential information).To overcome this limitation, we propose RATester, which integrates language servers to provide dynamic definition lookup to assist the LLM. When RATester encounters an unfamiliar identifier, it first leverages language servers (e.g., Gopls) to fetch relevant definitions and documentation comments, and then uses this global knowledge to guide the LLM. We evaluate the effectiveness and efficiency of RATester by constructing a new Golang dataset from real-world projects. On our Golang dataset, RATester achieves an average line coverage of 26.25%, representing an improvement of 9.10% to 165.69% over the baselines. In mutation testing, RATester shows superior performance by successfully killing 18 to 147 more mutants than the baselines. Additionally, our model-agnostic and generalizability analysis confirms RATester’s effectiveness across different models, programming languages, and model scales, validating its broad applicability. Chao Ni 0001, Xinrui Li 0004, Liushan Chen, Guojun Ma, Xiaohu Yang 0001 |
ASE | 6 |
| 2025 | Secure Transformer Inference Made Non-interactive
Jiawen Zhang 0005, Xinpeng Yang, Lipeng He, Kejia Chen 0007, Yinghao Wang, Xiaoyang Hou, Jian Liu 0012, Kui Ren 0001, Xiaohu Yang 0001 |
NDSS | 10 |
| 2025 | Activation Approximations Can Incur Safety Vulnerabilities in Aligned LLMs: Comprehensive Analysis and Defense
Jiawen Zhang 0005, Kejia Chen 0007, Lipeng He, Jian Lou 0001, Dan Li 0032, Zunlei Feng, Mingli Song, Jian Liu 0012, Kui Ren 0001, Xiaohu Yang 0001 |
USENIX Security Symposium | 10 |
| 2025 | Scalable Collaborative zk-SNARK and Its Application to Fully Distributed Proof Delegation
Xuanming Liu, Zhelei Zhou, Yinghao Wang, Yanxin Pang, Jinye He, Bingsheng Zhang, Xiaohu Yang 0001, Jiaheng Zhang |
USENIX Security Symposium | 7 |
| 2025 | Editorials of BCRA 2024
Lingfeng Bao, Xiaohu Yang 0001, Chunming Rong |
Blockchain Res. Appl. | 3 |
| 2025 | πFL: Private, atomic, incentive mechanism for federated learning based on blockchainabstractFederated learning (FL) is predicated on the provision of high-quality data by multiple clients, which is then used to train global models. A plethora of incentive mechanism studies have been conducted with the objective of promoting the provision of high-quality data by clients. These studies have focused on the distribution of benefits to clients. However, the incentives of federated learning are transactional in nature, and the issue of the atomicity of transactions has not been addressed. Furthermore, the data quality of individual clients participating in training varies, and they may participate negatively in training out of privacy leakage concerns.Consequently, we propose an inaugural atomistic incentive scheme with privacy preservation in the FL setting: πFL (privacy, atomic, incentive). This scheme establishes a more dependable training environment based on Shapley valuation, secure multi-party computation, and smart contracts. Consequently, it ensures that each client's contribution can be accurately measured and appropriately rewarded, improves the accuracy and efficiency of model training, and enhances the sustainability and reliability of the FL system. The efficacy of this mechanism has been demonstrated through comprehensive experimental analysis. It is evident that this mechanism not only protects the privacy of trainers and provides atomic training rewards but also improves the model performance of FL, with an accuracy improvement of at least 8%. Kejia Chen 0007, Jiawen Zhang 0005, Xuanming Liu, Zunlei Feng, Xiaohu Yang 0001 |
Blockchain Res. Appl. | 5 |
| 2025 | SmartZKCP: Towards practical data exchange marketplace against active attacksabstractThe trading of data is becoming increasingly important as it holds substantial value. A blockchain-based data marketplace can provide a secure and transparent platform for data exchange. To facilitate this, developing a fair data exchange protocol for digital goods has garnered considerable attention in recent decades. The Zero Knowledge Contingent Payment (ZKCP) protocol enables trustless fair exchanges with the aid of blockchain and zero-knowledge proofs. However, applying this protocol in a practical data marketplace is not trivial.In this paper, several potential attacks are identified when applying the ZKCP protocol in a practical public data marketplace. To address these issues, we propose SmartZKCP, an enhanced solution that offers improved security measures and increased performance. The protocol is formalized to ensure fairness and secure against potential attacks. Moreover, SmartZKCP offers efficiency optimizations and minimized communication costs. Evaluation results show that SmartZKCP is both practical and efficient, making it applicable in a data exchange marketplace. Xuanming Liu, Jiawen Zhang 0005, Yinghao Wang, Xinpeng Yang, Xiaohu Yang 0001 |
Blockchain Res. Appl. | 5 |
| 2025 | E-PRedictor: an approach for early prediction of pull request acceptance
Kexing Chen, Lingfeng Bao, Xing Hu 0008, Xin Xia 0001, Xiaohu Yang 0001 |
Sci. China Inf. Sci. | 5 |
| 2025 | Collaborative and Observability Enhanced Fault Injection for Resilient Cloud-Edge ComputingabstractFault injection ensures the resilience of cloud-edge computing systems. System observability for conducting effective and comprehensive fault injection experiments must be enhanced, particularly due to the complex and distributed architectures of cloud-edge environments, where a single failure can trigger cascading effects, creating a dynamic and expanding fault blast radius. Additionally, accurate fault diagnosis becomes even more challenging when multiple teams simultaneously inject faults into interdependent components, highlighting the need for collaborative fault injection rather than confounding concurrent activities. This work addresses these challenges by proposing a collaborative fault injection framework powered by knowledge graph technologies. The framework enhances collaboration by enabling teams to seamlessly synchronize fault injection experiments within a shared environment. By extracting dynamic fault blast radius information from the proposed fault observation knowledge graph after fault injection, the system observability is improved and more efficient fault injection experiments are ensured. To evaluate the effectiveness of the proposed framework, we use an evolutionary game theory model to analyze the dynamic interactions among stakeholders. Utilizing a simulated OpenStack platform as our testbed, we demonstrate that our approach surpasses traditional fault injection techniques, achieving a remarkable 42.76% reduction in the average time required to observe the complete fault blast radius. Jun Ruan, Xiaohu Yang 0001 |
Int. J. Softw. Eng. Knowl. Eng. | 2 |
| 2025 | Understanding the OSS Communities of Deep Learning Frameworks: A Comparative Case Study of PyTorch and TensorFlowabstractOver the past two decades, deep learning has received tremendous success in developing software systems across various domains. Deep learning frameworks have been proposed to facilitate the development of such software systems, among which, P y T orch and T ensor F low stand out as notable examples. Considerable attention focuses on exploring software engineering practices and addressing diverse technical aspects in developing and deploying deep learning frameworks and software systems. Despite these efforts, little is known about the open source software communities involved in the development of deep learning frameworks. In this article, we perform a comparative investigation into the open source software communities of the two representative deep learning frameworks, P y T orch and T ensor F low . To facilitate the investigation, we compile a dataset of 2,792 and 3,288 code commit authors, along with 9,826 and 19,750 participants engaged in issue events on GitHub , from the two communities, respectively. With the dataset, we first characterize the structures of the two communities by employing four operationalizations to classify contributors into various roles and inspect the contributions made by common contributors across the two communities. We then conduct a longitudinal analysis to characterize the evolution of the two communities across various releases, in terms of the numbers of contributors with various roles and role transitions among contributors. Finally, we explore the causal effects between community characteristics and the popularity of the two frameworks. We find that the T ensor F low community harbors a larger base of contributors, encompassing a higher proportion of core developers and a more extensive cohort of active users compared to the P y T orch community. In terms of the technical background of the developers, 64.4% and 56.1% developers in the P y T orch and T ensor F low communities are employed by the leading companies of the corresponding open source software projects, Meta and Google, respectively; 25.9% and 21.9% core developers in the P y T orch and T ensor F low communities possess Ph.D. degrees, while 77.2% and 77.7% contribute to other machine learning or deep learning open source projects, respectively. Developers contributing to both communities demonstrate spatial and temporal similarities to some extent in their pull requests across the respective projects. The evolution of contributors with various roles exhibits a consistent upward trend over time in the P y T orch community. Conversely, a noticeable turning point in the growth of contributors characterizes the evolution of the T ensor F low community. Both communities show a statistically significant decreasing trend in the inflow rates of core developers. Furthermore, we observe statistically significant causal effects between the expansion of communities and retention of core developers and the popularity of deep learning frameworks. Based on our findings, we discuss implications, provide recommendations for sustaining open source software communities of deep learning frameworks, and outline directions for future research. Yunqi Chen, Zhiyuan Wan, Yifei Zhuang, David Lo 0001, Xiaohu Yang 0001 |
ACM Trans. Softw. Eng. Methodol. | 6 |
| 2025 | An Empirical Study on Vulnerability Disclosure Management of Open Source Software SystemsabstractVulnerability disclosure is critical for ensuring the security and reliability of open source software (OSS). However, in practice, many vulnerabilities are reported and discussed on public platforms before being formally disclosed, posing significant risks to vulnerability management. Inadequate vulnerability disclosure can expose users to security threats and severely impact the stability and reliability of software systems. For example, prior work shows that over 21% of CVEs are publicly discussed before a patch is released. Despite its importance, we still lack clarity on the vulnerability disclosure practices adopted by open source communities and the preferences of practitioners regarding vulnerability management. To fill this gap, we analyzed the vulnerability disclosure practices of 8,073 OSS projects spanning from 2017 to 2023. We then conducted an empirical study by surveying practitioners about their preferences and recommendations in vulnerability disclosure management. Finally, we compared the survey results with the actual vulnerability practice observed within the OSS projects. Our results show that while over 80% of practitioners support Coordinated Vulnerability Disclosure (CVD), only 55% of vulnerabilities conform to CVD in practice. Although only 20% of practitioners advocate discussions before disclosure, 42% of vulnerabilities are discussed in issue reports before their disclosure. This study reveals the vulnerability management practices in OSS, provides valuable guidance to OSS owners, and highlights potential directions to improve the security of OSS platforms. Jiayuan Zhou, Xing Hu 0008, Filipe Roseiro Côgo, Xin Xia 0001, Xiaohu Yang 0001 |
ACM Trans. Softw. Eng. Methodol. | 6 |
| 2025 | Distinguishing LLM-Generated from Human-Written Code by Contrastive LearningabstractLarge language models (LLMs), such as ChatGPT released by OpenAI, have attracted significant attention from both industry and academia due to their demonstrated ability to generate high-quality content for various tasks. Despite the impressive capabilities of LLMs, there are growing concerns regarding their potential risks in various fields, such as news, education, and software engineering. Recently, several commercial and open source LLM-generated content detectors have been proposed, which, however, are primarily designed for detecting natural language content without considering the specific characteristics of program code. This article aims to fill this gap by proposing a novel ChatGPT-generated code detector, CodeGPTSensor, based on a contrastive learning framework and a semantic encoder built with UniXcoder. To assess the effectiveness of CodeGPTSensor on differentiating ChatGPT-generated code from human-written code, we first curate a large-scale Human and Machine comparison Corpus (HMCorp), which includes 550k pairs of human-written and ChatGPT-generated code (i.e., 288k Python code pairs and 222k Java code pairs). Based on the HMCorp dataset, our qualitative and quantitative analysis of the characteristics of ChatGPT-generated code reveals the challenge and opportunity of distinguishing ChatGPT-generated code from human-written code with their representative features. Our experimental results indicate that CodeGPTSensor can effectively identify ChatGPT-generated code, outperforming all selected baselines. Xiaodan Xu, Chao Ni 0001, Xinrong Guo, Shaoxuan Liu, Kui Liu 0001, Xiaohu Yang 0001 |
ACM Trans. Softw. Eng. Methodol. | 7 |
| 2025 | GNNContext: GNN-based Code Context Prediction for Programming TasksabstractA code context model comprises source code elements and their relations relevant to a programming task. The capture and use of code context models in software tools can benefit software development practices, such as code navigation and search. Prior research has explored approaches that leverage either the structural information of code or interaction histories of developers with integrated development environments to automate the construction of code context models. However, these approaches primarily capture shallow syntactic and lexical features of code elements, with limited ability to capture contextual and structural dependencies among neighboring code elements. In this paper, we propose GNNCONTEXT, a novel approach for predicting code context models based on Graph Neural Networks. Our approach leverages code representation learning models to capture both the syntactic and semantic features of code elements, while employing Graph Neural Networks to learn the structural and contextual information among neighboring code elements in the code context models. To evaluate the effectiveness of our approach, we apply it to a dataset comprising 3,879 code context models that we derive from three Eclipse open-source projects. The evaluation results demonstrate that our proposed approach GNNCONTEXT can significantly outperform the state-of-the-art baseline for code context prediction, achieving average improvements of 62.79%, 56.60%, 73.50% and 81.89% in mean reciprocal rank, top- 1, top-3, and top-5 recall rates, respectively, across predictions of varying steps. Moreover, our approach demonstrates robust performance in a cross-project evaluation setting. Our code in publicly available at https://github.com/ZXXYy/CodeContextModel. Xiaoye Zheng, Zhiyuan Wan, David Lo 0001, Xiaohu Yang 0001 |
IEEE Trans. Software Eng. | 6 |
| 2024 | Exploiting Library Vulnerability via Migration Based Automating Test GenerationabstractIn software development, developers extensively utilize third-party libraries to avoid implementing existing functionalities. When a new third-party library vulnerability is disclosed, project maintainers need to determine whether their projects are affected by the vulnerability, which requires developers to invest substantial effort in assessment. However, existing tools face a series of issues: static analysis tools produce false alarms, dynamic analysis tools require existing tests and test generation tools have low success rates when facing complex vulnerabilities. Xing Hu 0008, Xin Xia 0001, Tongtong Xu, David Lo 0001, Xiaohu Yang 0001 |
ICSE | 7 |
| 2024 | MUT: Human-in-the-Loop Unit Test MigrationabstractTest migration, which enables the reuse of test cases crafted with knowledge and creativity by testers across various platforms and programming languages, has exhibited effectiveness in mobile app testing. However, unit test migration at the source code level has not garnered adequate attention and exploration. In this paper, we propose a novel cross-language and cross-platform test migration methodology, named MUT, which consists of four modules: code mapping, test case filtering, test case translation, and test case adaptation. MUT initially calculates code mappings to establish associations between source and target projects, and identifies suitable unit tests for migration from the source project. Then, MUT's code translation component generates a syntax tree by parsing the code to be migrated and progressively converts each node in the tree, ultima tely generating the target tests, which are compiled and executed in the target project. Moreover, we develop a web tool to assist developers in test migration. The effectiveness of our approach has been validated on five prevalent functional domain projects within the open-source community. We migrate a total of 550 unit tests and submitted pull requests to augment test code in the target projects on GitHub. By the time of this paper submission, 253 of these tests have already been merged into the projects (including 197 unit tests in the Luliyucoordinate-LeetCode project and 56 unit tests in the Rangerlee-HtmlParser project). Through running these tests, we identify 5 bugs, and 2 functional defects, and submitted corresponding issues to the project. The evaluation substantiates that MUT's test migration is both viable and beneficial across programming languages and different projects. Xing Hu 0008, Tongtong Xu, Xin Xia 0001, David Lo 0001, Xiaohu Yang 0001 |
ICSE | 6 |
| 2024 | Pre-training by Predicting Program Dependencies for Vulnerability Analysis TasksabstractVulnerability analysis is crucial for software security. Inspired by the success of pre-trained models on software engineering tasks, this work focuses on using pre-training techniques to enhance the understanding of vulnerable code and boost vulnerability analysis. The code understanding ability of a pre-trained model is highly related to its pre-training objectives. The semantic structure, e.g., control and data dependencies, of code is important for vulnerability analysis. However, existing pre-training objectives either ignore such structure or focus on learning to use it. The feasibility and benefits of learning the knowledge of analyzing semantic structure have not been investigated. To this end, this work proposes two novel pre-training objectives, namely Control Dependency Prediction (CDP) and Data Dependency Prediction (DDP), which aim to predict the statement-level control dependencies and token-level data dependencies, respectively, in a code snippet only based on its source code. During pre-training, CDP and DDP can guide the model to learn the knowledge required for analyzing fine-grained dependencies in code. After pre-training, the pre-trained model can boost the understanding of vulnerable code during fine-tuning and can directly be used to perform dependence analysis for both partial and complete functions. To demonstrate the benefits of our pre-training objectives, we pre-train a Transformer model named PDBERT with CDP and DDP, fine-tune it on three vulnerability analysis tasks, i.e., vulnerability detection, vulnerability classification, and vulnerability assessment, and also evaluate it on program dependence analysis. Experimental results show that PDBERT benefits from CDP and DDP, leading to state-of-the-art performance on the three downstream tasks. Also, PDBERT achieves F1-scores of over 99% and 94% for predicting control and data dependencies, respectively, in partial and complete functions. Zhongxin Liu 0002, Zhijie Tang, Xin Xia 0001, Xiaohu Yang 0001 |
ICSE | 5 |
| 2024 | PPT4J: Patch Presence Test for Java BinariesabstractThe number of vulnerabilities reported in open source software has increased substantially in recent years. Security patches provide the necessary measures to protect software from attacks and vulnerabilities. In practice, it is difficult to identify whether patches have been integrated into software, especially if we only have binary files. Therefore, the ability to test whether a patch is applied to the target binary, a.k.a. patch presence test, is crucial for practitioners. However, it is challenging to obtain accurate semantic information from patches, which could lead to incorrect results. Zhiyuan Pan, Xing Hu 0008, Xin Xia 0001, Xian Zhan, David Lo 0001, Xiaohu Yang 0001 |
ICSE | 6 |
| 2024 | Streamlining Java Programming: Uncovering Well-Formed Idioms with IdioMineabstractCode idioms are commonly used patterns, techniques, or practices that aid in solving particular problems or specific tasks across multiple software projects. They can improve code quality, performance, and maintainability, and also promote program standardization and reuse across projects. However, identifying code idioms is significantly challenging, as existing studies have still suffered from three main limitations. First, it is difficult to recognize idioms that span non-contiguous code lines. Second, identifying idioms with intricate data flow and code structures can be challenging. Moreover, they only extract dataset-specific idioms, so common idioms or well-established code/design patterns that are rarely found in datasets cannot be identified. Yanming Yang, Xing Hu 0008, Xin Xia 0001, David Lo 0001, Xiaohu Yang 0001 |
ICSE | 5 |
| 2024 | ThinkRepair: Self-Directed Automated Program RepairabstractThough many approaches have been proposed for Automated Program Repair (APR) and indeed achieved remarkable performance, they still have limitations in fixing bugs that require analyzing and reasoning about the logic of the buggy program. Recently, large language models (LLMs) instructed by prompt engineering have attracted much attention for their powerful ability to address many kinds of tasks including bug-fixing. However, the quality of the prompt will highly affect the ability of LLMs and manually constructing high-quality prompts is a costly endeavor. To address this limitation, we propose a self-directed LLM-based automated program repair, ThinkRepair, with two main phases: collection phase and fixing phase. The former phase automatically collects various chains of thoughts that constitute pre-fixed knowledge by instructing LLMs with the Chain-of-Thought (CoT) prompt. The latter phase targets fixing a bug by first selecting examples for few-shot learning and second automatically interacting with LLMs, optionally appending with feedback of testing information. Evaluations on two widely studied datasets (Defects4J and QuixBugs) by comparing ThinkRepair with 12 SOTA APRs indicate the priority of ThinkRepair in fixing bugs. Notably, ThinkRepair fixes 98 bugs and improves baselines by 27%∼344.4% on Defects4J V1.2. On Defects4J V2.0, ThinkRepair fixes 12∼65 more bugs than the SOTA APRs. Additionally, ThinkRepair also makes a considerable improvement on QuixBugs (31 for Java and 21 for Python at most). Chao Ni 0001, Shaohua Wang 0002, Zhenhao Li 0002, Limin Zeng, Xiaohu Yang 0001 |
ISSTA | 6 |
| 2024 | Instructive Code Retriever: Learn from Large Language Model's Feedback for Code Intelligence TasksabstractRecent studies proposed to leverage large language models (LLMs) with In-Context Learning (ICL) to handle code intelligence tasks without fine-tuning. ICL employs task instructions and a set of examples as demonstrations to guide the model in generating accurate answers without updating its parameters. While ICL has proven effective for code intelligence tasks, its performance heavily relies on the selected examples. Previous work has achieved some success in using BM25 to retrieve examples for code intelligence tasks. However, existing approaches lack the ability to understand the semantic and structural information of queries, resulting in less helpful demonstrations. Moreover, they do not adapt well to the complex and dynamic nature of user queries in diverse domains. In this paper, we introduce a novel approach named Instructive Code Retriever (ICR), which is designed to retrieve examples that enhance model inference across various code intelligence tasks and datasets. We enable ICR to learn the semantic and structural information of the corpus by a tree-based loss function. To better understand the correlation between queries and examples, we incorporate the feedback from LLMs to guide the training of the retriever. Experimental results demonstrate that our retriever significantly outperforms state-of-the-art approaches. We evaluate our model's effectiveness on various tasks, i.e., code summarization, program synthesis, and bug fixing. Compared to previous state-of-the-art algorithms, our method achieved improvements of 50.0% and 90.0% in terms of BLEU-4 for two code summarization datasets, 74.6% CodeBLEU on program synthesis dataset, and increases of 3.6 and 3.2 BLEU-4 on two bug fixing datasets. Haoye Wang, Zhongxin Liu 0002, Keyu Liang, Lingfeng Bao, Xiaohu Yang 0001 |
ASE | 6 |
| 2024 | MegaVul: A C/C++ Vulnerability Dataset with Comprehensive Code RepresentationsabstractWe constructed a newly large-scale and comprehensive C/C++ vulnerability dataset named MegaVul by crawling the Common Vulnerabilities and Exposures (CVE) database and CVE-related open-source projects. Specifically, we collected all crawlable descriptive information of the vulnerabilities from the CVE database and extracted all vulnerability-related code changes from 28 Git-based websites. We adopt advanced tools to ensure the extracted code integrality and enrich the code with four different transformed representations. Totally, MegaVul contains 17,380 vulnerabilities collected from 992 open-source repositories spanning 169 different vulnerability types disclosed from January 2006 to October 2023. Thus, MegaVul can be used for a variety of software security-related tasks including detecting vulnerabilities and assessing vulnerability severity. All information is stored in the JSON format for easy usage. MegaVul is publicly available on GitHub and will be continuously updated. It can be easily extended to other programming languages. Chao Ni 0001, Liyu Shen, Xiaohu Yang 0001, Shaohua Wang 0002 |
MSR | 3 |
| 2024 | A Large-Scale Empirical Study of Open Source License Usage: Practices and ChallengesabstractThe popularity of open source software (OSS) has led to a significant increase in the number of available licenses, each with their own set of terms and conditions. This proliferation of licenses has made it increasingly challenging for developers to select an appropriate license for their projects and to ensure that they are complying with the terms of those licenses. As a result, there is a need for empirical studies to identify current practices and challenges in license usage, both to help developers make informed decisions about license selection and to ensure that OSS is being used and distributed in a legal and ethical manner. Moreover, the development of new licenses might be required to better meet the needs of the open source community and address emerging legal issues. Jiaqi Wu 0005, Lingfeng Bao, Xiaohu Yang 0001, Xin Xia 0001, Xing Hu 0008 |
MSR | 3 |
| 2024 | Fault Injection with Enhanced Observability for Resilient Cloud-Edge ComputingabstractFault injection ensures resilience of cloud-edge computing systems.Recognizing the importance of fault injection underscores a critical challenge: the need to enhance system observability for conducting effective and comprehensive fault injection experiments.This is particularly crucial due to the complex, distributed architectures of cloud-edge environments, where a single failure can trigger cascading failures, creating a dynamic and expanding fault blast radius.To address these challenges, this work advocates for the adoption of knowledge graph technologies to significantly improve fault knowledge representation, system observability, and minimize resource expenditure on monitoring systems.We introduce the Fault Observation Knowledge Graph (FOKG), comprising three detailed sub-knowledge graphs that describe the nuances of application deployment, delineate known fault chains, and outline the monitoring mechanisms in place.By extracting dynamic fault blast radius information and refining monitoring strategies from FOKG after fault injection, we ensure a more targeted observation and efficient fault injection experiment.Our methodology, validated on a custom-developed Open-Stack platform, surpasses traditional fault injection techniques by achieving a remarkable 42.76% reduction in the average time required to observe the complete fault blast radius. Jun Ruan, Xiaohu Yang 0001 |
SEKE | 2 |
| 2024 | Market Manipulation of Cryptocurrencies: Evidence from Social Media and Transaction DataabstractThe cryptocurrency market cap has experienced a great increase in recent years. However, large price fluctuations demonstrate the need for governance structures and identify whether there are market manipulations. In this article, we conduct three analyses—social media data analysis, blockchain data analysis, and price bubble analysis—to investigate whether market manipulation exists on Bitcoin, Ethereum, and Dogecoin platforms. Social media data analysis aims to find the reasons for price fluctuations. Blockchain data analysis is used to find detailed behavior of the manipulators. Price bubble analysis is used to investigate the relation between price fluctuation and manipulators’ behavior. By using the three analyses, we show that market manipulation exists on Bitcoin, Ethereum, and Dogecoin. However, market manipulation of Bitcoin is limited, and for most of Bitcoin’s price fluctuations, we found other explanations. The price for Ethereum is the most sensitive to technical updates. Technical companies/teams usually hype some new concepts (e.g., ICO, DeFi), which causes a price spike. The price of Dogecoin has a high correlation with Elon Musk’s X (formerly known as Twitter) activity, showing that influential individuals have the ability to manipulate its prices. In addition, the poor monetary liquidity of Dogecoin allows some users to manipulate its price. Wen Li 0017, Lingfeng Bao, Jiachi Chen, John C. Grundy, Xin Xia 0001, Xiaohu Yang 0001 |
ACM Trans. Internet Techn. | 6 |
| 2024 | What Makes a Good TODO Comment?abstractSoftware development is a collaborative process that involves various interactions among individuals and teams. TODO comments in source code play a critical role in managing and coordinating diverse tasks during this process. However, this study finds that a large proportion of open-source project TODO comments are left unresolved or take a long time to be resolved. About 46.7% of TODO comments in open-source repositories are of low-quality (e.g., TODOs that are ambiguous, lack information, or are useless to developers). This highlights the need for better TODO practices. In this study, we investigate four aspects regarding the quality of TODO comments in open-source projects: (1) the prevalence of low-quality TODO comments; (2) the key characteristics of high-quality TODO comments; (3) how are TODO comments of different quality managed in practice; and (4) the feasibility of automatically assessing TODO comment quality. Examining 2,863 TODO comments from Top100 GitHub Java repositories, we propose criteria to identify high-quality TODO comments and provide insights into their optimal composition. We discuss the lifecycle of TODO comments with varying quality. To assist developers, we construct deep learning-based methods that show promising performance in identifying the quality of TODO comments, potentially enhancing development efficiency and code quality. Haoye Wang, Zhipeng Gao 0002, Tingting Bi, John C. Grundy, Xinyu Wang 0001, Minghui Wu 0001, Xiaohu Yang 0001 |
ACM Trans. Softw. Eng. Methodol. | 7 |
| 2024 | The Lost World: Characterizing and Detecting Undiscovered Test SmellsabstractTest smell refers to poor programming and design practices in testing and widely spreads throughout software projects. Considering test smells have negative impacts on the comprehension and maintenance of test code and even make code-under-test more defect-prone, it thus has great importance in mining, detecting, and refactoring them. Since Deursen et al. introduced the definition of “test smell”, several studies worked on discovering new test smells from test specifications and software practitioners’ experience. Indeed, many bad testing practices are “observed” by software developers during creating test scripts rather than through academic research and are widely discussed in the software engineering community (e.g., Stack Overflow) [ 70 , 94 ]. However, no prior studies explored new bad testing practices from software practitioners’ discussions, formally defined them as new test smell types, and analyzed their characteristics, which plays a bad role for developers in knowing these bad practices and avoiding using them during test code development. Therefore, we pick up those challenges and act by working on systematic methods to explore new test smell types from one of the most mainstream developers’ Q&A platforms, i.e., Stack Overflow. We further investigate the harmfulness of new test smells and analyze possible solutions for eliminating them. We find that some test smells make it hard for developers to fix failed test cases and trace their failing reasons. To exacerbate matters, we have identified two types of test smells that pose a risk to the accuracy of test cases. Next, we develop a detector to detect test smells from software. The detector is composed of six detection methods for different smell types. These detection methods are both wrapped with a set of syntactic rules based on the code patterns extracted from different test smells and developers’ code styles. We manually construct a test smell dataset from seven popular Java projects and evaluate the effectiveness of our detector on it. The experimental results show that our detector achieves high performance in precision, recall, and F1 score. Then, we utilize our detector to detect smells from 919 real-world Java projects to explore whether the six test smells are prevalent in practice. We observe that these test smells are widely spread in 722 out of 919 Java projects, which demonstrates that they are prevalent in real-world projects. Finally, to validate the usefulness of test smells in practice, we submit 56 issue reports to 53 real-world projects with different smells. Our issue reports achieve 76.4% acceptance by conducting sentiment analysis on developers’ replies. These evaluations confirm the effectiveness of our detector and the prevalence and practicality of new test smell types on real-world projects. Yanming Yang, Xing Hu 0008, Xin Xia 0001, Xiaohu Yang 0001 |
ACM Trans. Softw. Eng. Methodol. | 4 |
| 2023 | CCRep: Learning Code Change Representations via Pre-Trained Code Model and Query BackabstractRepresenting code changes as numeric feature vectors, i.e., code change representations, is usually an essential step to automate many software engineering tasks related to code changes, e.g., commit message generation and just-in-time defect prediction. Intuitively, the quality of code change representations is crucial for the effectiveness of automated approaches. Prior work on code changes usually designs and evaluates code change representation approaches for a specific task, and little work has investigated code change encoders that can be used and jointly trained on various tasks. To fill this gap, this work proposes a novel Code Change Representation learning approach named CCRep, which can learn to encode code changes as feature vectors for diverse downstream tasks. Specifically, CCRep regards a code change as the combination of its before-change and after-change code, leverages a pre-trained code model to obtain high-quality contextual embeddings of code, and uses a novel mechanism named query back to extract and encode the changed code fragments and make them explicitly interact with the whole code change. To evaluate CCRep and demonstrate its applicability to diverse code-change-related tasks, we apply it to three tasks: commit message generation, patch correctness assessment, and just-in-time defect prediction. Experimental results show that CCRep outperforms the state-of-the-art techniques on each task. Zhongxin Liu 0002, Zhijie Tang, Xin Xia 0001, Xiaohu Yang 0001 |
ICSE | 4 |
| 2023 | Towards More Realistic Evaluation for Neural Test Oracle GenerationabstractUnit testing has become an essential practice during software development and maintenance. Effective unit tests can help guard and improve software quality but require a substantial amount of time and effort to write and maintain. A unit test consists of a test prefix and a test oracle. Synthesizing test oracles, especially functional oracles, is a well-known challenging problem. Recent studies proposed to leverage neural models to generate test oracles, i.e., neural test oracle generation (NTOG), and obtained promising results. However, after a systematic inspection, we find there are some inappropriate settings in existing evaluation methods for NTOG. These settings could mislead the understanding of existing NTOG approaches’ performance. We summarize them as 1) generating test prefixes from bug-fixed program versions, 2) evaluating with an unrealistic metric, and 3) lacking a straightforward baseline. In this paper, we first investigate the impacts of these settings on evaluating and understanding the performance of NTOG approaches. We find that 1) unrealistically generating test prefixes from bug-fixed program versions inflates the number of bugs found by the state-of-the-art NTOG approach TOGA by 61.8%, 2) FPR (False Positive Rate) is not a realistic evaluation metric and the Precision of TOGA is only 0.38%, and 3) a straightforward baseline NoException, which simply expects no exception should be raised, can find 61% of the bugs found by TOGA with twice the Precision. Furthermore, we introduce an additional ranking step to existing evaluation methods and propose an evaluation metric named Found@K to better measure the cost-effectiveness of NTOG approaches in terms of bug-finding. We propose a novel unsupervised ranking method to instantiate this ranking step, significantly improving the cost-effectiveness of TOGA. Eventually, based on our experimental results and observations, we propose a more realistic evaluation method TEval+ for NTOG and summarize seven rules of thumb to boost NTOG approaches into their practical usages. Zhongxin Liu 0002, Kui Liu 0001, Xin Xia 0001, Xiaohu Yang 0001 |
ISSTA | 4 |
| 2023 | Identify and Update Test Cases When Production Code Changes: A Transformer-Based ApproachabstractSoftware testing is one of the most essential parts of the software lifecycle and requires a substantial amount of time and effort. During the software evolution, test cases should co-evolve with the production code. However, the co-evolution of test cases often fails due to tight project schedules and other reasons. Obsolete test cases improve the cost of software maintenance and may fail to reveal faults and even lead to future bugs. Therefore, it is essential to detect and update these obsolete test cases in time. In this paper, we propose a novel approach Ceprot (Co-Evolution of Production-Test Code) to identify outdated test cases and update them automatically according to changes in the production code. Ceprot consists of two stages, i.e., obsolete test identification and updating. Specifically, given a production code change and a corresponding test case, Ceprot first identifies whether the test case should be updated. If the test is identified as obsolete, Ceprot will update it to a new version of test case. To evaluate the effectiveness of the two stages, we construct two datasets. Our dataset focuses on method-level production code changes and updates on their obsolete test cases. The experimental results show that Ceprot can effectively identify obsolete test cases with precision and recall of 98.3% and 90.0%, respectively. In addition, test cases generated by Ceprot are identical to the ground truth for 12.3% of samples that are identified as obsolete by Ceprot. We also conduct dynamic evaluation and human evaluation to measure the effectiveness of the updated test cases by Ceprot. 48.0% of updated test cases can be compiled and the average coverage of updated cases is 34.2% which achieves 89% coverage improvement over the obsolete tests. We believe that this study can motivate the co-evolution of production and test code. Xing Hu 0008, Xin Xia 0001, Zhongxin Liu 0002, Tongtong Xu, Xiaohu Yang 0001 |
ASE | 6 |
| 2023 | Function-Level Vulnerability Detection Through Fusing Multi-Modal KnowledgeabstractSoftware vulnerabilities damage the functionality of software systems. Recently, many deep learning-based approaches have been proposed to detect vulnerabilities at the function level by using one or a few different modalities (e.g., text representation, graph-based representation) of the function and have achieved promising performance. However, some of these existing studies have not completely leveraged these diverse modalities, particularly the underutilized image modality, and the others using images to represent functions for vulnerability detection have not made adequate use of the significant graph structure underlying the images. In this paper, we propose MVulD, a multi-modal-based function-level vulnerability detection approach, which utilizes multi-modal features of the function (i.e., text representation, graph representation, and image representation) to detect vulnerabilities. Specifically, MVulD utilizes a pre-trained model (i.e., UniXcoder) to learn the semantic information of the textual source code, employs the graph neural network to distill graph-based representation, and makes use of computer vision techniques to obtain the image representation while retaining the graph structure of the function. We conducted a large-scale experiment on 25,816 functions. The experimental results show that MVulD improves four state-of-the-art baselines by 30.8%-81.3%, 12.8%-27.4%, 48.8%-115%, and 22.9%-141% in terms of F1-score, Accuracy, Precision, and PR-AUC respectively. Chao Ni 0001, Xinrong Guo, Xiaodan Xu, Xiaohu Yang 0001 |
ASE | 5 |
| 2023 | Unifying Defect Prediction, Categorization, and Repair by Multi-Task Deep LearningabstractJust-In- Time defect prediction models can identify defect-inducing commits at check-in time and many approaches are proposed with remarkable performance. However, these approaches still have a few limitations which affect their effectiveness and practical usage: (1) partially using semantic information or structure information of code, (2) coarsely providing results to a commit (buggy or clean), and (3) independently investigating the defect prediction model and defect repair model. In this study, to handle the aforementioned limitations, we propose a unified defect prediction and repair framework named COMPDEFECT,which can identify whether a changed function inside a commit is defect-prone, categorize the type of defect, and repair such a defect automatically if it falls into several scenarios, e.g., defects with single statement fixes, or those that match a small set of defect templates. Technically, the first two tasks in COMPDEFECT are treated as a multiclass classification task, while the last task is treated as a sequence generation task. To verify the effectiveness of COMPDEFECT, we first build a large-scale function-level dataset (i.e., 21,047) named Function-SStuBs4J and then compare COMPDEFECT with tens of state-of-the-art (SOTA) approaches by considering five performance measures. The experimental results indicate that COMPDEFECT outperforms all SOTAs with a substantial improvement in three tasks separately. Moreover, the pipeline experimental results also indicate the feasibility of COMPDEFECT to unify three tasks in a model. Chao Ni 0001, Xiang Chen 0005, Xiaohu Yang 0001 |
ASE | 5 |
| 2023 | From Misuse to Mastery: Enhancing Code Generation with Knowledge-Driven AI ChainingabstractLarge Language Models (LLMs) have shown promising results in automatic code generation by improving coding efficiency to a certain extent. However, generating high-quality and reliable code remains a formidable task because of LLMs' lack of good programming practice, especially in exception handling. In this paper, we first conduct an empirical study and summarize three crucial challenges of LLMs in exception handling, i.e., incomplete exception handling, incorrect exception handling and abuse of try-catch. We then try prompts with different granularities to address such challenges, finding fine-grained knowledge-driven prompts works best. Based on our empirical study, we propose a novel Knowledge-driven Prompt Chaining-based code generation approach, name KPC, which decomposes code generation into an AI chain with iterative check-rewrite steps and chains fine-grained knowledge-driven prompts to assist LLMs in considering exception-handling specifications. We evaluate our KPC-based approach with 3,079 code generation tasks extracted from the Java official API documentation. Extensive experimental results demonstrate that the KPC-based approach has considerable potential to ameliorate the quality of code generated by LLMs. It achieves this through proficiently managing exceptions and obtaining remarkable enhancements of 109.86% and 578.57% with static evaluation methods, as well as a reduction of 18 runtime bugs in the sampled dataset with dynamic validation. Xiaoxue Ren, Xinyuan Ye, Dehai Zhao, Zhenchang Xing, Xiaohu Yang 0001 |
ASE | 5 |
| 2023 | Automatic Identification of Crash-inducing Smart ContractsabstractSmart contract, a special software code running on and resided in the blockchain, enlarges the general application of blockchain and exchanges assets without dependence of external parties. With blockchain’s characteristic of immutability, they cannot be modified once deployed. Thus, the contract and the records are persisted on the blockchain forever, including failed transactions that are caused by runtime errors and result in the waste of computation, storage, and fees. In this paper, we refer to smart contracts which will cause runtime errors as crash-inducing smart contracts. However, automatic identification of crash-inducing smart contracts is limited investigated in the literature. The existing approaches to identify crash-inducing smart contracts are either limited in finding vulnerability (e.g., pattern-based static analysis) or very expensive (e.g., program analysis), which is insufficient for Ethereum.To reduce runtime errors on Ethereum, we propose an efficient, generalizable, and machine learning-based crash-inducing smart contract detector, CRASHSCDET, to automatically identify crash-inducing smart contracts. To investigate the effectiveness of CRASHSCDET, we firstly propose 34 static source code metrics from four dimensions (i.e., complexity metrics, count metrics, object-oriented metrics, and Solidity-specific metrics) to characterize smart contracts. Then, we collect a large-scale dataset of verified smart contracts (i.e., 54,739) and label these smart contracts based on their execution traces on Etherscan. We make a comprehensive comparison with three state-of-the-art approaches and the results show that CRASHSCDET can achieve good performance (i.e., 0.937 of F1-measure and 0.980 of AUC on average) and statistically significantly improve the baselines by 0.5%-60.4% in terms of F1-measure and by 41.2%-44.3% in terms of AUC, which indicates the effectiveness of static source code metrics in identifying crash-inducing smart contracts. We further investigate the importance of different types of metrics and find that metrics in different dimensions have varying abilities to depict the characteristic of smart contracts. Especially, metrics belonging to the "Count" dimension are the most discriminative ones but combining all metrics can achieve better prediction performance. Chao Ni 0001, Cong Tian 0001, David Lo 0001, Jiachi Chen, Xiaohu Yang 0001 |
SANER | 6 |
| 2023 | Mining profitable alpha factors via convolution kernel learning
Zhenyi Shen, Xiahong Mao, Xiaohu Yang 0001 |
Appl. Intell. | 3 |
| 2022 | V-SZZ: Automatic Identification of Version Ranges Affected by CVE VulnerabilitiesabstractVulnerabilities publicly disclosed in the National Vulnerability Database (NVD) are assigned with CVE (Common Vulnerabilities and Exposures) IDs and associated with specific software versions. Many organizations, including IT companies and government, heavily rely on the disclosed vulnerabilities in NVD to mitigate their security risks. Once a software is claimed as vulnerable by NVD, these organizations would examine the presence of the vulnerable versions of the software and assess the impact on themselves. However, the version information about vulnerable software in NVD is not always reliable. Nguyen et al. find that the version information of many CVE vulnerabilities is spurious and propose an approach based on the original SZZ algorithm (i.e., an approach to identify bug-introducing commits) to assess the software versions affected by CVE vulnerabilities. Lingfeng Bao, Xin Xia 0001, Ahmed E. Hassan, Xiaohu Yang 0001 |
ICSE | 4 |
| 2022 | How does working from home affect developer productivity? - A case study of Baidu during the COVID-19 pandemic
Lingfeng Bao, Xin Xia 0001, Kaiyu Zhu, Xiaohu Yang 0001 |
Sci. China Inf. Sci. | 6 |
| 2022 | On the Reproducibility and Replicability of Deep Learning in Software EngineeringabstractContext:Deep learning (DL) techniques have gained significant popularity among software engineering (SE) researchers in recent years. This is because they can often solve many SE challenges without enormous manual feature engineering effort and complex domain knowledge. Objective:Although many DL studies have reported substantial advantages over other state-of-the-art models on effectiveness, they often ignore two factors:(1) reproducibility—whether the reported experimental results can be obtained by other researchers using authors’ artifacts (i.e., source code and datasets) with the same experimental setup; and(2) replicability—whether the reported experimental result can be obtained by other researchers using their re-implemented artifacts with a different experimental setup. We observed that DL studies commonly overlook these two factors and declare them as minor threats or leave them for future work. This is mainly due to high model complexity with many manually set parameters and the time-consuming optimization process, unlike classical supervised machine learning (ML) methods (e.g., random forest). This study aims to investigate the urgency and importance of reproducibility and replicability for DL studies on SE tasks. Method:In this study, we conducted a literature review on 147 DL studies recently published in 20 SE venues and 20 AI (Artificial Intelligence) venues to investigate these issues. We also re-ran four representative DL models in SE to investigate important factors that may strongly affect the reproducibility and replicability of a study. Results:Our statistics show the urgency of investigating these two factors in SE, where only 10.2% of the studies investigate any research question to show that their models can address at least one issue of replicability and/or reproducibility. More than 62.6% of the studies do not even share high-quality source code or complete data to support the reproducibility of their complex models. Meanwhile, our experimental results show the importance of reproducibility and replicability, where the reported performance of a DL model could not be reproduced for an unstable optimization process. Replicability could be substantially compromised if the model training is not convergent, or if performance is sensitive to the size of vocabulary and testing data. Conclusion:It is urgent for the SE community to provide a long-lasting link to a high-quality reproduction package, enhance DL-based solution stability and convergence, and avoid performance sensitivity on different sampled data. Chao Liu 0014, Cuiyun Gao 0001, Xin Xia 0001, David Lo 0001, John C. Grundy, Xiaohu Yang 0001 |
ACM Trans. Softw. Eng. Methodol. | 6 |
| 2022 | Just-In-Time Defect Prediction on JavaScript Projects: A Replication StudyabstractChange-level defect prediction is widely referred to as just-in-time (JIT) defect prediction since it identifies a defect-inducing change at the check-in time, and researchers have proposed many approaches based on the language-independent change-level features. These approaches can be divided into two types: supervised approaches and unsupervised approaches, and their effectiveness has been verified on Java or C++ projects. However, whether the language-independent change-level features can effectively identify the defects of JavaScript projects is still unknown. Additionally, many researches have confirmed that supervised approaches outperform unsupervised approaches on Java or C++ projects when considering inspection effort. However, whether supervised JIT defect prediction approaches can still perform best on JavaScript projects is still unknown. Lastly, prior proposed change-level features are programming language–independent, whether programming language–specific change-level features can further improve the performance of JIT approaches on identifying defect-prone changes is also unknown. To address the aforementioned gap in knowledge, in this article, we collect and label the top-20 most starred JavaScript projects on GitHub. JavaScript is an extremely popular and widely used programming language in the industry. We propose five JavaScript-specific change-level features and conduct a large-scale empirical study (i.e., involving a total of 176,902 changes) and find that (1) supervised JIT defect prediction approaches (i.e., CBS+) still statistically significantly outperform unsupervised approaches on JavaScript projects when considering inspection effort; (2) JavaScript-specific change-level features can further improve the performance of approach built with language-independent features on identifying defect-prone changes; (3) the change-level features in the dimension of size (i.e., LT), diffusion (i.e., NF), and JavaScript-specific (i.e., SO and TC) are the most important features for indicating the defect-proneness of a change on JavaScript projects; and (4) project-related features (i.e., Stars, Branches, Def Ratio, Changes, Files, Defective, and Forks) have a high association with the probability of a change to be a defect-prone one on JavaScript projects. Chao Ni 0001, Xin Xia 0001, David Lo 0001, Xiaohu Yang 0001, Ahmed E. Hassan |
ACM Trans. Softw. Eng. Methodol. | 4 |
| 2022 | Predictive Models in Software Engineering: Challenges and OpportunitiesabstractPredictive models are one of the most important techniques that are widely applied in many areas of software engineering. There have been a large number of primary studies that apply predictive models and that present well-performed studies in various research domains, including software requirements, software design and development, testing and debugging, and software maintenance. This article is a first attempt to systematically organize knowledge in this area by surveying a body of 421 papers on predictive models published between 2009 and 2020. We describe the key models and approaches used, classify the different models, summarize the range of key application areas, and analyze research results. Based on our findings, we also propose a set of current challenges that still need to be addressed in future work and provide a proposed research road map for these opportunities. Yanming Yang, Xin Xia 0001, David Lo 0001, Tingting Bi, John C. Grundy, Xiaohu Yang 0001 |
ACM Trans. Softw. Eng. Methodol. | 6 |
| 2021 | Smart Contract Security: a Practitioners' PerspectiveabstractSmart contracts have been plagued by security incidents, which resulted in substantial financial losses. Given numerous research efforts in addressing the security issues of smart contracts, we wondered how software practitioners build security into smart contracts in practice. We performed a mixture of qualitative and quantitative studies with 13 interviewees and 156 survey respondents from 35 countries across six continents to understand practitioners' perceptions and practices on smart contract security. Our study uncovers practitioners' motivations and deterrents of smart contract security, as well as how security efforts and strategies fit into the development lifecycle. We also find that blockchain platforms have a statistically significant impact on practitioners' security perceptions and practices of smart contract development. Based on our findings, we highlight future research directions and provide recommendations for practitioners. Zhiyuan Wan, Xin Xia 0001, David Lo 0001, Jiachi Chen, Xiapu Luo, Xiaohu Yang 0001 |
ICSE | 6 |
| 2021 | Automating User Notice Generation for Smart Contract FunctionsabstractSmart contracts have obtained much attention and are crucial for automatic financial and business transactions. For end-users who have never seen the source code, they can read the user notice shown in end-user client to understand what a transaction does of a smart contract function. However, due to time constraints or lack of motivation, user notice is often missing during the development of smart contracts. For end-users who lack the information of the user notices, there is no easy way for them to check the code semantics of the smart contracts. Thus, in this paper, we propose a new approach SMARTDOC to generate user notice for smart contract functions automatically. Our tool can help end-users better understand the smart contract and aware of the financial risks, improving the users’ confidence on the reliability of the smart contracts. SMARTDOC exploits the Transformer to learn the representation of source code and generates natural language descriptions from the learned representation. We also integrate the Pointer mechanism to copy words from the input source code instead of generating words during the prediction process. We extract 7,878 〈function, notice〉 pairs from 54,739 smart contracts written in Solidity. Due to the limited amount of collected smart contract functions (i.e., 7,878 functions), we exploit a transfer learning technique to utilize the learned knowledge to improve the performance of SMARTDOC. The learned knowledge obtained by the pre-training on a corpus of Java code, that has similar characteristics as Solidity code. The experimental results show that our approach can effectively generate user notice given the source code and significantly outperform the state-of-the-art approaches. To investigate human perspectives on our generated user notice, we also conduct a human evaluation and ask participants to score user notice generated by different approaches. Results show that SMARTDOC outperforms baselines from three aspects, naturalness, informativeness, and similarity. Xing Hu 0008, Zhipeng Gao 0002, Xin Xia 0001, David Lo 0001, Xiaohu Yang 0001 |
ASE | 5 |
| 2021 | Maintenance-related concerns for post-deployed Ethereum smart contract development: issues, techniques, and future challenges
Jiachi Chen, Xin Xia 0001, David Lo 0001, John C. Grundy, Xiaohu Yang 0001 |
Empir. Softw. Eng. | 5 |
| 2020 | Enhancing developer interactions with programming screencasts through accurate code extractionabstractProgramming screencasts have become a pervasive resource on the Internet, which is favoured by many developers for learning new programming skills. For developers, the source code in screencasts is valuable and important. However, the streaming nature of screencasts limits the choice that they have for interacting with the code. Many studies apply the Optical Character Recognition (OCR) technique to convert screen images into text, which can be easily searched and indexed. However, we observe that the noise in the screen images significantly affects the quality of OCRed code. Lingfeng Bao, Shengyi Pan, Zhenchang Xing, Xin Xia 0001, David Lo 0001, Xiaohu Yang 0001 |
ESEC/SIGSOFT FSE | 6 |
| 2020 | psc2code: Denoising Code Extraction from Programming ScreencastsabstractProgramming screencasts have become a pervasive resource on the Internet, which help developers learn new programming technologies or skills. The source code in programming screencasts is an important and valuable information for developers. But the streaming nature of programming screencasts (i.e., a sequence of screen-captured images) limits the ways that developers can interact with the source code in the screencasts. Many studies use the Optical Character Recognition (OCR) technique to convert screen images (also referred to as video frames) into textual content, which can then be indexed and searched easily. However, noisy screen images significantly affect the quality of source code extracted by OCR, for example, no-code frames (e.g., PowerPoint slides, web pages of API specification), non-code regions (e.g., Package Explorer view, Console view), and noisy code regions with code in completion suggestion popups. Furthermore, due to the code characteristics (e.g., long compound identifiers like ItemListener), even professional OCR tools cannot extract source code without errors from screen images. The noisy OCRed source code will negatively affect the downstream applications, such as the effective search and navigation of the source code content in programming screencasts. In this article, we propose an approach named psc2code to denoise the process of extracting source code from programming screencasts. First, psc2code leverages the Convolutional Neural Network (CNN) based image classification to remove non-code and noisy-code frames. Then, psc2code performs edge detection and clustering-based image segmentation to detect sub-windows in a code frame, and based on the detected sub-windows, it identifies and crops the screen region that is most likely to be a code editor. Finally, psc2code calls the API of a professional OCR tool to extract source code from the cropped code regions and leverages the OCRed cross-frame information in the programming screencast and the statistical language model of a large corpus of source code to correct errors in the OCRed source code. We conduct an experiment on 1,142 programming screencasts from YouTube. We find that our CNN-based image classification technique can effectively remove the non-code and noisy-code frames, which achieves an F1-score of 0.95 on the valid code frames. We also find that psc2code can significantly improve the quality of the OCRed source code by truly correcting about half of incorrectly OCRed words. Based on the source code denoised by psc2code , we implement two applications: (1) a programming screencast search engine; (2) an interaction-enhanced programming screencast watching tool. Based on the source code extracted from the 1,142 collected programming screencasts, our experiments show that our programming screencast search engine achieves the precision@5, 10, and 20 of 0.93, 0.81, and 0.63, respectively. We also conduct a user study of our interaction-enhanced programming screencast watching tool with 10 participants. This user study shows that our interaction-enhanced watching tool can help participants learn the knowledge in the programming video more efficiently and effectively. Lingfeng Bao, Zhenchang Xing, Xin Xia 0001, David Lo 0001, Minghui Wu 0001, Xiaohu Yang 0001 |
ACM Trans. Softw. Eng. Methodol. | 6 |
| 2020 | Perceptions, Expectations, and Challenges in Defect PredictionabstractDefect prediction has been an active research area for over four decades. Despite numerous studies on defect prediction, the potential value of defect prediction in practice remains unclear. To address this issue, we performed a mixed qualitative and quantitative study to investigate what practitioners think, behave and expect in contrast to research findings when it comes to defect prediction. We collected hypotheses from open-ended interviews and a literature review of defect prediction papers that were published at ICSE, ESEC/FSE, ASE, TSE and TOSEM in the last 6 years (2012-2017). We then conducted a validation survey where the hypotheses became statements or options of our survey questions. We received 395 responses from practitioners from over 33 countries across five continents. Some of our key findings include: 1) Over 90 percent of respondents are willing to adopt defect prediction techniques. 2) There exists a disconnect between practitioners' perceptions and well supported research evidence regarding defect density distribution and the relationship between file size and defectiveness. 3) 7.2 percent of the respondents reveal an inconsistency between their behavior and perception regarding defect prediction. 4) Defect prediction at the feature level is the most preferred level of granularity by practitioners. 5) During bug fixing, more than 40 percent of the respondents acknowledged that they would make a “work-around” fix rather than correct the actual error-causing code. Through a qualitative analysis of free-form text responses, we identified reasons why practitioners are reluctant to adopt defect prediction tools. We also noted features that practitioners expect defect prediction tools to deliver. Based on our findings, we highlight future research directions and provide recommendations for practitioners. Zhiyuan Wan, Xin Xia 0001, Ahmed E. Hassan, David Lo 0001, Jianwei Yin, Xiaohu Yang 0001 |
IEEE Trans. Software Eng. | 6 |
| 2019 | Automating Change-Level Self-Admitted Technical Debt DeterminationabstractTechnical debt (TD) is a metaphor to describe the situation where developers introduce suboptimal solutions during software development to achieve short-term goals that may affect the long-term software quality. Prior studies proposed different techniques to identify TD, such as identifying TD through code smells or by analyzing source code comments. Technical debt identified using comments is known as Self-Admitted Technical Debt (SATD) and refers to TD that is introduced intentionally. Compared with TD identified by code metrics or code smells, SATD is more reliable since it is admitted by developers using comments. Thus far, all of the state-of-the-art approaches identify SATD at the file-level. In essence, they identify whether a file has SATD or not. However, all of the SATD is introduced through software changes. Previous studies that identify SATD at the file-level in isolation cannot describe the TD context related to multiple files. Therefore, it is beneficial to identify the SATD once a change is being made. We refer to this type of TD identification as “Change-level SATD Determination”, which determines whether or not a change introduces SATD. Identifying SATD at the change-level can help to manage and control TD by understanding the TD context through tracing the introducing changes. To build a change-level SATD Determination model, we first identify TD from source code comments in source code files of all versions. Second, we label the changes that first introduce the SATD comments as TD-introducing changes. Third, we build the determination model by extracting 25 features from software changes that are divided into three dimensions, namely diffusion, history and message, respectively. To evaluate the effectiveness of our proposed model, we perform an empirical study on 7 open source projects containing a total of 100,011 software changes. The experimental results show that our model achieves a promising and better performance than four baselines in terms of AUC and cost-effectiveness (i.e., percentage of TD-introducing changes identified when inspecting 20 percent of changed LOC). On average across the 7 experimental projects, our model achieves AUC of 0.82, cost-effectiveness of 0.80, which is a significant improvement over the comparison baselines used. In addition, we found that “Diffusion” is the most discriminative dimension among the three dimensions of features for determining TD-introducing changes. Meng Yan 0001, Xin Xia 0001, Emad Shihab, David Lo 0001, Jianwei Yin, Xiaohu Yang 0001 |
IEEE Trans. Software Eng. | 6 |
| 2016 | Time-Aware and Sparsity-Tolerant QoS Prediction Based on Collaborative FilteringabstractQuality of Services (QoS) is an important criterion to evaluate Web services recommendation system. Due to factors including various network conditions, QoS values are dynamic and time-varying. In reality, the data is too spare to fit in with traditional time series forecasting model (e.g., ARIMA). To address this crucial challenge, this paper proposes a novel time-aware and sparsity-tolerant QoS values prediction approach based on collaborative filtering. Our approach combines limited historical QoS value with collaborative filtering method to forecast the personalized QoS values. Based on the limited data, our approach firstly forecasts user-service pairs that have historical usage experiences, and then uses CF-based method to predict personalized QoS values. Finally, we combine the results from temporal forecasting with those from CF prediction as the final forecasted QoS values. The extensive experiments show that the proposed approach efficiently improves the forecasting coverage and accuracy. Weiwei Qiu, Xinyu Wang 0001, Zibin Zheng, Xiaohu Yang 0001 |
ICWS | 5 |
| 2016 | Collective Personalized Change Classification With Multiobjective SearchabstractMany change classification techniques have been proposed to identify defect-prone changes. These techniques consider all developers' historical change data to build a global prediction model. In practice, since developers have their own coding preferences and behavioral patterns, which causes different defect patterns, a separate change classification model for each developer can help to improve performance. Jiang, Tan, and Kim refer to this problem as personalized change classification, and they propose PCC+ to solve this problem. A software project has a number of developers; for a developer, building a prediction model not only based on his/her change data, but also on other relevant developers' change data can further improve the performance of change classification. In this paper, we propose a more accurate technique named collective personalized change classification (CPCC), which leverages a multiobjective genetic algorithm. For a project, CPCC first builds a personalized prediction model for each developer based on his/her historical data. Next, for each developer, CPCC combines these models by assigning different weights to these models with the purpose of maximizing two objective functions (i.e., F1-scores and cost effectiveness). To further improve the prediction accuracy, we propose CPCC+ by combining CPCC with PCC proposed by Jiang, Tan, and Kim To evaluate the benefits of CPCC+ and CPCC, we perform experiments on six large software projects from different communities: Eclipse JDT, Jackrabbit, Linux kernel, Lucene, PostgreSQL, and Xorg. The experiment results show that CPCC+ can discover up to 245 more bugs than PCC+ (468 versus 223 for PostgreSQL) if developers inspect the top 20% lines of code that are predicted buggy. In addition, CPCC+ can achieve F1-scores of 0.60-0.75, which are statistically significantly higher than those of PCC+ on all of the six projects. Xin Xia 0001, David Lo 0001, Xinyu Wang 0001, Xiaohu Yang 0001 |
IEEE Trans. Reliab. | 4 |
| 2015 | A Pattern-Based Code Transformation Approach for Cloud Application MigrationabstractTo support the migration of software applications to the cloud environment, cloud venders have proposed different migration methodologies and guidelines. Yet, most of them require human intervention, involving manually performing repetitive tasks. This paper proposes a pattern-based transformation approach for cloud application migration. The approach automatically modifies the source code of an application before the migration, to make it cloud-ready, and then transforms the source code to the target code in the cloud environment. The approach is supported by three key elements (patterns, rules and templates) and a process that systematically applies these elements. First, a pattern matching engine based on a regular expression processing technique is used to identify the parts of the source code that require modification and to extract the essential tokens from the source code for code transformation. Next, transformation rules are invoked to change the source code into the target code using a template, designed according to the target cloud environment. The proposed approach has been demonstrated on 19 open-source projects, by migrating them to Amazon Web Services. Zhengong Cai, Liping Zhao 0001, Xinyu Wang 0001, Xiaohu Yang 0001, Juntao Qin, Keting Yin |
CLOUD | 4 |
| 2015 | Who should review this change?: Putting text and file location analyses together for more accurate recommendationsabstractSoftware code review is a process of developers inspecting new code changes made by others, to evaluate their quality and identify and fix defects, before integrating them to the main branch of a version control system. Modern Code Review (MCR), a lightweight and tool-based variant of conventional code review, is widely adopted in both open source and proprietary software projects. One challenge that impacts MCR is the assignment of appropriate developers to review a code change. Considering that there could be hundreds of potential code reviewers in a software project, picking suitable reviewers is not a straightforward task. A prior study by Thongtanunam et al. showed that the difficulty in selecting suitable reviewers may delay the review process by an average of 12 days. In this paper, to address the challenge of assigning suitable reviewers to changes, we propose a hybrid and incremental approach Tie which utilizes the advantages of both Text mIning and a filE location-based approach. To do this, Tie integrates an incremental text mining model which analyzes the textual contents in a review request, and a similarity model which measures the similarity of changed file paths and reviewed file paths. We perform a large-scale experiment on four open source projects, namely Android, OpenStack, QT, and LibreOffice, containing a total of 42,045 reviews. The experimental results show that on average Tie can achieve top-1, top-5, and top-10 accuracies, and Mean Reciprocal Rank (MRR) of 0.52, 0.79, 0.85, and 0.64 for the four projects, which improves the state-of-the-art approach RevFinder, proposed by Thongtanunam et al., by 61%, 23%, 8%, and 37%, respectively. Xin Xia 0001, David Lo 0001, Xinyu Wang 0001, Xiaohu Yang 0001 |
ICSME | 4 |
| 2015 | QoS Prediction of Web Services Based on Two-Phase K-Means ClusteringabstractQoS prediction for Web services is a hot research problem in the field of services computing. As one of the most important methods for QoS prediction, Collaborative Filtering (CF) makes prediction based on the historical QoS data contributed by similar users and services. The key issue in this process is to detect the unreliable data offered by untrustworthy users, which has attracted limited attentions so far. The utilization of unreliable data decreases the prediction accuracy greatly. In this paper, we propose a novel credibility-aware QoS prediction method (named CAP) to address this problem. Our method first employs two-phase K-means clustering to identify the untrustworthy users, which clusters QoS values for untrustworthy index calculation in the first phase and clusters users according to their index in the second phase, and then predicts the missing QoS value based on the credible clustering information. The evaluation results demonstrate that CAP provides considerable improvement on the prediction accuracy compared with other approaches and is robust against various percentages of untrustworthy users. Weiwei Qiu, Zibin Zheng, Xinyu Wang 0001, Xiaohu Yang 0001 |
ICWS | 5 |
| 2015 | ELBlocker: Predicting blocking bugs with ensemble imbalance learning
Xin Xia 0001, David Lo 0001, Emad Shihab, Xinyu Wang 0001, Xiaohu Yang 0001 |
Inf. Softw. Technol. | 5 |
| 2015 | A Systematic Study on Explicit-State Non-Zenoness Checking for Timed AutomataabstractZeno runs, where infinitely many actions occur within finite time, may arise in Timed Automata models. Zeno runs are not feasible in reality and must be pruned during system verification. Thus it is necessary to check whether a run is Zeno or not so as to avoid presenting Zeno runs as counterexamples during model checking. Existing approaches on non-Zenoness checking include either introducing an additional clock in the Timed Automata models or additional accepting states in the zone graphs. In addition, there are approaches proposed for alternative timed modeling languages, which could be generalized to Timed Automata. In this work, we investigate the problem of non-Zenoness checking in the context of model checking LTL properties, not only evaluating and comparing existing approaches but also proposing a new method. To have a systematic evaluation, we develop a software toolkit to support multiple non-Zenoness checking algorithms. The experimental results show the effectiveness of our newly proposed algorithm, and demonstrate the strengths and weaknesses of different approaches. Ting Wang 0004, Jun Sun 0001, Xinyu Wang 0001, Yang Liu 0003, Yuanjie Si, Jin Song Dong 0001, Xiaohu Yang 0001, Xiaohong Li 0001 |
IEEE Trans. Software Eng. | 7 |
| 2014 | Model checking with fairness assumptions using PAT
Yuanjie Si, Jun Sun 0001, Yang Liu 0003, Jin Song Dong 0001, Jun Pang 0001, Shao Jie Zhang, Xiaohu Yang 0001 |
Frontiers Comput. Sci. | 7 |
| 2014 | Reliability-Based Design Optimization for Cloud MigrationabstractThe on-demand use, high scalability, and low maintenance cost nature of cloud computing have attracted more and more enterprises to migrate their legacy applications to the cloud environment. Although the cloud platform itself promises high reliability, ensuring high quality of service is still one of the major concerns, since the enterprise applications are usually complicated and consist of a large number of distributed components. Thus, improving the reliability of an application during cloud migration is a challenging and critical research problem. To address this problem, we propose a reliability-based optimization framework, named ROCloud, to improve the application reliability by fault tolerance. ROCloud includes two ranking algorithms. The first algorithm ranks components for the applications that all their components will be migrated to the cloud. The second algorithm ranks components for hybrid applications that only part of their components are migrated to the cloud. Both algorithms employ the application structure information as well as the historical reliability information for component ranking. Based on the ranking result, optimal fault-tolerant strategy will be selected automatically for the most significant components with respect to their predefined constraints. The experimental results show that by refactoring a small number of error-prone components and tolerating faults of the most significant components, the reliability of the application can be greatly improved. Weiwei Qiu, Zibin Zheng, Xinyu Wang 0001, Xiaohu Yang 0001, Michael R. Lyu |
IEEE Trans. Serv. Comput. | 4 |
| 2013 | Geographic Location-Based Network-Aware QoS Prediction for Service CompositionabstractQoS-aware service composition intends to maximize the global QoS of a composite service while selecting candidate services from different providers with local and global QoS constraints. With more and more candidate services emerging from all over the world, the network delays often greatly impact the performance of the composite service, which are usually not easy to be collected before the composition. One remedy is to predict them for the composition. However, new issues occur in predicting network delay for the composition, including prediction accuracy and on-demand measures to new services, which affect the performance of network-aware composite services. To solve these critical challenges, in this paper, we take advantage of the geographic location information of candidate services. We propose a network-aware QoS (NQoS) model for the composite service. Based on that, we present a novel geographic location-based NQoS prediction approach before composition, and a NQoS re-prediction approach during the execution of the composite service. Extensive experiments are conducted on the real-world dataset collected from PlanetLab. Comparative experiment results reveal our approach facilitates to improve the prediction accuracy and predictability of the NQoS values, and increase global NQoS of the composite service while ensuring its reliability constraints. Yuanhong Shen, Jianke Zhu, Xinyu Wang 0001, Xiaohu Yang 0001, Bo Zhou 0010 |
ICWS | 5 |
| 2013 | An efficient fault-tolerant scheduling algorithm for periodic real-time tasks in heterogeneous platformsabstractFault-tolerant real-time scheduling algorithm is one of the most important means to ensure the timeliness and high availability characteristics of fault-tolerant real-time systems. Existing scheduling models for periodic real-time task in heterogeneous platforms typically require the number of processors in the systems to be determined in advance; hence prohibit the scalability and the performance of distributed systems. The algorithms based on these models also require a large number of schedubility tests which lead to long execution time. To address these problems, we propose a primary and backup replica partition based fault-tolerant scheduling algorithm (PBPFT) based on a scalable scheduling model using heterogeneity that does not have to determine the scale of the distributed system in advance. The PBPFT approach also takes advantage of backup copy overlapping and phasing delay techniques to minimize system redundancy, and adopts the processor grouping technique to simplify algorithm complexity. Comprehensive experiments are conducted, and the results validate high resource utilization and commendable performance of our proposed approach. Weiwei Qiu, Zibin Zheng, Xinyu Wang 0001, Xiaohu Yang 0001 |
ISORC | 4 |
| 2013 | Deriving problem frames from business process and object analysis modelsabstractAbstract While Problem Frames have become a useful approach for requirements analysis, little research has been made to explore how to derive them from a complex problem context. The purpose of this paper is to propose such an approach. The proposed approach consists of three steps to drive the development of Problem Frames. In the first step, business process models are developed to capture the behavioural view of the problem context. In the second step, object analysis models are used to capture the structural view of the problem context. Together, these two views collectively and adequately capture the early context knowledge. These two types of model will then be used in the third step to construct context diagrams and derive Problem Frames. A complex real‐world problem – equity trading problem – is used to illustrate this approach. Xinyu Wang 0001, Jie Sun 0017, Xiaohu Yang 0001, Ye Wang 0012, Shanping Li, Aleksander J. Kavs |
Expert Syst. J. Knowl. Eng. | 3 |
| 2013 | PLANT: A pattern language for transforming scenarios into requirements models
Ye Wang 0012, Liping Zhao 0001, Xinyu Wang 0001, Xiaohu Yang 0001, Sam Supakkul |
Int. J. Hum. Comput. Stud. | 4 |
| 2013 | Proqrass: a Process-Based Approach to Quality Requirements Analysis for Service SystemsabstractSatisfying quality requirements for service systems is quite crucial and challenging. However, there is a gap between quality requirements analysis and quality requirements design in service systems. In order to bridge this gap, we provide a systematic approach — ProQRASS — to model and analyze quality requirements of services based on business processes, which are frequently used to model services. ProQRASS consists of five steps: (1) constructing business process models; (2) associating quality requirements with functional requirements of services in business process models; (3) identifying potential conflicts and cooperation among quality requirements; (4) filtering out false conflicts and cooperation; (5) resolving conflicts among quality requirements. We illustrate ProQRASS through an equity trading service system. We also evaluate its capability through the comparison with other approaches and conduct a usability investigation involving industrial experts. The result shows that ProQRASS is effective and useful. Ye Wang 0012, Xiaohu Yang 0001, Xinyu Wang 0001, Aleksander J. Kavs |
Int. J. Softw. Eng. Knowl. Eng. | 2 |
| 2012 | Optimizing QoS-Aware Services Composition for Concurrent Processes in Dynamic Resource-Constrained EnvironmentsabstractQoS-aware service composition intends to integrate services from different providers and maximize the global QoS in order to increase the user's satisfaction degree while subjecting to dynamic context constraints. Current composition approaches only focus on optimizing a single process to maximize the satisfaction degree for one party. When multiple processes are performed concurrently by their selfish users in a dynamic resource-constrained environment, new issues will arise, i.e., undesirable competition for service resources, extra waiting and frequent change of contexts. To address these issues, this paper aims to optimize QoS-aware services composition for multiple selfish users if the communication among users is allowed. Firstly, we propose an extensional QoS-aware service selection model for each process. Then based on this model, we present fault handling mechanisms before and during the execution of concurrent composite services for concurrent processes based on a multi-issue negotiation protocol among agents, and an adaptive context-aware service re-selection mechanism for adjusting the service execution plan for each running composite service in the dynamic resource-constrained environment. Comparative experiments reveal our approach facilitates to increase the average satisfaction degree, reduce the average waiting time of multiple users, and make the satisfaction degrees among multiple users more evenly distributed in the dynamic resource-constrained environment. Yuanhong Shen, Xiaohu Yang 0001, Ye Wang 0012, Zhen Ye 0005 |
ICWS | 2 |
| 2012 | Satisfying quality requirements in the design of a partition-based, distributed stock trading systemabstractSUMMARY Although quality requirements (QRs) have become a major drive in today's software development, there have been very few real‐world examples in the literature that demonstrate how to meet these requirements. This paper presents such an example. Specifically, the paper describes the design of a partition‐based distributed stock trading service system that satisfies a set of QRs related to resource utilization, performance, scalability and availability. The paper evaluates this design through detailed experiments and discusses some design alternatives and the lessons learned. Central to this design are a static load distribution strategy and a dynamic load balancing strategy. The first strategy is to achieve an initial balanced workload on the system's server cluster during the system initialization time, whereas the second strategy is to maintain this balanced workload throughout the system execution time. Together, these two strategies work in unison to ensure that the server resources are efficiently utilized; the user requests are processed with the required speed; the application is partitioned with sufficient room to scale; and the system is highly available. Copyright © 2011 John Wiley & Sons, Ltd. Xiaohu Yang 0001, Liping Zhao 0001, Xinyu Wang 0001, Ye Wang 0012, Jie Sun 0017, Albert Jerry Cristoforo |
Softw. Pract. Exp. | 1 |
| 2011 | Afuzzy formal concept analysis based approach for business component identificationabstractIdentifying business components is the basis of component-based software engineering. Many approaches, including cluster analysis and concept analysis, have been proposed to identify components from business models. These approaches classify business elements into a set of components by analyzing their properties. However, most of them do not consider the difference in their properties for the business elements, which may decrease the accuracy of the identification results. Furthermore, component identification by partitioning business elements cannot reflect which features are responsible for the generation of certain results. This paper deals with a new approach for component identification from business models using fuzzy formal concept analysis. First, the membership between business elements and their properties is quantified and transformed into a fuzzy formal context, from which the concept lattice is built using a refined incremental algorithm. Then the components are selected from the concepts according to the concept dispersion and distance. Finally, the effectiveness and efficiency are validated by applying our approach in the real-life cases and experiments. Zhengong Cai, Xiaohu Yang 0001, Xinyu Wang 0001, Aleksander J. Kavs |
J. Zhejiang Univ. Sci. C | 2 |
| 2011 | A self-optimizing QoS-aware service composition approach in a context sensitive environmentabstractQoS-aware service composition is aimed to maximize the global QoS of a composite service when selecting candidate services. In a context sensitive service execution environment in pervasive computing, the context information for service composition is not static: device, policy, and user constraints, and QoS requirements may change, new services may be deployed, old ones withdrawn, or existing ones change their QoS parameters. This results in the current service composition plan failing or its QoS degrading from the optimum. In this paper, a runtime self-optimizing service composition framework is proposed. An implementation of a prototype for this framework is presented, addressing the issues of reducing extra delay while increasing global QoS in service composition in a dynamic context environment. Three service re-plan algorithms are compared that can be used in dynamic context environment, i.e., minimal-conflict hill-climbing repair genetic algorithm (MCHC-repair GA), an improved penalty-based GA, and our multi-population conflicts sorted repair genetic algorithm (MP-CS-repair GA), as well as three kinds of service composition mechanisms-with backup, without backup, and our context-aware service re-selection mechanisms. The results show that our MP-CS-repair GA and context-aware service re-selection method can reduce more extra delay while acquiring a higher global QoS for the composite service in a context sensitive environment. This context-aware service re-selection mechanism also shows some adaptability to different context change frequencies and user requirements for reducing computation cost in the self-optimizing process. Yuanhong Shen, Xiaohu Yang 0001 |
J. Zhejiang Univ. Sci. C | 2 |
| 2010 | A QoS ontology cooperated with feature models for non-functional requirements elicitationabstractNon-functional requirements (NFRs) are often regarded as the key success factor in building high quality software. However, most of the requirements elicitation methods are centered on discovering functional requirements only. This paper presents a novel NFRs elicitation approach aiming at empowering requirements analysts with a knowledge repository that aids to the process of capturing precise NFRs during elicitation interviews. The knowledge repository is composed of two layers: the upper layer of feature models and the lower layer of the QoS ontology. The case study of the stock trading domain illustrates the relationships and cooperations of the two layers. Ting Wang 0004, Yuanjie Si, Xiao Xuan, Xinyu Wang 0001, Xiaohu Yang 0001, Shanping Li, Aleksander J. Kavs |
Internetware | 5 |
| 2009 | Simulation of the defect removal process with queuing theoryabstractIn this paper, we simulate the defects removal process using finite independent queues with different capacity and loading, which represent the limitation of developers and the ability differences of developers. The re-assignment strategy used in defects removal represents the cooperation between relevant developers. Experimental results based on real data show that the simulated approach can provide very useful and important information which can help project manager to estimate the duration of the whole defects removal process, the utilization of each developers and the defects remain at a specific time. Xiaohu Yang 0001, Xiaochun Zhu |
ESEM | 2 |
| 2009 | Business process recovery for system maintenance - An empirical approachabstractUnderstanding business processes is an important step for software maintenance. The approaches for recovering business processes are mostly based on source code analysis, including static analysis and dynamic analysis. All these methods are proved to be effective in some specific situations. However, they are challenged when facing enterprise legacy systems which implement complex business processes triggered by the external actors. In this paper, we introduce a new business process recovery approach that combines the requirement reacquisition with dynamic and static program analysis methods. The approach has been applied to the maintenance of an equity trading system to prove its efficiency. Zhengong Cai, Xiaohu Yang 0001, Xinyu Wang 0001 |
ICSM | 2 |
| 2009 | Parallel Iterative Reengineering Model of Legacy SystemsabstractGreat improvements have been made in methodologies on reengineering of legacy systems to enhance the migration process. Unfortunately, taking into account the large scale of these systems, the duration of reengineering process can still be quite long which will make an impact on the business the systems supported. In this paper we propose a parallel iterative reengineering model to reduce the reengineering process duration. The model uses the method of formal concept analysis to process the complex access relationship between legacy components and shared data. An algorithm named ¿bottom-up¿, which consists of two parts, is introduced to build the parallel schedule for the reengineering process. This model shortens the reengineering duration and has been proven to be successful in improving the transition system's performance in a comparative experiment. Xiaohu Yang 0001, Juefeng Li |
SMC | 2 |
| 2008 | Role based cross-project collaboration in multiple distributed software design projectsabstractWhile many collaboration methods have been suggested in distributed software development project, cross-project collaboration is still problematic. On the basis of the former research on the collaboration improvement in dual-shore software projects, the authors present a role base cross-project collaboration framework to enhance the collaboration in multiple software design projects. In this paper, the tasks and resource are defined and coupled by role concept. Role based view for the dynamic conjunction of the multiple projects has been proposed and role based resource arrangement method has been suggested. The prototype has been built and the feedback in the internal workshops turned to be good. Bin Xu 0004, Xiaohu Yang 0001, Albert Ma |
CSCWD | 2 |
| 2007 | Efficient Collaborative Task Arrangement in Global Software Design via Micro-Estimation and PERT TechniqueabstractCommunication delay and globally task arrangement should be well considered during distributed software design. Though the software design is a kind of creative work and there are reworks almost all the cases, as a result, the duration and even the task sequence is undetermined. Micro-estimation on demand, which we proposed in the former paper, refines the estimation of effort and duration for the tasks in the next short period. This paper is intended to present our solution to reschedule the design tasks among distributed software design teams, which includes multiple component status transition graph (MCSTG), micro-estimation and PERT technique. The schedule risk in such environment will be analyzed and the solution will focus on how to improve the time-to-market. With the solution presented, the designers may fasten their collaboration in global software design. Bin Xu 0004, Hua Hu 0001, Xiaohu Yang 0001, Zhijun He 0001, Albert Ma |
CSCWD | 4 |
| 2007 | Experience Report: Reengineering Standalone System into the Service-Partition Distributed EnvironmentabstractMany enterprise systems were developed in standalone model since the end of the last century. Reengineering standalone systems into distributed environment has become a critical problem, as the standalone software can not meet the requirements of the new market. Methods have been proposed on related topics based on two classical distributed solutions, the symmetrical model and the unsymmetrical model. In this paper we report the experience in reengineering a standalone financial trading system into the service-partition distributed environment, which offers distinct advantages on horizontal scalability and performance over two classical distributed solutions. Xinyu Wang 0001, Jianling Sun, Xiaohu Yang 0001 |
ICSM | 3 |
| 2006 | Facilitating Cooperation in Global Software Design via Micro-EstimationabstractRescheduling design tasks is essential to reduce the impact of communication delay in global cooperative software design. However, it is difficult due to the undetermined duration, delay and task sequence. Micro-estimation on demand refines the estimation of effort and duration for the tasks in the next short period. When using multiple component status transition graph (MCSTG) together with micro-estimation, we may easily obtain the possibility of a task and the available time for this task to be finished. With the extended MCSTG, the designers may reschedule the tasks according to the critical and importance so as to facilitate the cooperation Bin Xu 0004, Hua Hu 0001, Xiaohu Yang 0001, Zhijun He 0001, Albert Ma |
CSCWD | 4 |
| 2006 | Reengineering standalone C++ legacy systems into the J2EE partition distributed environmentabstractMany enterprise systems are developed in C++ language and most of them are standalone. Because the standalone software can not follow the new market environment, reengineering the standalone legacy systems into distributed environment becomes a critical problem. Some methods have been proposed on related topics such as design recovery, the identification of the component, modeling the interfaces of components and components allocation. Up to now, there does not exist a reengineering process for partition distributed environment, which will offer distinct advantages on horizontal scalability and performance over normal distributed solutions. This paper presents a new process to reengineer C++ legacy systems into the J2EE partition distributed environment. The process consists of four steps: translation from C++ to Java code; extraction of components using the cluster technology; modeling component interfaces and partition of the components in J2EE distribute environment. It has been applied to a large equity-trading legacy system which has proved to be successful. Xinyu Wang 0001, Jianling Sun, Xiaohu Yang 0001, Zhijun He 0001, Srinivasa R. Maddineni |
ICSE | 3 |
| 2006 | Data Based Application Partitioning and Workload Balance in Distributed EnvironmentabstractMany application partitioning methods have been proposed based on different functional modules in distributed environment to gain efficient use of resources, improved performance and high scalability. This paper introduces popular application partitioning architectures, and presents a different partitioning method and an on-line workload balance algorithm from a new perspective: runtime data, called data based application partitioning. This architecture benefits applications with higher performance, scalability and dynamic workload balancing. A financial trading system reengineered from J2EE standalone environment into data partitioning distributed environment gives a nice proof. Xiaohu Yang 0001, Ming Mao, Xinyu Wang 0001 |
ICSEA | 1 |
| 2006 | Improved Iterative Object-Oriented Reengineering Process based on Dynamic Coupling MeasuresabstractReengineering from degenerated but in-use legacy systems to high-maintainable object-oriented (OO) software is becoming a hot research area in software engineering. The iterative reengineering process provide a gradually approach to replace the legacy system and satisfy the quality and functionally requirements. Meanwhile, based on the observed relationships between software coupling and external quality factors of OO system, a sophisticated and operable coupling measures framework is stated. This paper proposes an improved iterative reengineer process for achieving a low-coupling and high-maintainable OO system using dynamic software coupling measures. As an enhancement, a formal dynamic coupling evaluation process is discussed detailedly. Moreover, two possible methods are given for conducting software engineers to optimize reengineered system's external quality. Juefeng Li, Xiaohu Yang 0001, Bin Xu 0004, Yongwei Ding |
SMC | 2 |
| 2005 | Design and Implementation of a Server-Aided PKI Service (SaPKIabstractMore and more mobile applications require the ability to issue digital signatures. Traditionally, digital signatures are based on asymmetric cryptographic techniques which make them computationally expensive. Currently, all mobile devices tend to have limited computational capabilities and equally limited power. This makes them ill-suited for complex cryptographic computations. We designed a server-aided PKI service (SaPKI) to offload work from clients in mobile networks such as GSM and CDMA. Mobile clients can utilized the powerful (both CPU speed and power supply) SaPKI server to generate RSA keys and digital signatures. The paper details the implementation of SaPKI service. A secure "cell phone-banking" application has been implemented on SaPKI architecture in CDMA-IX mobile network. After thorough performance analysis, we concluded that SaPKI could significantly improve the performance of mobile client's cryptographic operation. Xiaohu Yang 0001 |
AINA | 2 |
| 2005 | Enhancing coordination in global cooperative software designabstractGlobal cooperative software design is a formidable task because of the communication and coordination issues. While rescheduling of the tasks is necessary to reduce the impact of communication delay, the dependence of tasks must be well handled. Multiple component status transition graph (MCSTG) describes task dependence within and between components efficiently and support the handle of task dependence. A computer-aided notification mechanism was developed on the basis of MCSTG. The automatic mechanism avoids the task conflicts in coordination while minimizing the cost in project tracking. Bin Xu 0004, Xiaohu Yang 0001, Zhijun He 0001, Albert Ma |
CSCWD (1) | 2 |
| 2005 | A reference model and system architecture for database firewallabstractMore and more network attacks are focusing on application level vulnerabilities. Recently, several examples of this trend have been highly publicized such as the SQL Slammer and SQL Snake attacks. Traditional firewalls, used for protecting the database, only prevent attacks searching for vulnerabilities. Database firewalls take defense deep into the organization by providing full syntax control and audit of the SQL API stream before it reaches the database, and enforcing content-driven access to database. This paper proposes a layered reference model for database firewalls by enhancing the capability of COAST Laboratorys model. It separates a database firewall into three layers (network layer, schematic layer and semantic layer) according to the knowledge, computation target, and the control granularity of each layer. Based on this model, a database firewall product had been prototyped. It can greatly improve the database security by introducing self-controlled authentication, principal mapping, object mapping, and mandatory access control modules. Xiaohu Yang 0001 |
SMC | 2 |
| 2003 | Designated-receiver proxy signature scheme for electronic commerceabstractProxy signature is the solution to delegation of signing capabilities in electronic world. Proxy signatures are signature schemes that an original signer delegates his signing capability to a proxy signer, and the proxy signer creates signatures on behalf of the original signer. To avoid the misuse of proxy signatures, the original signer hopes that he can restrict the signing capability delegated to the proxy signers. In this paper, a designated-receiver proxy signature scheme is proposed. In this scheme, an original signer nominates a person as signature receiver when he delegates his signing capability to a proxy signer, and the proxy signer can generate valid proxy signature on behalf of the original signer which none but the nominated receiver can verify and accept, thus the misuse of proxy signature is avoided. The security of the proposed signature scheme is analyzed. The scheme will be applied in e/spl I.bar/commerce and other fields. Jia-Zhu Dai, Xiaohu Yang 0001, Jinxiang Dong |
SMC | 2 |