Proceedings of the 29th annual ACM/IEEE international symposium on Microarchitecture
Path analysis and renaming for predicted instruction scheduling
International Journal of Parallel Programming - Special issue on parallel architectures and compilation techniques
Bugs as deviant behavior: a general approach to inferring errors in systems code
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
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
Practical Software Maintenance: Best Practices for Managing Your Software Investment
Practical Software Maintenance: Best Practices for Managing Your Software Investment
Efficient path conditions in dependence graphs
Proceedings of the 24th International Conference on Software Engineering
Modernizing Legacy Systems: Software Technologies, Engineering Process and Business Practices
Modernizing Legacy Systems: Software Technologies, Engineering Process and Business Practices
An Implementation of and Experiment with Semantic Differencing
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Identifying Reasons for Software Changes Using Historic Databases
ICSM '00 Proceedings of the International Conference on Software Maintenance (ICSM'00)
A machine learning approach to coreference resolution of noun phrases
Computational Linguistics - Special issue on computational anaphora resolution
Learning block importance models for web pages
Proceedings of the 13th international conference on World Wide Web
Proceedings of the 27th annual international ACM SIGIR conference on Research and development in information retrieval
XML Document Summarization: Using XQuery for Synopsis Creation
DEXA '04 Proceedings of the Database and Expert Systems Applications, 15th International Workshop
Stylistic and lexical co-training for web block classification
Proceedings of the 6th annual ACM international workshop on Web information and data management
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Toward Understanding the Rhetoric of Small Source Code Changes
IEEE Transactions on Software Engineering
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
A system for query-specific document summarization
CIKM '06 Proceedings of the 15th ACM international conference on Information and knowledge management
JDiff: A differencing technique and tool for object-oriented programs
Automated Software Engineering
A metric for software readability
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Automatic documentation inference for exceptions
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Semantics-aware trace analysis
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Discovering and representing systematic code changes
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Automatically finding patches using genetic programming
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Fair and balanced?: bias in bug-fix datasets
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Using decision trees for conference resolution
IJCAI'95 Proceedings of the 14th international joint conference on Artificial intelligence - Volume 2
The automatic creation of literature abstracts
IBM Journal of Research and Development
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
Improving traceability link recovery methods through software artifact summarization
Proceedings of the 6th International Workshop on Traceability in Emerging Forms of Software Engineering
Inferring specifications for resources from natural language API documentation
Automated Software Engineering
Automated documentation inference to explain failed tests
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
A human study of patch maintainability
Proceedings of the 2012 International Symposium on Software Testing and Analysis
On the naturalness of software
Proceedings of the 34th International Conference on Software Engineering
How do software engineers understand code changes?: an exploratory study in industry
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Automatic patch generation learned from human-written patches
Proceedings of the 2013 International Conference on Software Engineering
Current challenges in automatic software repair
Software Quality Control
Maintaining the health of software monitors
Innovations in Systems and Software Engineering
Hi-index | 0.00 |
Source code modifications are often documented with log messages. Such messages are a key component of software maintenance: they can help developers validate changes, locate and triage defects, and understand modifications. However, this documentation can be burdensome to create and can be incomplete or inaccurate. We present an automatic technique for synthesizing succinct human-readable documentation for arbitrary program differences. Our algorithm is based on a combination of symbolic execution and a novel approach to code summarization. The documentation it produces describes the effect of a change on the runtime behavior of a program, including the conditions under which program behavior changes and what the new behavior is. We compare our documentation to 250 human-written log messages from 5 popular open source projects. Employing a human study, we find that our generated documentation is suitable for supplementing or replacing 89% of existing log messages that directly describe a code change.