ACM Home Page
Please provide us with feedback. Feedback
The implications of method placement on API learnability
Full text PdfPdf (588 KB)
Source Foundations of Software Engineering archive
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering table of contents
Atlanta, Georgia
SESSION: Programming experiments and aids table of contents
Pages 105-112  
Year of Publication: 2008
ISBN:978-1-59593-995-1
Authors
Jeffrey Stylos  Carnegie Mellon University, Pittsburgh, PA
Brad A. Myers  Carnegie Mellon University, Pittsburgh, PA
Sponsor
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 12,   Downloads (12 Months): 140,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1453101.1453117
What is a DOI?

ABSTRACT

To better understand what makes Application Programming Interfaces (APIs) hard to use and how to improve them, recent research has begun studying programmers' strategies and use of APIs. It was found that method placement --- on which class or classes a method is placed --- can have large usability impact in object-oriented APIs. This was because programmers often start their exploration of an API from one "main" object, and were slower finding other objects that were not referenced in the methods of the main object. For example, while mailServer.send(mailMessage) might make sense, if programmers often begin their API explorations from the MailMessage class, then this makes it harder to find the MailServer class than the alternative mailMessage.send(mailServer). This is interesting because many real APIs place methods essential to common objects on other, helper objects. Alternate versions of three different APIs were compared, and it was found that programmers gravitated toward the same starting classes and were dramatically faster --- between 2 to 11 times --- combining multiple objects when a method on the starting class referred to the other class.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
Bore, C., and S. Bore, "Profiling software API usability for consumer electronics", Consumer Electronics, 2005.
 
3
 
4
Clarke, S. Measuring API Usability. Dr. Dobbs Journal, May 2004, pp S6--S9. 2004.
 
5
Clarke, S. Describing and Measuring API Usability with the Cognitive Dimensions. Cognitive Dimensions of Notations 10th Anniversary Workshop. 2006.
 
6
Clarke, S. "What is an End User Software Engineer?", End User Software Engineering, Dagstuhl Seminar Proceedings, Dagstuhl, Germany, 2007.
 
7
Cwalina, K. and Abrams, B. Framework Design Guidelines. Addison-Wesley, Upper Saddle River, NJ, 2005.
 
8
 
9
 
10
Green, T. R. G., and M. Petre, "Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework", Journal of Visual Languages and Computing, 1996, pp 131--174.
11
 
12
13
 
14
 
15
 
16
Stephens, D. W., and Krebs, J. R. Foraging theory. Princeton, NJ: Princeton University Press. 1986
 
17
 
18
 
19


Collaborative Colleagues:
Jeffrey Stylos: colleagues
Brad A. Myers: colleagues