skip to main content
Making apis more usable with improved api designs, documentation and tools
Publisher:
  • Carnegie Mellon University
  • Schenley Park Pittsburgh, PA
  • United States
ISBN:978-1-109-16300-1
Order Number:AAI3358065
Pages:
172
Bibliometrics
Skip Abstract Section
Abstract

An important and challenging programming activity is using application programming interfaces (APIs), frameworks, toolkits and libraries. Programmers implementing new functionality need to determine which APIs to use and how to combine them. Programmers reading or modifying code need to understand how existing code that calls APIs works, what assumptions the code makes, and how to change or add to the code without breaking these assumptions. These tasks are increasingly challenging for programmers with the growing size and complexity of APIs; the Java 1.5 JDK, for example, has more than 4,000 classes and more than 30,000 methods. API designers have a challenging task in creating and maintaining these APIs, and they must make many different API design decisions that may affect the usability of APIs in unexpected ways.

This thesis presents ways to improve the usability of the APIs and programming tools programmers use by examining the decisions that API designers make and performing studies comparing design alternatives. It provides evidence that more usable APIs and tools can make programmers faster and can more closely match programmers' mental models. The studies inform recommendations and highlight usability tradeoffs that provide API designers with an empirical basis for the design of usable APIs. The studies also provide insight into how programmers work and how programming tools should be designed.

I first mapped out the space of API design decisions. I examined three API design decisions relating to object creation using constructors and factories, and method placement. Based on the results of these studies, I also designed, implemented and evaluated new API documentation and programming tools.

Contributors
  • Carnegie Mellon University
  • Carnegie Mellon University

Recommendations