What changes matter to you?
Software developers are often interested in particular changes in programs that
are relevant to their current tasks: not all changes to evolving software are
equally important. However, most existing differencing tools, such as diff,
notify developers of more changes than they wish to see. In this paper, we
propose a technique to specify and automatically detect only those changes in
programs deemed meaningful, or relevant, to a particular development task.
Using four elementary annotations on the grammar of any programming language,
namely Ignore, Order, Prefer and Scope, developers can specify, with limited
effort, the type of change they wish to detect. Our algorithms use these
annotations to transform the input programs into a normalised form, and to
remove clones across different normalised programs in order to detect
non-trivial and relevant differences. We evaluate our tool on a benchmark of
programs to demonstrate its improved precision compared to other differencing
Yijun Yu, Thein Tun, and Bashar Nuseibeh (2011).
"Specifying and detecting meaningful changes in programs". In: 26th IEEE/ACM
International Conference On Automated Software Engineering, 6-11 Nov 2011,
Lawrence, Kansas, USA.
Office: +44 (0) 1908 6 55562