Origin Tracking \(+\) Text Differencing \(=\) Textual Model Differencing

  • Riemer van RozenEmail author
  • Tijs van der Storm
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9152)


In textual modeling, models are created through an intermediate parsing step which maps textual representations to abstract model structures. Therefore, the identify of elements is not stable across different versions of the same model. Existing model differencing algorithms, therefore, cannot be applied directly because they need to identify model elements across versions. In this paper we present Textual Model Diff (tmdiff), a technique to support model differencing for textual languages. tmdiff requires origin tracking during text-to-model mapping to trace model elements back to the symbolic names that define them in the textual representation. Based on textual alignment of those names, tmdiff can then determine which elements are the same across revisions, and which are added or removed. As a result, tmdiff brings the benefits of model differencing to textual languages.


Model Element Textual Source Edit Operation Longe Common Subsequence Longe Common Subsequence 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Alanen, M., Porres, I.: Difference and union of models. In: Stevens, P., Whittle, J., Booch, G. (eds.) UML 2003. LNCS, vol. 2863, pp. 2–17. Springer, Heidelberg (2003) CrossRefGoogle Scholar
  2. 2.
    Brun, C., Pierantonio, A.: Model differences in the eclipse modeling framework. UPGRADE Eur. J. Inform. Prof. 9(2), 29–34 (2008)Google Scholar
  3. 3.
    Eclipse Foundation: EMF Compare Project.
  4. 4.
    Erdweg, S., et al.: The state of the art in language workbenches. In: Erwig, M., Paige, R.F., Van Wyk, E. (eds.) SLE 2013. LNCS, vol. 8225, pp. 197–217. Springer, Heidelberg (2013) CrossRefGoogle Scholar
  5. 5.
    Eysholdt, M., Behrens, H.: Xtext: implement your language faster than the quick and dirty way. In: Proceedings of the ACM International Conference Companion on Object Oriented Programming Systems Languages and Applications Companion, OOPSLA 2010, pp. 307–309. ACM, New York (2010)Google Scholar
  6. 6.
    Goldschmidt, T., Becker, S., Uhl, A.: Classification of concrete textual syntax mapping approaches. In: Schieferdecker, I., Hartman, A. (eds.) ECMDA-FA 2008. LNCS, vol. 5095, pp. 169–184. Springer, Heidelberg (2008) CrossRefGoogle Scholar
  7. 7.
    Inostroza, P., van der Storm, T., Erdweg, S.: Tracing program transformations with string origins. In: Di Ruscio, D., Varró, D. (eds.) ICMT 2014. LNCS, vol. 8568, pp. 154–169. Springer, Heidelberg (2014) Google Scholar
  8. 8.
    Klint, P., van der Storm, T., Vinju, J.: Rascal: a domain-specific language for source code analysis and manipulation. In: SCAM, pp. 168–177 (2009)Google Scholar
  9. 9.
    Kolovos, D.S., Di Ruscio, D., Pierantonio, A., Paige, R.F.: Different models for model matching: an analysis of approaches to support model differencing. In: ICSE Workshop on Comparison and Versioning of Software Models (CVSM 2009), pp. 1–6. IEEE (2009)Google Scholar
  10. 10.
    Kolovos, D.S., Paige, R.F., Polack, F.A.C.: The epsilon transformation language. In: Vallecillo, A., Gray, J., Pierantonio, A. (eds.) ICMT 2008. LNCS, vol. 5063, pp. 46–60. Springer, Heidelberg (2008) CrossRefGoogle Scholar
  11. 11.
    Miller, W., Myers, E.W.: A file comparison program. Softw. Pract. Exper. 15(11), 1025–1040 (1985)CrossRefGoogle Scholar
  12. 12.
    Myers, E.W.: An \(O(ND)\) difference algorithm and its variations. Algorithmica 1(1–4), 251–266 (1986)MathSciNetCrossRefzbMATHGoogle Scholar
  13. 13.
    Rose, L.M., Paige, R.F., Kolovos, D.S., Polack, F.A.C.: Constructing models with the human-usable textual notation. In: Czarnecki, K., Ober, I., Bruel, J.-M., Uhl, A., Völter, M. (eds.) MODELS 2008. LNCS, vol. 5301, pp. 249–263. Springer, Heidelberg (2008) CrossRefGoogle Scholar
  14. 14.
    Stephan, M., Cordy, J.R.: A survey of model comparison approaches and applications. In: MODELSWARD, pp. 265–277 (2013)Google Scholar
  15. 15.
    Tichy, W.F.: The string-to-string correction problem with block moves. ACM Trans. Comput. Syst. 2(4), 309–321 (1984)MathSciNetCrossRefGoogle Scholar
  16. 16.
    van den Bos, J., van der Storm, T.: Bringing domain-specific languages to digital forensics. In: ICSE 2011, ACM (2011). Software Engineering in PracticeGoogle Scholar
  17. 17.
    van den Bos, J., van der Storm, T.: A case study in evidence-based DSL evolution. In: Van Gorp, P., Ritter, T., Rose, L.M. (eds.) ECMFA 2013. LNCS, vol. 7949, pp. 207–219. Springer, Heidelberg (2013) CrossRefGoogle Scholar
  18. 18.
    van der Storm, T., Cook, W.R., Loh, A.: The design and implementation of object grammars. Sci. Comput. Program. 96(4), 460–487 (2014). Selected Papers from the Fifth International Conference on Software Language Engineering (SLE 2012)CrossRefGoogle Scholar
  19. 19.
    van Deursen, A., Klint, P., Tip, F.: Origin tracking. Symbolic Comput. 15, 523–545 (1993)CrossRefzbMATHGoogle Scholar
  20. 20.
    Yang, W.: Identifying syntactic differences between two programs. Softw. Pract. Exper. 21(7), 739–755 (1991)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  1. 1.Amsterdam University of Applied SciencesAmsterdamThe Netherlands
  2. 2.Centrum Wiskunde and InformaticaAmsterdamThe Netherlands
  3. 3.Universiteit van AmsterdamAmsterdamThe Netherlands

Personalised recommendations