API Usability


Whether creating a piece of desktop software, writing applications for handheld devices, or scripting the Web, the use of application programming interfaces (APIs) in modern software development is ubiquitous. These APIs, also called software development kits (SDKs) or libraries, are often large, complex, and broad in scope, containing many hundreds or thousands of classes and interfaces. A typical developer may use only a small portion of the total functionality of an API, but learning even that subset can be a daunting task for new programmers.

API designers must consider many factors when creating an API, such as class granularity, level of abstraction, consistency with other APIs, etc. Research has also shown that designing APIs carefully for their intended audience improves usability. To date, usability studies of APIs have mostly considered the usability of the API as a whole, providing minimal guidance for future API designers. Little research has examined the usability of specific design patterns and programming paradigms as applied to API design.

We are investigating the implications of choosing particular API design patterns on programmer productivity and API learning. Our results have shown that programmers require significantly more time to construct an object with a factory than with a constructor while performing both context-sensitive and context-free tasks and that programmers strongly prefer and were more effective with APIs that did not require constructor parameters. We expect to explore similar design tradeoffs in future studies.

 

local

Stylos, J., Myers, B. (2008). The Implications of Method Placement on API Learnability. Sixteenth ACM SIGSOFT Symposium on Foundations of Software Engineering, FSE 2008. Atlanta, GA, November 9-14, 2008. To appear.

local

Stylos, J., Myers, B. (2007). Mapping the Space of API Design Decisions. IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC'07. Sept 23-27, 2007, Coeur d'Alene, Idaho. pp. 50-57.

local

Ellis, B., Stylos J., Myers B. (2007). The Factory Pattern in API Design: A Usability Evaluation. International Conference on Software Engineering, Minneapolis, MN, USA, May 20-26, pp. 302-312.

local

Stylos J, Clarke S. (2007). Usability Implications of Requiring Parameters in Objects' Constructors. International Conference on Software Engineering, Minneapolis, MN, USA, May 20-26, pp. 529-539.

Usability of eSOA APIs

As a subproject, we are collaborating with SAP to improve the usability of their Enterprise Service Oriented Architecture (eSOA) APIs. SAP's eSOA usability effort faces interesting and novel challenges that may yield general solutions to other SOA API design efforts. By examining the APIs and tools that are part of the eSOA life cycle, we have begun to identify pain points, barriers and means of improvement relevant to eSOA APIs and other domains as well.

 

local

Jeong, S., Xie, Y., Beaton, J., Myers, B., Stylos, J., Ehret, R., Karstens, J., Efeoglu, A., Busse, D. (2009). Improving Documentation for eSOA APIs Through User Studies. Submitted for publication.

local

Stylos, J., Graf, B., Busse, D., Ziegler, C., Ehret, R., Karstens, J. (2008). A Case Study of API Redesign for Improved Usability. IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC'08. Sept 15-19, 2008, Herrsching am Ammersee, German. pp. 189-192.

local

Beaton, J., Jeong, S., Xie, Y., Stylos, J., Myers, B. (2008). Usability challenges for enterprise service-oriented architecture APIs. IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC'08. Sept 15-19, 2008, Herrsching am Ammersee, German. pp. 193-196.

local

Beaton, J., Myers, B., Stylos, J., Jeong, S., Xie, Y. (2008). Usability Evaluation for Enterprise SOA APIs. 2nd International Workshop on Systems Development in SOA Environments, SDSOA 2008, Co-located with ICSE 2008, Leipzig, Germany. May 12, 2008. pp. 29-34.


Copyright © 1996-2008 - Carnegie Mellon University - All Rights Reserved.