A Category-Theoretical Approach to the Formalisation of Version Control in MDE

  • Adrian Rutle
  • Alessandro Rossini
  • Yngve Lamo
  • Uwe Wolter
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5503)


In Model-Driven Engineering (MDE) models are the primary artefacts of the software development process. Similar to other software artefacts, models undergo a complex evolution during their life cycles. Version control is one of the key techniques which enables developers to tackle this complexity. Traditional version control systems are based on the copy-modify-merge paradigm which is not fully exploited in MDE because of the lack of model-specific techniques. In this paper we give a formalisation of the copy-modify-merge paradigm in MDE. In particular, we analyse how common models and merge models can be defined by means of category-theoretical constructions. Moreover, we show how the properties of those constructions can be used to identify model differences and conflicting modifications.


Model Transformation Model Versus Common Model Predicate Symbol Version Control 
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.
    Baresi, L., Heckel, R.: Tutorial Introduction to Graph Transformation: A Software Engineering Perspective. In: Ehrig, H., Engels, G., Parisi-Presicce, F., Rozenberg, G. (eds.) ICGT 2004. LNCS, vol. 3256, pp. 431–433. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  2. 2.
    Brun, C., Musset, J., Toulmé, A.: EMF Compare Project,
  3. 3.
    Cicchetti, A., Di Ruscio, D., Pierantonio, A.: A Metamodel Independent Approach to Difference Representation. Journal of Object Technology 6(9), 165–185 (2007) (Special Issue on TOOLS Europe 2007)CrossRefGoogle Scholar
  4. 4.
    Mens, T., Taentzer, G., Runge, O.: Detecting Structural Refactoring Conflicts Using Critical Pair Analysis. Electronic Notes in Theoretical Computer Science 127(3), 113–128 (2005)CrossRefGoogle Scholar
  5. 5.
    Niu, N., Easterbrook, S., Sabetzadeh, M.: A Category-theoretic Approach to Syntactic Software Merging. In: ICSM 2005: 21st IEEE International Conference on Software Maintenance, pp. 197–206. IEEE Computer Society, Los Alamitos (2005)Google Scholar
  6. 6.
    Rutle, A., Wolter, U., Lamo, Y.: Diagrammatic Software Specifications. In: NWPT 2006: 18th Nordic Workshop on Programming Theory (October 2006)Google Scholar
  7. 7.
    Rutle, A., Wolter, U., Lamo, Y.: A Diagrammatic Approach to Model Transformations. In: EATIS 2008: Euro American Conference on Telematics and Information Systems (2008)Google Scholar
  8. 8.
    Rutle, A., Wolter, U., Lamo, Y.: A Formal Approach to Modeling and Model Transformations in Software Engineering. Technical Report 48, Turku Centre for Computer Science, Finland (2008)Google Scholar
  9. 9.
    Wolter, U., Diskin, Z.: Generalized Sketches: Towards a Universal Logic for Diagrammatic Modeling in Software Engineering. In: ACCAT Workshop 2007, satellite event of ETAPS 2007: European Joint Conferences on Theory and Practice of Software (to appear)Google Scholar
  10. 10.
    Diskin, Z.: Model Transformation via Pull-backs: Algebra vs. Heuristics. Technical Report 521, School of Computing, Queen’s University, Kingston, Canada (September 2006)Google Scholar
  11. 11.
    Lin, Y., Gray, J., Jouault, F.: DSMDiff: A Differentiation Tool for Domain-Specific Models. European Journal of Information Systems 16(4), 349–361 (2007) (Special Issue on Model-Driven Systems Development)CrossRefGoogle Scholar
  12. 12.
    Rivera, J.E., Vallecillo, A.: Representing and Operating with Model Differences. In: 46th International Conference on TOOLS Europe 2008: Objects, Components, Models and Patterns. LNBIP, vol. 11, pp. 141–160. Springer, Heidelberg (2008)Google Scholar
  13. 13.
    Ohst, D., Welle, M., Kelter, U.: Differences between versions of UML diagrams. In: ESEC/FSE 2003: 11th ACM SIGSOFT Symposium on Foundations of Software Engineering 2003, pp. 227–236. ACM, New York (2003)Google Scholar
  14. 14.
    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
  15. 15.
    Cicchetti, A., Di Ruscio, D., Pierantonio, A.: Managing Model Conflicts in Distributed Development. In: Czarnecki, K., Ober, I., Bruel, J.-M., Uhl, A., Völter, M. (eds.) MODELS 2008. LNCS, vol. 5301, pp. 311–325. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  16. 16.
    Cicchetti, A., Rossini, A.: Weaving Models in Conflict Detection Specifications. In: SAC 2007: 22 nd ACM Symposium on Applied Computing, pp. 1035–1036. ACM, New York (2007)CrossRefGoogle Scholar
  17. 17.
    Rutle, A., Rossini, A.: A Tentative Analysis of the Factors Affecting the Industrial Adoption of MDE. In: ChaMDE 2008: 1st International Workshop on Challenges in Model-Driven Software Engineering, pp. 57–61 (2008),

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Adrian Rutle
    • 1
  • Alessandro Rossini
    • 2
  • Yngve Lamo
    • 1
  • Uwe Wolter
    • 2
  1. 1.Bergen University CollegeBergenNorway
  2. 2.University of BergenBergenNorway

Personalised recommendations