Contracts: specifying behavioral compositions in object-oriented systems
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Signature matching: a tool for using software libraries
ACM Transactions on Software Engineering and Methodology (TOSEM)
The reuse of uses in Smalltalk programming
ACM Transactions on Computer-Human Interaction (TOCHI)
Hooking into object-oriented application frameworks
ICSE '97 Proceedings of the 19th international conference on Software engineering
Integrating active information delivery and reuse repository systems
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
Code web: data mining library reuse patterns
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Supporting reuse by delivering task-relevant and personalized information
Proceedings of the 24th International Conference on Software Engineering
Component rank: relative significance rank for software component search
Proceedings of the 25th International Conference on Software Engineering
Proceedings of the 19th IEEE international conference on Automated software engineering
Using structural context to recommend source code examples
Proceedings of the 27th international conference on Software engineering
Jungloid mining: helping to navigate the API jungle
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Hipikat: A Project Memory for Software Development
IEEE Transactions on Software Engineering
Detecting higher-level similarity patterns in programs
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Assisting potentially-repetitive small-scale changes via semi-automated heuristic search
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Informing Eclipse API production and consumption
Proceedings of the 2007 OOPSLA workshop on eclipse technology eXchange
Recommending adaptive changes for framework evolution
Proceedings of the 30th international conference on Software engineering
Team: towards a software engineering semantic web
Proceedings of the 2008 international workshop on Cooperative and human aspects of software engineering
Jigsaw: a tool for the small-scale reuse of source code
Companion of the 30th international conference on Software engineering
A newbie's guide to eclipse APIs
Proceedings of the 2008 international working conference on Mining software repositories
Leveraging Source Code Search for Reuse
ICSR '08 Proceedings of the 10th international conference on Software Reuse: High Confidence Software Reuse in Large Systems
Automatically locating framework extension examples
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Semi-automating small-scale source code reuse via structural correspondence
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Recommending method invocation context changes
Proceedings of the 2008 international workshop on Recommendation systems for software engineering
Potentials and challenges of recommendation systems for software development
Proceedings of the 2008 international workshop on Recommendation systems for software engineering
Sourcerer: mining and searching internet-scale software repositories
Data Mining and Knowledge Discovery
SNIFF: A Search Engine for Java Using Free-Form Queries
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Do developers search for source code examples using multiple facts?
SUITE '09 Proceedings of the 2009 ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation
Lowering the barrier to reuse through test-driven search
SUITE '09 Proceedings of the 2009 ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation
SUITE '09 Proceedings of the 2009 ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation
MAPO: Mining and Recommending API Usage Patterns
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
A code reuse interface for non-programmer middle school students
Proceedings of the 15th international conference on Intelligent user interfaces
Recommending source code examples via API call usages and documentation
Proceedings of the 2nd International Workshop on Recommendation Systems for Software Engineering
On recommending meaningful names in source and UML
Proceedings of the 2nd International Workshop on Recommendation Systems for Software Engineering
Towards query formulation and visualization of structural search results
Proceedings of 2010 ICSE Workshop on Search-driven Development: Users, Infrastructure, Tools and Evaluation
An approach for iterative event pattern recommendation
Proceedings of the Fourth ACM International Conference on Distributed Event-Based Systems
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Software bertillonage: finding the provenance of an entity
Proceedings of the 8th Working Conference on Mining Software Repositories
Searching, selecting, and synthesizing source code
Proceedings of the 33rd International Conference on Software Engineering
Measuring subversions: security and legal risk in reused software artifacts
Proceedings of the 33rd International Conference on Software Engineering
Recommending Adaptive Changes for Framework Evolution
ACM Transactions on Software Engineering and Methodology (TOSEM)
Efficient storage and fast querying of source code
Information Systems Frontiers
A field study of API learning obstacles
Empirical Software Engineering
Mendel: Source code recommendation based on a genetic metaphor
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
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
Systematizing pragmatic software reuse
ACM Transactions on Software Engineering and Methodology (TOSEM)
Identification of generalization refactoring opportunities
Automated Software Engineering
An Information Foraging Theory Perspective on Tools for Debugging, Refactoring, and Reuse Tasks
ACM Transactions on Software Engineering and Methodology (TOSEM)
dCloud: a document link provision cloud for software extension tasks
Proceedings of the International C* Conference on Computer Science and Software Engineering
Portfolio: Searching for relevant functions and their usages in millions of lines of code
ACM Transactions on Software Engineering and Methodology (TOSEM) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance
Empirical Software Engineering
Hi-index | 0.02 |
When coding to an application programming interface (API), developers often encounter difficulties, unsure of which class to subclass, which objects to instantiate, and which methods to call. Example source code that demonstrates the use of the API can help developers make progress on their task. This paper describes an approach to provide such examples in which the structure of the source code that the developer is writing is matched heuristically to a repository of source code that uses the API. The structural context needed to query the repository is extracted automatically from the code, freeing the developer from learning a query language or from writing their code in a particular style. The repository is generated automatically from existing applications, avoiding the need for handcrafted examples. We demonstrate that the approach is effective, efficient, and more reliable than traditional alternatives through four empirical studies.