English

Enabling Open-World Specification Mining via Unsupervised Learning

Software Engineering 2019-04-30 v1 Machine Learning

Abstract

Many programming tasks require using both domain-specific code and well-established patterns (such as routines concerned with file IO). Together, several small patterns combine to create complex interactions. This compounding effect, mixed with domain-specific idiosyncrasies, creates a challenging environment for fully automatic specification inference. Mining specifications in this environment, without the aid of rule templates, user-directed feedback, or predefined API surfaces, is a major challenge. We call this challenge Open-World Specification Mining. In this paper, we present a framework for mining specifications and usage patterns in an Open-World setting. We design this framework to be miner-agnostic and instead focus on disentangling complex and noisy API interactions. To evaluate our framework, we introduce a benchmark of 71 clusters extracted from five open-source projects. Using this dataset, we show that interesting clusters can be recovered, in a fully automatic way, by leveraging unsupervised learning in the form of word embeddings. Once clusters have been recovered, the challenge of Open-World Specification Mining is simplified and any trace-based mining technique can be applied. In addition, we provide a comprehensive evaluation of three word-vector learners to showcase the value of sub-word information for embeddings learned in the software-engineering domain.

Keywords

Cite

@article{arxiv.1904.12098,
  title  = {Enabling Open-World Specification Mining via Unsupervised Learning},
  author = {Jordan Henkel and Shuvendu K. Lahiri and Ben Liblit and Thomas Reps},
  journal= {arXiv preprint arXiv:1904.12098},
  year   = {2019}
}
R2 v1 2026-06-23T08:51:03.694Z