Abstract
Developing complex software requires that multiple views and versions of the software can be developed in parallel and merged as supported by views and managed by version control systems. In this context, this paper considers permanent monitoring of merging and related consistency problems at the level of models and abstract syntax. The presented approach introduces multi-version models based on typed graphs that permit to store changes and multiple versions in one graph in a compact form and allow (1) to study well-formedness for all versions without the need to extract each version individually, (2) to report all possible merge conflicts without the need to merge all pairs of versions, and (3) to report all violations of well-formedness conditions that will result for merges of any two versions independent of any merge decisions without the need to merge all pairs of versions. Thereby, the approach aims to permit early and frequent conflict detection while developing in parallel. The paper defines the related concepts and algorithms operating on multi-version models, proves their correctness w.r.t. the usually employed three-way-merge, and reports on preliminary experiments concerning the scalability.
This work was developed mainly in the course of the project modular and incremental Global Model Management (project number 336677879) funded by the DFG.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
All experiments were executed on a Linux SMP Debian 4.19.67-2 machine with Intel Xeon E5-2630 CPU (2.3 GHz clock rate) and 386 GB system memory running OpenJDK version 1.8.0_242. Reported execution times correspond to the minimum of at least five runs of the respective experiment. Memory measurements were obtained in a single run using the native Java library. Our implementation and datasets are available under https://github.com/hpi-sam/multi-version-models.
References
Arendt, T., Biermann, E., Jurack, S., Krause, C., Taentzer, G.: Henshin: advanced concepts and tools for in-place EMF model transformations. In: Petriu, D.C., Rouquette, N., Haugen, Ø. (eds.) MODELS 2010. LNCS, vol. 6394, pp. 121–135. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-16145-2_9
Barkowsky, M., Giese, H.: Towards Development with Multi-Version Models: Detecting Merge Conflicts and Checking Well-Formedness. arXiv preprint (2022). https://doi.org/10.48550/arXiv.2205.04198
Blanc, X., Mougenot, A., Mounier, I., Mens, T.: Incremental detection of model inconsistencies based on model operations. In: van Eck, P., Gordijn, J., Wieringa, R. (eds.) CAiSE 2009. LNCS, vol. 5565, pp. 32–46. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-02144-2_8
Brun, Y., Holmes, R., Ernst, M.D., Notkin, D.: Early detection of collaboration conflicts and risks. IEEE Trans. Softw. Eng. 39(10), 1358–1375 (2013). https://doi.org/10.1109/TSE.2013.28
Bruneliere, H., Cabot, J., Jouault, F., Madiot, F.: MoDisco: a generic and extensible framework for model driven reverse engineering. In: Proceedings of the IEEE/ACM International Conference on Automated Software Engineering (2010). https://doi.org/10.1145/1858996.1859032
Czarnecki, K., Antkiewicz, M.: Mapping features to models: a template approach based on superimposed variants. In: Glück, R., Lowry, M. (eds.) GPCE 2005. LNCS, vol. 3676, pp. 422–437. Springer, Heidelberg (2005). https://doi.org/10.1007/11561347_28
Czarnecki, K., Pietroszek, K.: Verifying feature-based model templates against well-formedness OCL constraints. In: Proceedings of the 5th International Conference on Generative Programming and Component Engineering, GPCE 2006, pp. 211–220. Association for Computing Machinery, New York (2006). https://doi.org/10.1145/1173706.1173738
Diskin, Z., Czarnecki, K., Antkiewicz, M.: Model-versioning-in-the-large: algebraic foundations and the tile notation. In: 2009 ICSE Workshop on Comparison and Versioning of Software Models, pp. 7–12. IEEE (2009). https://doi.org/10.1109/CVSM.2009.5071715
Ehrig, H., Ehrig, K., Prange, U., Taentzer, G.: Fundamentals of Algebraic Graph Transformation. EATCS, Springer, Heidelberg (2006). https://doi.org/10.1007/3-540-31188-2
EMF. https://www.eclipse.org/modeling/emf/. Accessed 23 Feb 2022
Finkelstein, A.C.W., Gabbay, D., Hunter, A., Kramer, J., Nuseibeh, B.: Inconsistency handling in multiperspective specifications. IEEE Trans. Software Eng. 20(8), 569–578 (1994). https://doi.org/10.1109/32.3106670
Frühauf, K., Zeller, A.: Software configuration management: state of the art, state of the practice. In: SCM 1999. LNCS, vol. 1675, pp. 217–227. Springer, Heidelberg (1999). https://doi.org/10.1007/3-540-48253-9_15
García-Domínguez, A., Bencomo, N., Parra-Ullauri, J.M., García-Paucar, L.H.: Querying and annotating model histories with time-aware patterns. In: 2019 ACM/IEEE 22nd International Conference on Model Driven Engineering Languages and Systems (MODELS), pp. 194–204. IEEE (2019). https://doi.org/10.1109/MODELS.2019.000-2
Giese, H., Hildebrandt, S., Seibel, A.: Improved flexibility and scalability by interpreting story diagrams. In: Electronic Communications of the EASST, vol. 18 (2009). https://doi.org/10.14279/tuj.eceasst.18.268
Giese, H., Maximova, M., Sakizloglou, L., Schneider, S.: Metric temporal graph logic over typed attributed graphs. In: Hähnle, R., van der Aalst, W. (eds.) FASE 2019. LNCS, vol. 11424, pp. 282–298. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-16722-6_16
Git. https://git-scm.com/. Accessed 23 Feb 2022
Heckel, R., Küster, J.M., Taentzer, G.: Confluence of typed attributed graph transformation systems. In: Corradini, A., Ehrig, H., Kreowski, H.-J., Rozenberg, G. (eds.) ICGT 2002. LNCS, vol. 2505, pp. 161–176. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-45832-8_14
Koegel, M., Helming, J.: EMFStore: a model repository for EMF models. In: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 2, pp. 307–308 (2010). https://doi.org/10.1145/1810295.1810364
Küster, J.M., Gerth, C., Engels, G.: Dependent and conflicting change operations of process models. In: Paige, R.F., Hartman, A., Rensink, A. (eds.) ECMDA-FA 2009. LNCS, vol. 5562, pp. 158–173. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-02674-4_12
Mens, T.: A state-of-the-art survey on software merging. IEEE Trans. Softw. Eng. 28(5), 449–462 (2002). https://doi.org/10.1109/TSE.2002.1000449
Murta, L., Corrêa, C., Prudêncio, J.G., Werner, C.: Towards odyssey-VCS 2: improvements over a UML-based version control system. In: Proceedings of the 2008 International Workshop on Comparison and Versioning of Software Models (2008). https://doi.org/10.1145/1370152.1370159
Pietsch, C., Kelter, U., Kehrer, T.: From pairwise to family-based generic analysis of delta-oriented model-based SPLs, pp. 13–24. Association for Computing Machinery, New York (2021). https://doi.org/10.1145/3461001.3471150
Reuling, D., Pietsch, C., Kelter, U., Kehrer, T.: Towards projectional editing for model-based SPLs. In: Proceedings of the 14th International Working Conference on Variability Modelling of Software-Intensive Systems, VAMOS 2020. Association for Computing Machinery, New York (2020). https://doi.org/10.1145/3377024.3377030
Rutle, A., Rossini, A., Lamo, Y., Wolter, U.: A category-theoretical approach to the formalisation of version control in MDE. In: Chechik, M., Wirsing, M. (eds.) FASE 2009. LNCS, vol. 5503, pp. 64–78. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-00593-0_5
Sakizloglou, L., Ghahremani, S., Barkowsky, M., Giese, H.: Incremental execution of temporal graph queries over runtime models with history and its applications. Softw. Syst. Model. 1–41 (2021). https://doi.org/10.1007/s10270-021-00950-6
Taentzer, G., Ermel, C., Langer, P., Wimmer, M.: A fundamental approach to model versioning based on graph modifications: from theory to implementation. Softw. Syst. Model. 13(1), 239–272 (2012). https://doi.org/10.1007/s10270-012-0248-x
Westfechtel, B.: A formal approach to three-way merging of EMF models. In: Proceedings of the 1st International Workshop on Model Comparison in Practice (2010). https://doi.org/10.1145/1826147.1826155
Westfechtel, B., Greiner, S.: Extending single- to multi-variant model transformations by trace-based propagation of variability annotations. Softw. Syst. Model. 19(4), 853–888 (2020). https://doi.org/10.1007/s10270-020-00791-9
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Barkowsky, M., Giese, H. (2022). Towards Development with Multi-version Models: Detecting Merge Conflicts and Checking Well-Formedness. In: Behr, N., Strüber, D. (eds) Graph Transformation. ICGT 2022. Lecture Notes in Computer Science, vol 13349. Springer, Cham. https://doi.org/10.1007/978-3-031-09843-7_7
Download citation
DOI: https://doi.org/10.1007/978-3-031-09843-7_7
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-09842-0
Online ISBN: 978-3-031-09843-7
eBook Packages: Computer ScienceComputer Science (R0)