loading ...

Model difference

Differences (or change lists or deltas) are the result of a comparison between artefacts at the same level of abstraction. In [1], authors claim that “Delta algorithms, i.e., algorithms that compute differences between two files or strings, have a number of uses when multiple versions of data objects must be stored, transmitted, or processed.”. For instance, filesystem backups are performed incrementally to save storage space, while operating system updates are distributed as patches to avoid large downloads. Moreover, images on displays are locally changed to speed up visualization processing without a complete refresh of the screen. Therefore, it is not surprising that an early and important field of difference application is version management. As soon as large projects are faced some advantages come to light:


A software evolution can be represented as the entire first version and a sequence of difference documents corresponding to subsequent changes on the initial state. Vice versa, it can be stored as a stream of updates that generate the latest revision, which is maintained entirely. These techniques are referred to as forward and backward differencing, respectively [3]. The advantage of using the latter mechanism lies in the quick availability of recent versions, which in general are frequently accessed. In fact, the latest revision is ready while the others can be obtained through few backward steps. On the contrary, forward methods require to traverse the whole change history in order to get the current application stage.

  

References

[1] HUNT, J. J., VO, K.-P., TICHY, W. F. Delta algorithms: an empirical analysis. ACM Trans. Softw. Eng. Methodol. 7, 2 (1998), 192–214.

[2] CHAPIN, N., HALE, J. E., KHAM, K. M., RAMIL, J. F., TAN, W.-G. Types of software evolution and software maintenance. Journal of Software Maintenance 13, 1 (2001), 3–30.

[3] MENS, T. A state-of-the-art survey on software merging. IEEE Trans. Softw. Eng. 28, 5 (2002), 449–462.