API usability

A large proportion of software developers’ time is spent on reading and understanding existing code artifacts (such as APIs). I’ve contributed to a website that gathers research papers concerning API usability (http://apiusability.org).

I’ve worked in approaches related to API learning, both in the perspective of enriching APIs themselves as well as building up API usage support from existing code (machine learning).

Click on to see related publications; to visit the repository on Github.



Dacite

Dacite stands for Design Annotations for Complementing Interfaces Targeting Effectiveness. In collaboration with the Natural Programming Project (CMU).

A technique to annotate APIs with design decisions (mostly pertaining to design patterns), in order to facilitate API discoverability and learning with enhanced IDE code completion.

Dacite annotations

Dacite



APISTA

APISTA stands for API Sentence Token Assistance, whereas in Portuguese “a pista” means “the clue”.

A technique to learn API sentences from existing code bases (using Markov models), in order to provide code completion in terms of the possible next instructions to write.

This work was developed in the MSc thesis of Gonçalo Prendi.

APISTA