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
Object Design: Roles, Responsibilities, and Collaborations
Object Design: Roles, Responsibilities, and Collaborations
Six Learning Barriers in End-User Programming Systems
VLHCC '04 Proceedings of the 2004 IEEE Symposium on Visual Languages - Human Centric Computing
Using structural context to recommend source code examples
Proceedings of the 27th international conference on Software engineering
Estimating the Numbers of End Users and End User Programmers
VLHCC '05 Proceedings of the 2005 IEEE Symposium on Visual Languages and Human-Centric Computing
Mica: A Web-Search Tool for Finding API Components and Examples
VLHCC '06 Proceedings of the Visual Languages and Human-Centric Computing
Usability Implications of Requiring Parameters in Objects' Constructors
ICSE '07 Proceedings of the 29th international conference on Software Engineering
The Factory Pattern in API Design: A Usability Evaluation
ICSE '07 Proceedings of the 29th international conference on Software Engineering
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
API usability: report on special interest group at CHI
ACM SIGSOFT Software Engineering Notes
Conversations in developer communities: a preliminary analysis of the yahoo! pipes community
Proceedings of the fourth international conference on Communities and technologies
A field study of API learning obstacles
Empirical Software Engineering
Comparing complexity of API designs: an exploratory experiment on DSL-based framework integration
Proceedings of the 10th ACM international conference on Generative programming and component engineering
Hi-index | 0.00 |
When creating new application programming interfaces (APIs), designers must make many decisions. These decisions affect the quality of the resulting APIs in terms of performance (such as speed and memory usage), power (expressiveness, extensibility and evolvability) and usability (learnability, productivity and error prevention). Experienced API designers have written recommendations on how to design APIs, offering their opinions on various API design decisions. Additionally, empirical research has begun to measure the usability tradeoffs of specific design decisions. While previous work has offered specific suggestions, there has not been a clear description of the design space of all possible API design decisions, or the quality attributes that these decisions affect. This paper puts existing API design recommendations into context by mapping out the space of API design decisions and API quality attributes.