Skip to main navigation Skip to search Skip to main content

Classification of APIs by hierarchical clustering

Research output: Chapter in Book / Report / Conference proceedingConference contributionAcademicpeer-review

Abstract

APIs can be classified according to the programming domains (e.g., GUIs, databases, collections, or security) that they address. Such classification is vital in searching repositories (e.g., the Maven Central Repository for Java) and for understanding the technology stack used in software projects. We apply hierarchical clustering to a curated suite of Java APIs to compare the computed API clusters with preexisting API classifications. Clustering entails various parameters (e.g., the choice of IDF versus LSI versus LDA). We describe the corresponding variability in terms of a feature model. We exercise all possible configurations to determine the maximum correlation with respect to two baselines: i) a smaller suite of APIs manually classified in previous research; ii) a larger suite of APIs from the Maven Central Repository, thereby taking advantage of crowd-sourced classification while relying on a threshold-based approach for identifying important APIs and versions thereof, subject to an API dependency analysis on GitHub. We discuss the configurations found in this way and we examine the influence of particular features on the correlation between computed clusters and baselines. To this end, we also leverage interactive exploration of the parameter space and the resulting dendrograms. In this manner, we can also identify issues with the use of classifiers (e.g., missing classifiers) in the baselines and limitations of the clustering approach.
Original languageEnglish
Title of host publicationProceedings - 2018 ACM/IEEE 26th International Conference on Program Comprehension, ICPC 2018
PublisherIEEE Computer Society
Pages233-243
ISBN (Print)9781450357142
DOIs
Publication statusPublished - 28 May 2018
Externally publishedYes
EventACM/IEEE 26th International Conference on Program Comprehension, ICPC 2018, collocated with the 40th International Conference on Software Engineering, ICSE 2018 - Gothenburg, Sweden
Duration: 27 May 201828 May 2018

Publication series

NameProceedings - International Conference on Software Engineering
ISSN (Print)0270-5257

Conference

ConferenceACM/IEEE 26th International Conference on Program Comprehension, ICPC 2018, collocated with the 40th International Conference on Software Engineering, ICSE 2018
Country/TerritorySweden
CityGothenburg
Period27/05/1828/05/18

Fingerprint

Dive into the research topics of 'Classification of APIs by hierarchical clustering'. Together they form a unique fingerprint.

Cite this