An Overview of API Evaluation Techniques

I wrote a paper on the very intriguing topic of API Evaluation, which is often overlooked or simply unknown to many software developers. The paper aims to give an overview of the topic, describing qualities of good APIs, and currently available and researched techniques to evaluate APIs.

I also gave a presentation on the topic. Alas, the slides are only availabe in german.

Abstract

Application Programming Interfaces (APIs) are the “glue” between software components. Almost all developers work with APIs on a regular basis in one form or another, making APIs one of the cornerstones of modern software development. Still, evaluating and ensuring API qualities is an often overlooked topic. In the past years, a lot of research has been going on with the goal to come up with better evaluation techniques and metrics to assess the qualities of APIs.

This paper analyses the current state of research. It starts with an introduction to the problem and gives an overview of five recent proposals for API evaluation techniques. Every technique is introduced, described both in terms of necessary preparations and the actual execution and concluded by a summary that highlights benefits and drawbacks of the technique. Closing, a conclusion provides an overview of the state of API evaluation techniques based on the five techniques reviewed in this paper.

Attributions

The beautiful photos on the first and last slides were taken by Hansheinz Müller Philipps Sohn, a talented hobby photographer and good friend of mine. They were, of course, used with his permission.