A Novel Approach to Integration of Manual Changes in Generated Code: SeamlessMDD

Authors

  • Bojana Dragaš University of Novi Sad, Faculty of Technical Sciences, Serbia, Trg Dositeja Obradovića 6, Novi Sad, Serbia
  • Nenad Todorović University of Novi Sad, Faculty of Technical Sciences, Serbia, Trg Dositeja Obradovića 6, Novi Sad, Serbia
  • Tijana Rajačić Schneider Electric, Industrijska 3G, Novi Sad, Serbia https://orcid.org/0000-0001-6506-3182
  • Gordana Milosavljević University of Novi Sad, Faculty of Technical Sciences, Serbia, Trg Dositeja Obradovića 6, Novi Sad, Serbia https://orcid.org/0000-0003-1764-5422
  • Željko Vuković University of Novi Sad, Faculty of Technical Sciences, Serbia, Trg Dositeja Obradovića 6, Novi Sad, Serbia https://orcid.org/0000-0001-7315-2943

DOI:

https://doi.org/10.13052/jwe1540-9589.2442

Keywords:

Model-driven developement, code generation, handwritten code integration

Abstract

Model-driven development (MDD) significantly improves web development by generating source code from models at higher abstraction levels, which enhances productivity and enables shorter, less expensive development cycles. However, not all aspects of a web application can be captured in a model, necessitating manual changes to the generated code. To prevent the loss of manual changes due to subsequent code generation, various strategies are recommended in the literature: keeping handwritten and generated code in separate files, utilizing protected regions, or employing a version control system (VCS) to merge handwritten and generated code. Unfortunately, these approaches can introduce complexity into web application architecture and impose an additional burden on developers.

This paper presents SeamlessMDD, our novel open-source framework for seamless integration that allows us to maintain handwritten and generated code intertwined without the need to adjust the web application architecture or established workflows. The framework provides the following features: (1) incremental and iterative transformations derived from model versions comparison ensuring that only code for affected model elements is generated or modified; (2) integration of generated and handwritten code using API-based code generators (ABG) that operate on the syntax trees of target programming languages; (3) case-specific support for change propagation and conflict resolution, as opposed to VCS-based systems that operate on a single line. The proposed features were tested in practice within a complex industrial MDD tool.

Downloads

Download data is not yet available.

Author Biographies

Bojana Dragaš, University of Novi Sad, Faculty of Technical Sciences, Serbia, Trg Dositeja Obradovića 6, Novi Sad, Serbia

Bojana Dragaš is a teaching assistant and a PhD student of the Faculty of Technical Sciences, University of Novi Sad, Serbia. Her research interest fall under the field of Model-Driven Engineering (MDE).

Nenad Todorović, University of Novi Sad, Faculty of Technical Sciences, Serbia, Trg Dositeja Obradovića 6, Novi Sad, Serbia

Nenad Todorović is a PhD student at the Faculty of Technical Sciences, University of Novi Sad, Serbia. His research interests are related to Model-Driven Engineering (MDE) and its application in different industrial settings.

Tijana Rajačić, Schneider Electric, Industrijska 3G, Novi Sad, Serbia

Tijana Rajačić is a technical team lead in Schneider Electric development center in Novi Sad, Serbia. She is interested in design patterns, clean code and Model-Driven Engineering.

Gordana Milosavljević, University of Novi Sad, Faculty of Technical Sciences, Serbia, Trg Dositeja Obradovića 6, Novi Sad, Serbia

Gordana Milosavljević is a full professor at the Faculty of Technical Sciences, University of Novi Sad, Serbia. Her research interest fall under the field of Model-Driven Engineering (MDE), agile methodologies and business informatics.

Željko Vuković, University of Novi Sad, Faculty of Technical Sciences, Serbia, Trg Dositeja Obradovića 6, Novi Sad, Serbia

Željko Vuković is an assistant professor at the Faculty of Technical Sciences, University of Novi Sad, Serbia. He does MDE, networking and network security for work and firefighting for fun.

References

Acceleo. https://eclipse.dev/acceleo. Accessed: 2024-04-16.

Mendix. https://www.mendix.com. Accessed: 2024-04-16.

Webratio. https://www.webratio.com. Accessed: 2024-04-16.

F. P. Basso, R. Mainardi Pillat, T. Cavalcante Oliveira, F. Roos-Frantz, and R. Z. Frantz. Automated design of multi-layered web information systems. Journal of Systems and Software, 117:612–637, 2016.

C. Bernaschina, E. Falzone, P. Fraternali, and S. L. Herrera Gonzalez. The virtual developer: Integrating code generation and manual development with conflict resolution. ACM Transactions on Software Engineering and Methodology, 28:1–38, 2019.

M. Brambilla, J. Cabot, and M. Wimmer. Model-Driven Software Engineering in Practice: Second Edition. Morgan & Claypool Publishers, 2nd edition, 2017.

K. Czarnecki and S. Helsen. Feature-based survey of model transformation approaches. IBM Systems Journal, 45(3):621–645, 2006.

P. de Lange, P. Nicolaescu, T. Winkler, and R. Klamma. Enhancing mdwe with collaborative live coding. Modellierung 2018, 02 2018.

Peter de Lange, Petru Nicolaescu, Alexander Tobias Neumann, and Ralf Klamma. Integrating web‐based collaborative live editing and wireframing into a model‐driven web engineering process. Data Science and Engineering, 5:240–260, 2020.

