Mapping code elements in one version of a program to corresponding code elements in another version is a fundamental building block for many software engineering tools. Existing t...
During the development and maintenance of ObjectOriented (OO) software, the information on the classes which are more prone to be changed is very useful. Developers and maintainer...
Backtracking is necessary when design alternatives are explored or dead ends are reached. Unfortunately, current approaches support chronological backtracking only (undo or versio...
Software has been and is still mostly refactored without tool support. Moreover, as we found in our case studies, programmers tend not to document these changes as refactorings, o...
New component-based techniques are emerging, leading to new ways to develop software. Industrial component technologies such as COM, JavaBeans, EJB, or CCM are powerful but their ...