Useful, But Usable? Factors Affecting the Usability of APIs

Software development today has been largely dependent on the use of API libraries, frameworks, and reusable components. However, the API usability issues often increase the development cost (e.g., time, effort) and lower code quality. In this regard, we study 1,513 bug-posts across five different bug repositories, using both qualitative and quantitative analysis. We identify the API usability issues that are reflected in the bug-posts from the API users, and distinguish relative significance of the usability factors. Moreover, from the lessons learned by manual investigation of the bug-posts, we provide further insight into the most frequent API usability issues.

[1]  E. Acosta Chaparro,et al.  Comparing API Design Choices with Usability Studies : A Case Study and Future Directions , 2006 .

[2]  Umer Farooq,et al.  API usability: CHI'2009 special interest group meeting , 2009, CHI Extended Abstracts.

[3]  S. M. Robertson Postsecondary Education & Autism: Developing an Online Community , 2007 .

[4]  Brad A. Myers,et al.  Mapping the Space of API Design Decisions , 2007 .

[5]  Lin Li,et al.  Obstacles in Using Frameworks and APIs: An Exploratory Study of Programmers' Newsgroup Discussions , 2011, 2011 IEEE 19th International Conference on Program Comprehension.

[6]  Martin P. Robillard,et al.  A field study of API learning obstacles , 2011, Empirical Software Engineering.

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

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

[9]  Jaime Niño,et al.  Introducing API design principles in CS2 , 2009 .

[10]  Thomas D. LaToza,et al.  More natural end-user software engineering , 2008, WEUSE '08.

[11]  Jeffrey Stylos,et al.  A case study of API redesign for improved usability , 2008, 2008 IEEE Symposium on Visual Languages and Human-Centric Computing.

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

[13]  Sae Young Jeong,et al.  Usability challenges for enterprise service-oriented architecture APIs , 2008, 2008 IEEE Symposium on Visual Languages and Human-Centric Computing.

[14]  Steven Clarke,et al.  What Makes APIs Difficult to Use ? , 2008 .

[15]  C. Bore,et al.  Profiling software API usability for consumer electronics , 2005, 2005 Digest of Technical Papers. International Conference on Consumer Electronics, 2005. ICCE..

[16]  Jan Jürjens,et al.  Evaluating the Reference and Representation of Domain Concepts in APIs , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[17]  Paul C. van Oorschot,et al.  The developer is the enemy , 2009, NSPW '08.

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

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

[20]  Joshua J. Bloch How to design a good API and why it matters , 2006, OOPSLA '06.

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

[22]  Jakob Nielsen,et al.  Heuristic evaluation of user interfaces , 1990, CHI '90.