Lightweight Syntactic API Usage Analysis with UCov - Archive ouverte HAL Accéder directement au contenu
Communication Dans Un Congrès Année : 2024

Lightweight Syntactic API Usage Analysis with UCov

Résumé

Designing an effective API is essential for library developers as it is the lens through which clients will judge its usability and benefits, as well as the main friction point when the library evolves. Despite its importance, defining the boundaries of an API is a challenging task, mainly due to the diverse mechanisms provided by programming languages that have non-trivial interplays. In this paper, we present a novel conceptual framework designed to assist library maintainers in understanding the interactions allowed by their APIs via the use of syntactic usage models. These customizable models enable library maintainers to improve their design ahead of release, reducing friction during evolution. The complementary syntactic usage footprints and coverage scores, inferred from client code using the API (e.g., documentation samples, tests, third-party clients), enable developers to understand in-the-wild uses of their APIs and to reflect on the adequacy of their tests and documentation. We implement these models for Java libraries in a new tool UCov and demonstrate its capabilities on three libraries exhibiting diverse styles of interaction: jsoup, commons-cli, and spark. Our exploratory case study shows that UCov provides valuable information regarding API design and fine-grained analysis of client code to identify under-tested and under-documented library code.
Fichier principal
Vignette du fichier
main.pdf (622.15 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-04463475 , version 1 (17-02-2024)

Identifiants

Citer

Gustave Monce, Thomas Couturou, Yasmine Hamdaoui, Thomas Degueule, Jean-Rémy Falleri. Lightweight Syntactic API Usage Analysis with UCov. 32nd IEEE/ACM International Conference on Program Comprehension (ICPC 2024), Apr 2024, Lisboa, Portugal. ⟨10.1145/3643916.3644415⟩. ⟨hal-04463475⟩

Collections

CNRS ANR
22 Consultations
27 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More