A Change-based Approach to Software Evolution
Electronic Notes in Theoretical Computer Science (ENTCS)
Change-oriented software engineering
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
SpyWare: a change-aware development toolset
Proceedings of the 30th international conference on Software engineering
A change-aware development environment by recording editing operations of source code
Proceedings of the 2008 international working conference on Mining software repositories
What is the long-term impact of changes?
Proceedings of the 2008 international workshop on Recommendation systems for software engineering
Syde: a tool for collaborative software development
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Software Evolution Comprehension: Replay to the Rescue
ICPC '11 Proceedings of the 2011 IEEE 19th International Conference on Program Comprehension
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
Change-aware development environments have recently become feasible and reasonable. These environments can automatically record fine-grained code changes on a program and allow programmers to replay the recorded changes in chronological order. However, they do not always need to replay all the code changes to investigate how a particular entity of the program has been changed. Therefore, they often skip several code changes of no interest. This skipping action is an obstacle that makes many programmers hesitate in using existing replaying tools. This paper proposes a slicing mechanism that can extract only code changes necessary to construct a particular class member of a Java program from the whole history of past code changes. In this mechanism, fine-grained code changes are represented by edit operations recorded on source code of a program. The paper also presents a running tool that implements the proposed slicing and replays its resulting slices. With this tool, programmers can avoid replaying edit operations nonessential to the construction of class members they want to understand.