Fine-grained revision control for collaborative software development
SIGSOFT '93 Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering
Version models for software configuration management
ACM Computing Surveys (CSUR)
Programmers use slices when debugging
Communications of the ACM
A State-of-the-Art Survey on Software Merging
IEEE Transactions on Software Engineering
ICSE '81 Proceedings of the 5th international conference on Software engineering
Extensible Language-Aware Merging
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
Supporting Source Code Difference Analysis
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
Mining version archives for co-changed lines
Proceedings of the 2006 international workshop on Mining software repositories
JDiff: A differencing technique and tool for object-oriented programs
Automated Software Engineering
Identifying Changed Source Code Lines from Version Repositories
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Proceedings of the 30th international conference on Software engineering
Branching and merging in the repository
Proceedings of the 2008 international working conference on Mining software repositories
SZZ revisited: verifying when changes induce fixes
DEFECTS '08 Proceedings of the 2008 workshop on Defects in large software systems
A program differencing algorithm for verilog HDL
Proceedings of the IEEE/ACM international conference on Automated software engineering
WhoseFault: automatic developer-to-fault assignment through fault localization
Proceedings of the 34th International Conference on Software Engineering
Slicing and replaying code change history
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
History slicing: assisting code-evolution tasks
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Hi-index | 0.00 |
To perform a number of tasks such as inferring design rationale from past code changes or assessing developer expertise for a software feature or bug, the evolution of a set of lines of code can be assessed by mining software histories. However, determining the evolution of a set of lines of code is a manual and time consuming process. This paper presents a model of this process and an approach for automating it. We call this process History Slicing. We describe the process and options for generating a graph that links every line of code with its corresponding previous revision through the history of the software project. We then explain the method and options for utilizing this graph to determine the exact revisions that contain changes for the lines of interest and their exact position in each revision. Finally, we present some preliminary results which show initial evidence that our automated technique can be several orders of magnitude faster than the manual approach and require that developers examine up to two orders of magnitude less code in extracting such histories.