The reuse of uses in Smalltalk programming
ACM Transactions on Computer-Human Interaction (TOCHI)
On the criteria to be used in decomposing systems into modules
Communications of the ACM
What programmers really want: results of a needs assessment for SDK documentation
Proceedings of the 20th annual international conference on Computer documentation
IEEE Software
Protected Variation: The Importance of Being Closed
IEEE Software
Public versus Published Interfaces
IEEE Software
Investigating Reading Techniques for Object-Oriented Framework Learning
IEEE Transactions on Software Engineering
The Information Gathering Strategies of Software Maintainers
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
Designing electronic reference documentation for software component libraries
Journal of Systems and Software
Six Learning Barriers in End-User Programming Systems
VLHCC '04 Proceedings of the 2004 IEEE Symposium on Visual Languages - Human Centric Computing
What Can Programmer Questions Tell Us About Frameworks?
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
How to design a good API and why it matters
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Revealing actual documentation usage in software maintenance through war stories
Information and Software Technology
Approximate Structural Context Matching: An Approach to Recommend Relevant Examples
IEEE Transactions on Software Engineering
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
Information Needs in Collocated Software Development Teams
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
Practical API Design: Confessions of a Java Framework Architect
Practical API Design: Confessions of a Java Framework Architect
Ensuring Well-Behaved Usage of APIs through Syntactic Constraints
ICPC '08 Proceedings of the 2008 The 16th IEEE International Conference on Program Comprehension
Asking and Answering Questions during a Programming Change Task
IEEE Transactions on Software Engineering
The implications of method placement on API learnability
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Two studies of opportunistic programming: interleaving web foraging, learning, and writing code
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries
Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries
Improving Documentation for eSOA APIs through User Studies
IS-EUD '09 Proceedings of the 2nd International Symposium on End-User Development
A case study of API redesign for improved usability
VLHCC '08 Proceedings of the 2008 IEEE Symposium on Visual Languages and Human-Centric Computing
Usability challenges for enterprise service-oriented architecture APIs
VLHCC '08 Proceedings of the 2008 IEEE Symposium on Visual Languages and Human-Centric Computing
What Makes APIs Hard to Learn? Answers from Developers
IEEE Software
Searching, selecting, and synthesizing source code
Proceedings of the 33rd International Conference on Software Engineering
An empirical study on evolution of API documentation
FASE'11/ETAPS'11 Proceedings of the 14th international conference on Fundamental approaches to software engineering: part of the joint European conferences on theory and practice of software
Using structure-based recommendations to facilitate discoverability in APIs
Proceedings of the 25th European conference on Object-oriented programming
Inferring specifications for resources from natural language API documentation
Automated Software Engineering
Using intelligent tutors to enhance student learning of application programming interfaces
Journal of Computing Sciences in Colleges
Analyzing temporal API usage patterns
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Temporal analysis of API usage concepts
Proceedings of the 34th International Conference on Software Engineering
Development and application of a heuristic to assess trends in API documentation
Proceedings of the 30th ACM international conference on Design of communication
How do developers use parallel libraries?
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Seeking the ground truth: a retroactive study on the evolution and migration of software libraries
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Detecting API usage obstacles: a study of iOS and Android developer questions
Proceedings of the 10th Working Conference on Mining Software Repositories
Mining succinct and high-coverage API usage patterns from source code
Proceedings of the 10th Working Conference on Mining Software Repositories
API change and fault proneness: a threat to the success of Android apps
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
API documentation and software community values: a survey of open-source API documentation
Proceedings of the 31st ACM international conference on Design of communication
Detecting API documentation errors
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Hi-index | 0.00 |
Large APIs can be hard to learn, and this can lead to decreased programmer productivity. But what makes APIs hard to learn? We conducted a mixed approach, multi-phased study of the obstacles faced by Microsoft developers learning a wide variety of new APIs. The study involved a combination of surveys and in-person interviews, and collected the opinions and experiences of over 440 professional developers. We found that some of the most severe obstacles faced by developers learning new APIs pertained to the documentation and other learning resources. We report on the obstacles developers face when learning new APIs, with a special focus on obstacles related to API documentation. Our qualitative analysis elicited five important factors to consider when designing API documentation: documentation of intent; code examples; matching APIs with scenarios; penetrability of the API; and format and presentation. We analyzed how these factors can be interpreted to prioritize API documentation development efforts