Ph.D. Program in Software Engineering, Institute for Software Research
Carnegie Mellon University
MARBLE: Mining for Boilerplate Code to Identify API Usability Problems
Designing usable APIs is critical to developers' productivity and software quality, but is quite difficult. One of the challenges is that anticipating API usability barriers and real-world usage is difficult, due to a lack of automated approaches to mine usability data at scale. In our work, we focus on one particular grievance that developers repeatedly express in online discussions about APIs: "boilerplate code.'' We investigate what properties make code count as boilerplate, and devise a novel approach to automatically mine boilerplate code candidates from API client code repositories. In this talk, I will introduce our boilerplate mining approach, MARBLE, and the mining results on 13 Java APIs. I will also show some evidence of the usefulness of boilerplate mining in searching for usability issues by discussing the causes and potential improvements that could remove some of the identified boilerplate instances.