Efficient and precise modeling of exceptions for the analysis of Java programs
Proceedings of the 1999 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Path analysis and renaming for predicted instruction scheduling
International Journal of Parallel Programming - Special issue on parallel architectures and compilation techniques
Complexity of Points-To Analysis of Java in the Presence of Exceptions
IEEE Transactions on Software Engineering
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ESP: path-sensitive program verification in polynomial time
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Software Engineering: Theory and Practice
Software Engineering: Theory and Practice
Automatic extraction of object-oriented component interfaces
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Efficient path conditions in dependence graphs
Proceedings of the 24th International Conference on Software Engineering
What programmers really want: results of a needs assessment for SDK documentation
Proceedings of the 20th annual international conference on Computer documentation
IEEE Software
Investigating Reading Techniques for Object-Oriented Framework Learning
IEEE Transactions on Software Engineering
A Static Study of Java Exceptions Using JESP
CC '00 Proceedings of the 9th International Conference on Compiler Construction
Static analysis to support the evolution of exception structure in object-oriented systems
ACM Transactions on Software Engineering and Methodology (TOSEM)
Automated Support for Development, Maintenance, and Testing in the Presence of Implicit Control Flow
Proceedings of the 26th International Conference on Software Engineering
Finding and preventing run-time error handling mistakes
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Synthesis of interface specifications for Java classes
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
A study of the documentation essential to software maintenance
Proceedings of the 23rd annual international conference on Design of communication: documenting & designing for pervasive information
What users say they want in documentation
SIGDOC '06 Proceedings of the 24th annual ACM international conference on Design of communication
Detecting object usage anomalies
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Parseweb: a programmer assistant for reusing open source code on the web
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
A metric for software readability
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Jadeite: improving API documentation using usage information
CHI '09 Extended Abstracts on Human Factors in Computing Systems
Improving API documentation usability with knowledge pushing
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Graph-based mining of multiple object usage patterns
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
MAPO: Mining and Recommending API Usage Patterns
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
What Makes APIs Hard to Learn? Answers from Developers
IEEE Software
Data-driven synthesis for object-oriented frameworks
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Mining temporal specifications for error detection
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
A human study of patch maintainability
Proceedings of the 2012 International Symposium on Software Testing and Analysis
Inferring likely mappings between APIs
Proceedings of the 2013 International Conference on Software Engineering
Mining succinct and high-coverage API usage patterns from source code
Proceedings of the 10th Working Conference on Mining Software Repositories
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Generating API-usage example for project developers
Proceedings of the 5th Asia-Pacific Symposium on Internetware
Hi-index | 0.00 |
Key program interfaces are sometimes documented with usage examples: concrete code snippets that characterize common use cases for a particular data type. While such documentation is known to be of great utility, it is burdensome to create and can be incomplete, out of date, or not representative of actual practice. We present an automatic technique for mining and synthesizing succinct and representative human-readable documentation of program interfaces. Our algorithm is based on a combination of path sensitive dataflow analysis, clustering, and pattern abstraction. It produces output in the form of well-typed program snippets which document initialization, method calls, assignments, looping constructs, and exception handling. In a human study involving over 150 participants, 82% of our generated examples were found to be at least as good at human-written instances and 94% were strictly preferred to state of the art code search.