A systematic approach to API usability: Taxonomy-derived criteria and a case study

Abstract Context The currently existing literature about Application Program Interface (API) usability is heterogeneous in terms of goals, scope, and audience; and its connection to accepted definitions of usability is rarely made explicit. The use of metrics to measure API usability is focused only on measurable characteristics excluding those usability aspects that are related to the subjectivity of human opinions. Objective Our objective is to build a comprehensive set of heuristics and guidelines for API usability that is a structured synthesis of the existing literature on API usability but which also covers other aspects that have been neglected so far. This set is explicitly connected with a usability model, something that allows us to check if we are addressing actual usability problems. Method Our approach is to follow a systematic approach based on a comprehensive model of usability and context-of-use. From this comprehensive model we derived the set of heuristics and guidelines that are used to carry out a heuristic evaluation with usability experts and a subjective analysis with users. The influence of the context of use, something that is normally ignored, is explicitly analyzed. Results Our heuristics and guidelines were integrated into a usability study of a sleep medicine API. In this study, we were able to identify several usability issues of the proposed API that are not explicitly addressed in the existing literature. The context of use helped us to identify those categories that were more relevant to consider in order to improve API usability. Conclusion The literature on API usability is very technically-minded and tends to neglect the subjective component of usability. We contribute to a more global and comprehensive view of the usability of APIs that is not contradictory but complementary with metrics. Our criteria ease the always necessary usability evaluation with human evaluators and users.

[1]  Joshua Bloch Effective Java (2nd Edition) (The Java Series) , 2008 .

[2]  Bob Kemp,et al.  European data format ‘plus’ (EDF+), an EDF alike standard format for the exchange of physiological data , 2003, Clinical Neurophysiology.

[3]  Vicente Moret-Bonillo,et al.  A knowledge model for the development of a framework for hypnogram construction , 2017, Knowl. Based Syst..

[4]  Nigel Bevan,et al.  Extending Quality in Use to Provide a Framework for Usability Measurement , 2009, HCI.

[5]  Rex B. Kline,et al.  Usability measurement and metrics: A consolidated model , 2006, Software Quality Journal.

[6]  A Värri,et al.  A simple format for exchange of digitized polygraphic recordings. , 1992, Electroencephalography and clinical neurophysiology.

[7]  Marian Petre,et al.  Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework , 1996, J. Vis. Lang. Comput..

[8]  Bertrand Meyer,et al.  An Empirical Study of API Usability , 2013, 2013 ACM / IEEE International Symposium on Empirical Software Engineering and Measurement.

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

[10]  Vicente Moret-Bonillo,et al.  Computer-Assisted Diagnosis of the Sleep Apnea-Hypopnea Syndrome: A Review , 2015, Sleep disorders.

[11]  Cleidson R. B. de Souza,et al.  Automatic evaluation of API usability using complexity metrics and visualizations , 2009, 2009 31st International Conference on Software Engineering - Companion Volume.

[12]  Kent Beck Implementation Patterns , 2007 .

[13]  Vicente Moret-Bonillo,et al.  A Context-of-Use Taxonomy for Usability Studies , 2010, Int. J. Hum. Comput. Interact..

[14]  Robert C. Martin Clean Code - a Handbook of Agile Software Craftsmanship , 2008 .

[15]  Thomas D. LaToza,et al.  Programmers Are Users Too: Human-Centered Methods for Improving Programming Tools , 2016, Computer.

[16]  Michi Henning API: Design Matters , 2007, ACM Queue.

[17]  Umer Farooq,et al.  API usability: report on special interest group at CHI , 2009, SOEN.

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

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

[20]  James R. Lewis,et al.  Usability: Lessons Learned … and Yet to Be Learned , 2014, Int. J. Hum. Comput. Interact..

[21]  Ken Arnold Programmers Are People, too , 2005, ACM Queue.

[22]  Diego Álvarez Estévez Diagnosis of the sleep apnea-hypopnea syndrome : a comprehensive approach through an intelligent system to support medical decision , 2012 .

[23]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[24]  Brad A. Myers,et al.  Improving API usability , 2016, Commun. ACM.

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

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

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

[28]  Stefan Wagner,et al.  A Comprehensive Model of Usability , 2007, EHCI/DS-VIS.

[29]  eva Kühn,et al.  Automated measurement of API usability: The API Concepts Framework , 2015, Inf. Softw. Technol..

[30]  M. Sateia,et al.  International classification of sleep disorders-third edition: highlights and modifications. , 2014, Chest.

[31]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[32]  Elena Hernández-Pereira,et al.  A method for the automatic analysis of the sleep macrostructure in continuum , 2013, Expert Syst. Appl..

[33]  Marti A. Hearst,et al.  The state of the art in automating usability evaluation of user interfaces , 2001, CSUR.

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

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

[36]  Vicente Moret-Bonillo,et al.  A Taxonomy-Based Usability Study of an Intelligent Speed Adaptation Device , 2014, Int. J. Hum. Comput. Interact..

[37]  Chanchal Kumar Roy,et al.  Useful, But Usable? Factors Affecting the Usability of APIs , 2011, 2011 18th Working Conference on Reverse Engineering.

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

[39]  Minhaz F. Zibran What Makes APIs Difficult to Use , 2008 .

[40]  Avinash C. Kak,et al.  Some structural measures of API usability , 2015, Softw. Pract. Exp..

[41]  Manfred Tscheligi,et al.  Methods towards API Usability: A Structural Analysis of Usability Problem Categories , 2012, HCSE.

[42]  Vicente Moret-Bonillo,et al.  Usability: A Critical Analysis and a Taxonomy , 2009, Int. J. Hum. Comput. Interact..