Rigi-A system for programming-in-the-large
ICSE '88 Proceedings of the 10th international conference on Software engineering
LaSSIE: a knowledge-based software information system
Communications of the ACM - Special issue on software engineering
Documenting frameworks using patterns
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Hooking into object-oriented application frameworks
ICSE '97 Proceedings of the 19th international conference on Software engineering
Object-oriented application frameworks
Communications of the ACM
Design guidelines for “tailorable” frameworks
Communications of the ACM
Communications of the ACM
A design/constraint model to capture design intent
SMA '97 Proceedings of the fourth ACM symposium on Solid modeling and applications
How do program understanding tools affect how programmers understand programs?
Science of Computer Programming - Special issue on WCRE 97
Object-oriented framework-based software development: problems and experiences
ACM Computing Surveys (CSUR)
Code web: data mining library reuse patterns
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Structural Redocumentation: A Case Study
IEEE Software
Software Reflexion Models: Bridging the Gap between Design and Implementation
IEEE Transactions on Software Engineering
Manipulating and documenting software structures using SHriMP views
ICSM '95 Proceedings of the International Conference on Software Maintenance
How Effective Developers Investigate Source Code: An Exploratory Study
IEEE Transactions on Software Engineering
MAPO: mining API usages from open source repositories
Proceedings of the 2006 international workshop on Mining software repositories
Source-Level Linkage: Adding Semantic Information to C++ Fact-bases
ICSM '06 Proceedings of the 22nd IEEE International Conference on Software Maintenance
Using SCL to Specify and Check Design Intent in Source Code
IEEE Transactions on Software Engineering
Approximate Structural Context Matching: An Approach to Recommend Relevant Examples
IEEE Transactions on Software Engineering
SpotWeb: detecting framework hotspots via mining open source repositories on the web
Proceedings of the 2008 international working conference on Mining software repositories
Mining usage expertise from version archives
Proceedings of the 2008 international working conference on Mining software repositories
A newbie's guide to eclipse APIs
Proceedings of the 2008 international working conference on Mining software repositories
Mining trends of library usage
Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops
SpotWeb: Detecting Framework Hotspots and Coldspots via Mining Open Source Code on the Web
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Towards a better code completion system by API grouping, filtering, and popularity-based ranking
Proceedings of the 2nd International Workshop on Recommendation Systems for Software Engineering
TAIC PART'10 Proceedings of the 5th international academic and industrial conference on Testing - practice and research techniques
Enriching Documents with Examples: A Corpus Mining Approach
ACM Transactions on Information Systems (TOIS)
Hi-index | 0.00 |
Application programming interfaces (APIs) inform application developers as to the functionality provided by a library and how to interact with it. APIs are a double-edged sword: if they do not permit the needed functionality to be accessed and adapted as needed, they are obstructing; if they permit all things to all people, they are complex, leading application developers to have difficulty understanding how to use them correctly. Thus, the developers of APIs have a delicate balance to strike between providing configurable functionality and simple interfaces. Inevitably, the wrong balance is sometimes chosen, as the actual usage is different from the expected usage; APIs need to evolve, or to be re-documented to account for this disparity. In this paper we propose a simple technique for quantitatively determining how existing APIs are used, and demonstrate its application to Eclipse. This technique would enable application developers to more easily understand how others have used the APIs and would allow API developers to more easily understand how their APIs are being used.