E. Falzone and C. Bernaschina. Intelligent code generation for model driven web development. In Cesare Pautasso, Fernando Sánchez-Figueroa, Kari Systä, and Juan Manuel Murillo Rodríguez, editors, Current Trends in Web Engineering, pages 5–13, Cham, 2018. Springer International Publishing.

F. Fieber, N. Regnat, and B. Rumpe. Assessing usability of model driven development in industrial projects. ArXiv, abs/1409.6588, 2014.

T. Greifenberg, K. Hölldobler, C. Kolassa, M. Look, P. M. S. Nazari, K. Müller, A. N. Perez, D. Plotnikov, D. Reiss, A. Roth, B. Rumpe, M. Schindler, and A. Wortmann. A comparfison of mechanisms for integrating handwritten and generated code for object-oriented programming languages. In 2015 3rd International Conference on Model-Driven Engineering and Software Development (MODELSWARD), pages 74–85, 2015.

S. Johann and A. Egyed. Instant and incremental transformation of models. In Proceedings. 19th International Conference on Automated Software Engineering, 2004., pages 362–365, 2004.

F. Jouault and M Tisi. Towards incremental execution of atl transformations. In L. Tratt and M. Gogolla, editors, Theory and Practice of Model Transformations, pages 123–137, Berlin, Heidelberg, 2010. Springer Berlin Heidelberg.

A. Kusel, J. Etzlstorfer, E. Kapsammer, P. Langer, W. Retschitzegger, J. Schönböck, W. Schwinger, and M. Wimmer. A survey on incremental model transformation approaches. CEUR Workshop Proceedings, 1090:4–13, 2013.

T. Lalošević, Ž. Vuković, and G. Milosavljević. A meta-model and code generator for evolving software product lines. In Konjović, Z., Zdravković, M., Trajanović, M. (Eds.) ICIST 2020 Proceedings, pages 123–128, 2020.

T. Le Calvar, F. Jouault, F. Chhel, and M. Clavreul. Efficient atl incremental transformations. The Journal of Object Technology, 18:2:1, 01 2019.

M. Lienhardt. Pydop: A generic python library for delta-oriented programming. Proceedings of the 27th ACM International Systems and Software Product Line Conference - Volume B, 2023.

M. Nieke, A. Hoff, I. Schaefer, and C. Seidl. Experiences with constructing and evolving asoftware product line with delta-oriented programming. In Proceedings of the 16th International Working Conference on Variability Modelling of Software-Intensive Systems, VaMoS ’22, New York, NY, USA, 2022. Association for Computing Machinery.

B. J. Ogunyomi, L. Rose, and D. Kolovos. Incremental execution of model-to-text transformations using property access traces. Software & Systems Modeling, 18:1–17, 02 2019.

B.J. Ogunyomi. Incremental Model-to-Text Transformation. PhD thesis, University of York, 2016.

I. Schaefer, L. Bettini, V. Bono, F. Damiani, and N. Tanzarella. Delta-oriented programming of software product lines. In J. Bosch and J. Lee, editors, Software Product Lines: Going Beyond, pages 77–91, Berlin, Heidelberg, 2010. Springer Berlin Heidelberg.

D. C. Schmidt. Guest editor’s introduction: Model-driven engineering. Computer, 39(2):25–31, Feb 2006.

B. Selic. The pragmatics of model-driven development. ieee softw. 20(5), 19-25. Software, IEEE, 20:19–25, 10 2003.

S. Sendall and W. Kozaczynski. Model transformation: the heart and soul of model-driven software development. IEEE Software, 20(5):42–45, September 2003.

D. Steinberg, F. Budinsky, E. Merks, and M. Paternostro. EMF: eclipse modeling framework. Pearson Education, 2008.

N. Todorović, B. Dragaš, and G. Milosavljević. Supporting integrative code generation with traceability links and code fragment integrity checks. In M. Trajanovic, N. Filipovic, and M. Zdravkovic, editors, Disruptive Information Technologies for a Smart Society, pages 490–501, Cham, 2024. Springer Nature Switzerland.

N. Todorović, A. Lukić, B. Zoranović, R. Vaderna, Ž. Vuković, and S. Stoja. Roselib: A library for simplifying .net compiler platform usage. In ICIST 2018 Proceedings, pages 216–221. Information Society of Serbia - ISOS, 2018.

A. Vogelsang, T. Amorim, F. Pudlitz, P. Gersing, and J. Philipps. Should i stay or should i go? on forces that drive and prevent mbse adoption in the embedded systems industry. In M. Felderer, D. Méndez Fernández, B. Turhan, M. Kalinowski, F. Sarro, and D. Winkler, editors, Product-Focused Software Process Improvement, pages 182–198, Cham, 09 2017. Springer International Publishing.

B. Zoranović, N. Todorović, Ž. Vuković, A. Lukić, and G. Milosavljević. Testing of large scale model-driven solutions. In Konjović, Z., Zdravković, M., Trajanović, M. (Eds.) ICIST 2019 Proceedings, pages 174–177, 2019.

Downloads

Published

2025-07-31

How to Cite

Dragaš, B. ., Todorović, N. ., Rajačić, T. ., Milosavljević, G. ., & Vuković, Željko . (2025). A Novel Approach to Integration of Manual Changes in Generated Code: SeamlessMDD. Journal of Web Engineering, 24(04), 499–528. https://doi.org/10.13052/jwe1540-9589.2442

Issue

Section

ICWE 2024