Score
Designs, implements, and evaluates reusable software libraries that provide client-side APIs and communication primitives, covering library architecture, modularization, packaging, ABI/API design, ergonomics, and performance optimization. Work also includes authoring and maintaining shared/user-space libraries, ensuring interoperability, portability, versioning/distribution, and developer-facing usability.
C/C++ library developers lack empirical understanding of the relationship between actual API usage and test coverage, leading to suboptimal test resource allocation. Method: This paper presents the first large-scale, cross-project empirical study in the C/C++ ecosystem, analyzing real-world API invocation frequencies of 21 widely used libraries (e.g., OpenSSL, SQLite) across 3,061 client projects, and systematically comparing them against the libraries’ native test suites at both line- and function-level coverage. We propose the “client-driven test feedback” paradigm and design LibProbe—a framework integrating static analysis, cross-project call-graph construction, and fine-grained coverage measurement. Contribution/Results: We uncover severe coverage gaps: e.g., 45% of high-frequency APIs in LMDB remain untested. Reusing client tests improves LMDB’s coverage by 14.7% and significantly enhances test realism and representativeness.
Current RESTful API design quality assessment relies heavily on manual inspection, lacking early, automated validation mechanisms for non-functional requirements—particularly interoperability, modularity, and maintainability. Method: This paper proposes an OpenAPI-based static analysis approach that implements a configurable rule engine. It formalizes 75 design principles derived from scholarly literature and industry standards into structured, machine-checkable constraints, enabling customizable rule activation/deactivation and traceable feedback to align requirements engineering with architectural governance. Contribution/Results: Following the design science research paradigm, we developed and evaluated a prototype tool. Empirical evaluation and expert review demonstrate that the method significantly improves API design compliance and consistency, achieving 82% automation coverage. It effectively supports continuous architectural governance in agile development environments, bridging the gap between design-time assurance and operational API lifecycle management.
Prior research on library migration has largely overlooked C/C++, leaving a critical gap in understanding its ecosystem’s evolution. Method: We construct the first large-scale, multi-source C/C++ library migration dataset, encompassing 19,943 projects across seven package managers, and conduct an empirical analysis integrating dependency graphs, commit histories, and issue trackers to systematically characterize migration behaviors, domains, and motivations—comparing findings against Python, JavaScript, and Java. Contribution/Results: We find C/C++ migrations concentrate in GUI, build-system, and OS development; 83.46% of source libraries map deterministically to a single target library; and unique drivers include reducing compilation time and unifying dependency management. Crucially, C/C++ migration patterns diverge significantly from dynamic languages (e.g., JS/Python) and Java—especially in domain distribution—demonstrating the dataset’s utility for developing specialized migration recommendation tools.
Open-source library maintainers lack actionable feedback on how downstream projects actually use their APIs, hindering test optimization, impact assessment of changes, and evolutionary guidance. Method: We propose a “community-level usage insight–driven maintenance decision” paradigm, introducing two quantitative metrics to measure test suite coverage of real-world API usage scenarios—thereby closing the maintenance feedback loop. Our approach integrates large-scale static API call analysis, stratified sampling of dependent projects, and empirical coverage evaluation, validated through a survey with open-source developers. Results: Experiments across 10 widely used Java libraries and their 500 downstream projects reveal that only 16% of exposed APIs are actively invoked, and among those, just 74% are covered by existing tests. Our metrics significantly strengthen data-driven maintenance decisions, delivering a practical, community-aware analytical framework for API evolution and test suite improvement.
Third-party library updates frequently introduce behavioral breaking changes (BBCs)—regressions undetectable at compile time—while client-side regression tests often fail to catch them due to low coverage or missing assertions. To address this, we propose an implicit contract modeling approach based on API interaction snapshots: via runtime instrumentation, we automatically capture real-world API call sequences issued by clients to the library, generating lightweight behavioral contract snapshots; BBCs are then identified by comparing snapshots across library versions. This approach eliminates the need for manually written assertions and circumvents the coverage bottleneck inherent in conventional compatibility testing. We implement a prototype tool, Gilesi, for the Java platform and evaluate it on multiple real-world library–client pairs. Gilesi successfully detects BBCs missed by existing test suites, significantly improving both detection rate and automation level for behavioral incompatibilities.
This study addresses the proliferation of functional redundancy in service-oriented architectures caused by heterogeneous clients, which undermines system evolvability and maintainability. To mitigate this issue, the authors propose a novel reference architecture that synergistically integrates metadata-driven mechanisms with pattern languages. By leveraging metadata management and a plugin-based design, the approach effectively constrains service redundancy while enhancing reuse capabilities. The work innovatively combines metadata mechanisms and pattern languages in architectural construction and validates its efficacy through a triangulated evaluation method incorporating scenario-based assessment and real-world case studies. Empirical results demonstrate that the majority of system changes during evolution require no code modifications—only configuration adjustments or the addition of pluggable components—thereby significantly improving architectural stability and reuse efficiency.
This study addresses the low code reusability and redundant implementation across AI agents by proposing LibraryDesignBench, a benchmark accompanied by a two-stage evaluation framework that systematically examines agents’ capacity to design libraries from specifications for downstream reuse. Methodologically, it introduces a sub-agent testing mechanism and an agent-first guidance strategy, integrating multi-model family collaboration to enable automated programming evaluation. The findings reveal that rigid interfaces constitute a critical bottleneck hindering reuse. With targeted refinements, agents can reproduce most human-designed abstractions, significantly enhancing the conciseness of downstream programs and increasing code reuse rates. Ultimately, this work establishes a novel design baseline for collaborative agent-driven software development.
研究了跨生态系统软件包的普遍性、架构模式及其与项目健康度的关系,通过分析六大生态系统中的六百万个软件包,识别出五种架构模式。
本文通过大规模实证研究,分析了Python项目跨操作系统的移植性问题,并提出分类方法和修复模式,以提高开发者的应对能力。
本文提出Bridge框架,通过自动挖掘API更新映射和客户端更新实例来解决库更新时代码适应问题。