Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Effective Java programming language guide
Effective Java programming language guide
IEEE Software
The Factory Pattern in API Design: A Usability Evaluation
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Mapping the Space of API Design Decisions
VLHCC '07 Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing
More natural end-user software engineering
Proceedings of the 4th international workshop on End-user software engineering
Usability evaluation for enterprise SOA APIs
Proceedings of the 2nd international workshop on Systems development in SOA environments
The implications of method placement on API learnability
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
API usability: CHI'2009 special interest group meeting
CHI '09 Extended Abstracts on Human Factors in Computing Systems
Jadeite: improving API documentation using usage information
CHI '09 Extended Abstracts on Human Factors in Computing Systems
Improving Documentation for eSOA APIs through User Studies
IS-EUD '09 Proceedings of the 2nd International Symposium on End-User Development
API usability: report on special interest group at CHI
ACM SIGSOFT Software Engineering Notes
Simplifying environmental model reuse
Environmental Modelling & Software
API peer reviews: a method for evaluating usability of application programming interfaces
Proceedings of the 2010 ACM conference on Computer supported cooperative work
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
On the importance of understanding the strategies that developers use
Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering
Using structure-based recommendations to facilitate discoverability in APIs
Proceedings of the 25th European conference on Object-oriented programming
A field study of API learning obstacles
Empirical Software Engineering
Using intelligent tutors to enhance student learning of application programming interfaces
Journal of Computing Sciences in Colleges
Proceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools
Designing useful tools for developers
Proceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools
Asking and answering questions about unfamiliar APIs: an exploratory study
Proceedings of the 34th International Conference on Software Engineering
Studying the Documentation of an API for Enterprise Service-Oriented Architecture
Journal of Organizational and End User Computing
An Empirical Investigation into Programming Language Syntax
ACM Transactions on Computing Education (TOCE)
Hi-index | 0.00 |
The usability of APIs is increasingly important to programmer productivity. Based on experience with usability studies of specific APIs, techniques were explored for studying the usability of design choices common to many APIs. A comparative study was performed to assess how professional programmers use APIs with required parameters in objects' constructors as opposed to parameterless "default" constructors. It was hypothesized that required parameters would create more usable and self-documenting APIs by guiding programmers toward the correct use of objects and preventing errors. However, in the study, it was found that, contrary to expectations, programmers strongly preferred and were more effective with APIs that did not require constructor parameters. Participants' behavior was analyzed using the cognitive dimensions framework, and revealing that required constructor parameters interfere with common learning strategies, causing undesirable premature commitment.