Influencing Factors on the Usability of API Classes and Methods

Usability is an important quality attribute for APIs. To create APIs with good usability, appropriate measurement methods are needed. But currently available methods are cost- and time-expensive and the results are not objective and therefore hard to quantify. API design guidelines give a good overview about important usability factors, but lack a scientific basis. When looking at scientific API usability studies, only a very small area of API design has been researched yet. Existing results don't give enough basis for a good API usability measurement method. In this paper we identify influencing usability factors for the two most common concepts of APIs: classes and methods. We therefore conduct a study with 20 programmers and 2 different API variants and evaluate how differences between the APIs influence usability when instantiating classes and calling methods. The results build a basis for API usability measurement methods and should help design more usable APIs.

[1]  Jakob Nielsen,et al.  Usability engineering , 1997, The Computer Science and Engineering Handbook.

[2]  Clay Spinuzzi,et al.  Building More Usable APIs , 1998, IEEE Softw..

[3]  Brian Ellis,et al.  The Factory Pattern in API Design: A Usability Evaluation , 2007, 29th International Conference on Software Engineering (ICSE'07).

[4]  Antonio Vallecillo,et al.  Measuring the usability of software components , 2006, J. Syst. Softw..

[5]  Michi Henning,et al.  API design matters , 2009, CACM.

[6]  Morten Hertzum,et al.  The Evaluator Effect: A Chilling Fact About Usability Evaluation Methods , 2001, Int. J. Hum. Comput. Interact..

[7]  Brad Abrams,et al.  Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries , 2005 .

[8]  Ebba Þóra Hvannberg,et al.  Heuristic evaluation: Comparing ways of finding and reporting usability problems , 2007, Interact. Comput..

[9]  Brad A. Myers,et al.  The implications of method placement on API learnability , 2008, SIGSOFT '08/FSE-16.

[10]  Martin P. Robillard,et al.  What Makes APIs Hard to Learn? Answers from Developers , 2009, IEEE Software.

[11]  Jeffrey Stylos,et al.  Usability Implications of Requiring Parameters in Objects' Constructors , 2007, 29th International Conference on Software Engineering (ICSE'07).

[12]  Jaroslav Tulach Practical API Design: Confessions of a Java Framework Architect , 2008 .

[13]  Curtis Becker,et al.  Using the cognitive dimensions framework to measure the usability of a class library , 2003, PPIG.

[14]  eva Kühn,et al.  Measurable Concepts for the Usability of Software Components , 2011, 2011 37th EUROMICRO Conference on Software Engineering and Advanced Applications.