* *How far is the method applicable to other cases?* . We use a single context (automated control system with physical devices and mobile app) and presented here only one case study. This minimal contexts enables to cover the main software design concerns (distribution, communication, persistency, concurrency, deployment...) in a reduced complexity set and we think it is representative of what we can expect to do and the underlying concepts. Other architecture can be used, this is the generic vision of the process that make it more applicable than dedicated approaches such as the one of Section 4.2. But other experimentations of different types of applications and different PDM must confirm our assumptions.

* *Is the method bound to UML only?* . The answer is no because the method is generic but of course we need to have transformation implementations available for the modelling languages.

* *Is the method applicable to the whole software development of a system?* . At this stage, the answer is no. Only a part of the application is transformed, e.g. the GUI part is not concerned here but GUI generating facilities exist. Also the early macro-transformations (T1, T2) appear to be simpler in their principle (mapping logical elements to platform architectural elements) than the late transformation (T3, T4), their integration is much more complex because they have organisational consequences on those late transformation. There is a composition issue we have not tackle yet in detail.

* *Can this method be applied in real software development process* ? Theoretically the answer is yes but there is a long load to this goal due to the numerous prerequisite for an assisted process: PDM models, transformation engineering (transformation implementation, mapping transformations, operators to combine transformations, verification...). The next step should be a high level transformation case tool with libraries of (compatible) transformations.

## 9 Conclusion

Model-Driven Engineering did not reach yet the promises given in [58] for the software development practice. Integration modelling process still require methodological standards and tool support despite progress is not mature enough. Domain specific applications coupled with specific platforms can lead to good automation rate but add them up do not provide general-purpose equipment. The maintenance of software systems implies a high reactivity of the development teams and highlights the need for industrialisation tools that go beyond integrated development and deployment platforms.

This article takes the development problem from a practitioner's point of view, we share experiments and vision, and we exhibit solutions where assistance and automation can take place. The gap between logic models and implementation stay large, the "no code" vision is utopian for general purpose modelling languages such as UML or SysML. Starting from low level design model stay difficult if the frameworks have not been integrated in the models.

The problem has been studied by reporting forward engineering experience and comparing modelling code generation tool support to elaborate a stepwise development workflow based on both engineering and reverse-engineering activities. To reduce a technical debt, we propose to abstract the infrastructure and reason at the model level while facilitating the refinement of these models in executable versions. The experiments carried out here stand to that direction and induce the feasibility of the different model transformations which (partially) automate the process.

Our contribution does not pretend to replace developers but to assist them to build integration chains that make maintenance and evolution less expensive. The human intervention in transformations remains predominant when there are alternative choices, such as state machines or message send detailed design. The process has to be more rationalised to be automated or even assisted by the means of interactive design decisions. This point remains premature in the state of our experiments.

This work establishes a starting point from which further works are requested through collaborative community contribution. Enriching models, formalizing processes of refinement, mak-
ing modular and personalizing development to rely on transformation tools are the tracks we fol-
low. Many tracks remains to be explored, that are challenging. From a theoretical point of view,
the transformation processes remain little explored. One perspective is to design an algebra of
transformations to combine them by assertion conditions. From a practical point of view, we still
need to rationalise the software engineering process as a combination of decisions and experiment
with a typology of transformations. From a tooling point of view, we need a transformation pro-
cess factory to build specific MDD processes based on the generic design transformation process
where one could pick and combine transformations and macro-transformations, a composite level
of transformation patterns [60]. Also it is necessary to be able to reverse engineering the design
frameworks as platforms models and to combine transformations written in different languages
and that are interactive so that the designer influences the design choices.

***Acknowledgements*** This article is an extended version of [63].

References

[1] J. Koskinen, “Software Maintenance Costs,” School of Computing, University of Eastern Finland, Joensuu, Finland, Tech. Rep., Apr. 2015. [Online]. Available: https://wiki.uef.fi/download/attachments/38669960/SMCOSTS.pdf

[2] S. M. H. Dehaghani and N. Hajrahimi, “Which factors affect software projects maintenance cost more?” *Acta Informatica Medica*, vol. 21, no. 1, pp. 63–66, Mar. 2013. [Online]. Available: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3610582/

[3] B. Selic, “Personal reflections on automation, programming culture, and model-based software engineering,” *Automated Software Engineering*, vol. 15, no. 3, pp. 379–391, Dec 2008.

[4] P. André and M. E. A. Tebib, “Refining automation system control with MDE,” in *Proceedings of the 8th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2020, Valletta, Malta, February 25-27, 2020*, S. Hammoudi, L. F. Pires, and B. Selic, Eds. SCITEPRESS, 2020, pp. 425–432.

[5] R. F. Paige, N. Matragkas, and L. M. Rose, “Evolving models in model-driven engineering: State-of-the-art and future challenges,” *Journal of Systems and Software*, 2016. [Online]. Available: //www.sciencedirect.com/science/article/pii/S0164121215001909

[6] A. Bucchiarone, J. Cabot, R. F. Paige, and A. Pierantonio, “Grand challenges in model-driven engineering: an analysis of the state of the research,” *Software and Systems Modeling*, vol. 19, no. 1, pp. 5–13, 2020.

[7] L. Rierson, *Developing Safety-Critical Software: A Practical Guide for Aviation Software and DO-178C Compliance*. Taylor & Francis, 2013.

[8] P. Roques and F. Vallée, *UML 2 en action: De l'analyse des besoins à la conception*, ser. Architecte logiciel. Eyrolles, 2011, (in french).

[9] O. M. Group, “The OMG Unified Modeling Language Specification, version 2.4.1,” Object Management Group, UML 2.4 Superstructure Specification available at http://www.omg.org/spec/UML/2.4.1/Superstructure/PDF, Tech. Rep., Aug. 2011.

[10] S. Friedenthal, A. Moore, and R. Steiner, *A Practical Guide to SysML: Systems Modeling Language*. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 2008.

[11] J. Mottu, P. André, M. Coutant, and T. L. Berre, “Shall we test service-based models or generated code?” in *22nd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems Companion, MODELS Companion 2019, Munich, Germany, September 15-20, 2019*, L. B. et al., Ed. IEEE, 2019, pp. 493–502.
ing modular and personalizing development to rely on transformation tools are the tracks we fol-
low. Many tracks remains to be explored, that are challenging. From a theoretical point of view,
the transformation processes remain little explored. One perspective is to design an algebra of
transformations to combine them by assertion conditions. From a practical point of view, we still
need to rationalise the software engineering process as a combination of decisions and experiment
with a typology of transformations. From a tooling point of view, we need a transformation pro-
cess factory to build specific MDD processes based on the generic design transformation process
where one could pick and combine transformations and macro-transformations, a composite level
of transformation patterns [60]. Also it is necessary to be able to reverse engineering the design
frameworks as platforms models and to combine transformations written in different languages
and that are interactive so that the designer influences the design choices.

***Acknowledgements*** This article is an extended version of [63].

References

[1] J. Koskinen, “Software Maintenance Costs,” School of Computing, University of Eastern Finland, Joensuu, Finland, Tech. Rep., Apr. 2015. [Online]. Available: https://wiki.uef.fi/download/attachments/38669960/SMCOSTS.pdf

[2] S. M. H. Dehaghani and N. Hajrahimi, “Which factors affect software projects maintenance cost more?” *Acta Informatica Medica*, vol. 21, no. 1, pp. 63–66, Mar. 2013. [Online]. Available: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3610582/

[3] B. Selic, “Personal reflections on automation, programming culture, and model-based software engineering,” *Automated Software Engineering*, vol. 15, no. 3, pp. 379–391, Dec 2008.

[4] P. André and M. E. A. Tebib, “Refining automation system control with MDE,” in *Proceedings of the 8th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2020, Valletta, Malta, February 25-27, 2020*, S. Hammoudi, L. F. Pires, and B. Selic, Eds. SCITEPRESS, 2020, pp. 425–432.

[5] R. F. Paige, N. Matragkas, and L. M. Rose, “Evolving models in model-driven engineering: State-of-the-art and future challenges,” *Journal of Systems and Software*, 2016. [Online]. Available: //www.sciencedirect.com/science/article/pii/S0164121215001909

[6] A. Bucchiarone, J. Cabot, R. F. Paige, and A. Pierantonio, “Grand challenges in model-driven engineering: an analysis of the state of the research,” *Software and Systems Modeling*, vol. 19, no. 1, pp. 5–13, 2020.

[7] L. Rierson, *Developing Safety-Critical Software: A Practical Guide for Aviation Software and DO-178C Compliance*. Taylor & Francis, 2013.

[8] P. Roques and F. Vallée, *UML 2 en action: De l'analyse des besoins à la conception*, ser. Architecte logiciel. Eyrolles, 2011, (in french).

[9] O. M. Group, “The OMG Unified Modeling Language Specification, version 2.4.1,” Object Management Group, UML 2.4 Superstructure Specification available at http://www.omg.org/spec/UML/2.4.1/Superstructure/PDF, Tech. Rep., Aug. 2011.

[10] S. Friedenthal, A. Moore, and R. Steiner, *A Practical Guide to SysML: Systems Modeling Language*. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 2008.

[11] J. Mottu, P. André, M. Coutant, and T. L. Berre, “Shall we test service-based models or generated code?” in *22nd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems Companion, MODELS Companion 2019, Munich, Germany, September 15-20, 2019*, L. B. et al., Ed. IEEE, 2019, pp. 493–502.
[12] P. H. Feiler and D. P. Gluch, Model-Based Engineering with AADL: An Introduction to the SAE Architecture Analysis & Design Language, 1st ed. Addison-Wesley Professional, 2012.

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

[14] C. Atkinson, Component-based Product Line Engineering with UML, ser. Addison-Wesley object technology series. Addison-Wesley, 2002.

[15] M. Gogolla, J. Bohling, and M. Richters, "Validating uml and ocl models in use by automatic snapshot generation," Software and Systems Modeling, vol. 4, no. 4, pp. 386-398, 2005.

[16] G. Shanks, E. Tansley, and R. Weber, "Using ontology to validate conceptual models," Commun. ACM, vol. 46, no. 10, pp. 85-89, Oct. 2003.

[17] P. André, C. Attiogbé, and J.-M. Mottu, "Combining techniques to verify service-based components," in Proceedings of the International Workshop on domAin specific Model-based AppRoaches to vErificaTion and validaTiOn, AMARETTO@MODELSWARD 2017, Porto, Portugal, Feb. 2017.

[18] T. Weilkiens, Systems Engineering with SysML/UML: Modeling, Analysis, Design, ser. The MK/OMG Press. Elsevier Science, 2008.

[19] P. André and G. Ardourel, "Domain Based Verification for UML Models," in Workshop on Consistency in Model Driven Engineering C@Mode'05, L. Kuzniarz, G. Reggio, J.-L. Sourrouille, and M. Staron, Eds., Nov. 2005, pp. 47-62.

[20] M. O. Hansen, "Exploration of UML State Machine implementations in Java," Master's thesis, University of Oslo, Norway, Feb. 2011.

[21] I. A. Niaz, J. Tanaka, and K. Words, "Mapping uml statecharts to java code," in Proc. IASTED International Conf. on Software Engineering (SE 2004), 2004, pp. 111-116.

[22] R. Pilitowski and A. Derezińska, "Code generation and execution framework for uml 2.0 classes and state machines," in Innovations and Advanced Techniques in Computer and Information Sciences and Engineering, T. Sobh, Ed. Dordrecht: Springer Netherlands, 2007, pp. 421-427.

[23] M. Schader and A. Korthaus, "Modeling Java threads in UML," in The Unified Modeling Language - Technical Aspects and Applications, M. Schader and A. Korthaus, Eds. Physica-Verlag, Heidelberg, 1998, pp. 122-143.

[24] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. USA: Addison-Wesley Longman Publishing Co., Inc., 1995.

[25] A. R. Van Cam Pham, S. Gérard, and S. Li, "Complete code generation from uml state machine," in Proceedings of the 5th International Conference on Model-Driven Engineering and Software Development, vol. 1, 2017, pp. 208-219.

[26] M. H. Orabi, A. H. Orabi, and T. C. Lethbridge, "Concurrent programming using umple." in MODELSWARD, 2018, pp. 575-585.

[27] A. Forward, O. Badreddin, T. C. Lethbridge, and J. Solano, "Model-driven rapid prototyping with umple," Software: Practice and Experience, vol. 42, no. 7, pp. 781-797, 2012.

[28] J. Cabot and M. Gogolla, "Object constraint language (ocl): A definitive guide," in Formal Methods for Model-Driven Engineering, ser. Lecture Notes in Computer Science, M. Bernardo, V. Cortellessa, and A. Pierantonio, Eds. Springer Berlin Heidelberg, 2012, vol. 7320, pp. 58-90.

[29] C. Raistrick, P. Francis, I. Wilkie, J. Wright, and C. B. Carter, Model Driven Architecture with Executable UML. Cambridge University Press, 2004, iSBN 0-521-53771-1.
[12] P. H. Feiler and D. P. Gluch, Model-Based Engineering with AADL: An Introduction to the SAE Architecture Analysis & Design Language, 1st ed. Addison-Wesley Professional, 2012.

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

[14] C. Atkinson, Component-based Product Line Engineering with UML, ser. Addison-Wesley object technology series. Addison-Wesley, 2002.

[15] M. Gogolla, J. Bohling, and M. Richters, "Validating uml and ocl models in use by automatic snapshot generation," Software and Systems Modeling, vol. 4, no. 4, pp. 386-398, 2005.

[16] G. Shanks, E. Tansley, and R. Weber, "Using ontology to validate conceptual models," Commun. ACM, vol. 46, no. 10, pp. 85-89, Oct. 2003.

[17] P. André, C. Attiogbé, and J.-M. Mottu, "Combining techniques to verify service-based components," in Proceedings of the International Workshop on domAin specific Model-based AppRoaches to vErificaTion and validaTiOn, AMARETTO@MODELSWARD 2017, Porto, Portugal, Feb. 2017.

[18] T. Weilkiens, Systems Engineering with SysML/UML: Modeling, Analysis, Design, ser. The MK/OMG Press. Elsevier Science, 2008.

[19] P. André and G. Ardourel, "Domain Based Verification for UML Models," in Workshop on Consistency in Model Driven Engineering C@Mode'05, L. Kuzniarz, G. Reggio, J.-L. Sourrouille, and M. Staron, Eds., Nov. 2005, pp. 47-62.

[20] M. O. Hansen, "Exploration of UML State Machine implementations in Java," Master's thesis, University of Oslo, Norway, Feb. 2011.

[21] I. A. Niaz, J. Tanaka, and K. Words, "Mapping uml statecharts to java code," in Proc. IASTED International Conf. on Software Engineering (SE 2004), 2004, pp. 111-116.

[22] R. Pilitowski and A. Derezińska, "Code generation and execution framework for uml 2.0 classes and state machines," in Innovations and Advanced Techniques in Computer and Information Sciences and Engineering, T. Sobh, Ed. Dordrecht: Springer Netherlands, 2007, pp. 421-427.

[23] M. Schader and A. Korthaus, "Modeling Java threads in UML," in The Unified Modeling Language - Technical Aspects and Applications, M. Schader and A. Korthaus, Eds. Physica-Verlag, Heidelberg, 1998, pp. 122-143.

[24] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. USA: Addison-Wesley Longman Publishing Co., Inc., 1995.

[25] A. R. Van Cam Pham, S. Gérard, and S. Li, "Complete code generation from uml state machine," in Proceedings of the 5th International Conference on Model-Driven Engineering and Software Development, vol. 1, 2017, pp. 208-219.

[26] M. H. Orabi, A. H. Orabi, and T. C. Lethbridge, "Concurrent programming using umple." in MODELSWARD, 2018, pp. 575-585.

[27] A. Forward, O. Badreddin, T. C. Lethbridge, and J. Solano, "Model-driven rapid prototyping with umple," Software: Practice and Experience, vol. 42, no. 7, pp. 781-797, 2012.

[28] J. Cabot and M. Gogolla, "Object constraint language (ocl): A definitive guide," in Formal Methods for Model-Driven Engineering, ser. Lecture Notes in Computer Science, M. Bernardo, V. Cortellessa, and A. Pierantonio, Eds. Springer Berlin Heidelberg, 2012, vol. 7320, pp. 58-90.

[29] C. Raistrick, P. Francis, I. Wilkie, J. Wright, and C. B. Carter, Model Driven Architecture with Executable UML. Cambridge University Press, 2004, iSBN 0-521-53771-1.
[30] S. J. Mellor and M. J. Balcer, _Executable UML: A Foundation for Model-Driven Architecture_, 1st ed., ser. Object Technology Series. Addison-Wesley, 2002, iSBN 0-201-74804-5.

[31] F. Belina, D. Hogrefe, and A. Sarma, SDL with Applications from Protocol Specification, ser. The BCS Practitioner. Prentice Hall, 1991, iSBN 0-13-785890-6.

[32] A. Charfi, A. Schmidt, and A. Spriestersbach, "A hybrid graphical and textual notation and editor for uml actions," in *Proceedings of the 5th European Conference on Model Driven Architecture - Foundations and Applications*, ser. ECMDA-FA '09. Berlin, Heidelberg: Springer-Verlag, 2009, pp. 237–252.

[33] I. Perseil and L. Pautet, "A concrete syntax for uml 2.1 action semantics using +cal," in *Proceedings of the 13th IEEE International Conference on on Engineering of Complex Computer Systems*, ser. ICECCS '08. IEEE Computer Society, 2008, pp. 217–221.

[34] OMG, "Semantics of a Foundational Subset for Executable UML Models (fUML), version 1.4," Object Management Group, Tech. Rep., Dec. 2018. [Online]. Available: https://www.omg.org/spec/FUML/1.4/

[35] I. Kurtev, "State of the art of qvt: A model transformation language standard," in *Applications of Graph Transformations with Industrial Relevance*, A. Schürr, M. Nagl, and A. Zündorf, Eds. Berlin, Heidelberg: Springer Berlin Heidelberg, 2008, pp. 377–393.

[36] D. Di Ruscio, R. Eramo, and A. Pierantonio, "Model transformations," in *Formal Methods for Model-Driven Engineering: 12th International School on Formal Methods for the Design of Computer Communication, and Software Systems, SFM 2012, Bertinoro, Italy, June 18-23, 2012. Advanced Lectures*, M. Bernardo, V. Cortellessa, and A. Pierantonio, Eds. Berlin, Heidelberg: Springer Berlin Heidelberg, 2012, pp. 91–136.

[37] J. Cabot and E. Teniente, "Constraint support in MDA tools: A survey," in *Model Driven Architecture - Foundations and Applications, Second European Conference, ECMDA-FA 2006, Bilbao, Spain, July 10-13, 2006, Proceedings*, ser. Lecture Notes in Computer Science, A. Rensink and J. Warmer, Eds., vol. 4066. Springer, 2006, pp. 256–267.

[38] K. Lano, *Advanced Systems Design with Java, UML and MDA*, 1st ed., ser. Computer Science. Elsevier, 2005, iSBN 0-7506-6496-7.

[39] G. Karsai, G. Taentzer, T. Mens, and P. V. Gorp, "A taxonomy of model transformation," *Electronic Notes in Theoretical Computer Science*, vol. 152, pp. 125–142, 2006, proceedings of the International Workshop on Graph and Model Transformation (GraMoT 2005).

[40] E. Jakumeit, S. Buchwald, D. Wagelaar, L. Dan, Ábel Hegedüs, M. Herrmannsdörfer, T. Horn, E. Kalnina, C. Krause, K. Lano, M. Lepper, A. Rensink, L. Rose, S. Wätzoldt, and S. Mazanek, "A survey and comparison of transformation tools based on the transformation tool contest," *Science of Computer Programming*, vol. 85, pp. 41–99, 2014.

[41] N. Kahani, M. Bagherzadeh, J. R. Cordy, J. Dingel, and D. Varró, "Survey and classification of model transformation tools," *Software and Systems Modeling*, vol. 18, no. 4, pp. 2361–2397, 2019.

[42] P. André, F. Azzi, and O. Cardin, "Heterogeneous communication middleware for digital twin based cyber manufacturing systems," in *Proceedings of SOHOMA*, ser. Studies in Computational Intelligence, T. Borangiu, D. Trentesaux, P. Leitão, A. G. Boggino, and V. J. Botti, Eds., vol. 853. Springer, 2019, pp. 146–157.

[43] J. Pepin, P. André, J. C. Attiogbé, and E. Breton, "Definition and visualization of virtual meta-model extensions with a facet framework," in *6th Int. Conf. MODELSWARD 2018, Revised Selected Papers*, ser. Communications in Computer and Information Science, S. Hammoudi, L. F. Pires, and B. Selic, Eds., vol. 991. Springer, 2018, pp. 106–133.
[30] S. J. Mellor and M. J. Balcer, _Executable UML: A Foundation for Model-Driven Architecture_, 1st ed., ser. Object Technology Series. Addison-Wesley, 2002, iSBN 0-201-74804-5.

[31] F. Belina, D. Hogrefe, and A. Sarma, _SDL with Applications from Protocol Specification_, ser. The BCS Practitioner. Prentice Hall, 1991, iSBN 0-13-785890-6.

[32] A. Charfi, A. Schmidt, and A. Spriestersbach, “A hybrid graphical and textual notation and editor for uml actions,” in _Proceedings of the 5th European Conference on Model Driven Architecture - Foundations and Applications_, ser. ECMDA-FA ’09. Berlin, Heidelberg: Springer-Verlag, 2009, pp. 237–252.

[33] I. Perseil and L. Pautet, “A concrete syntax for uml 2.1 action semantics using +cal,” in _Proceedings of the 13th IEEE International Conference on on Engineering of Complex Computer Systems_, ser. ICECCS ’08. IEEE Computer Society, 2008, pp. 217–221.

[34] OMG, “Semantics of a Foundational Subset for Executable UML Models (fUML), version 1.4,” Object Management Group, Tech. Rep., Dec. 2018. [Online]. Available: https://www.omg.org/spec/FUML/1.4/

[35] I. Kurtev, “State of the art of qvt: A model transformation language standard,” in _Applications of Graph Transformations with Industrial Relevance_, A. Schürr, M. Nagl, and A. Zündorf, Eds. Berlin, Heidelberg: Springer Berlin Heidelberg, 2008, pp. 377–393.

[36] D. Di Ruscio, R. Eramo, and A. Pierantonio, “Model transformations,” in _Formal Methods for Model-Driven Engineering: 12th International School on Formal Methods for the Design of Computer Communication, and Software Systems, SFM 2012_, Bertinoro, Italy, June 18-23, 2012. Advanced Lectures, M. Bernardo, V. Cortellessa, and A. Pierantonio, Eds. Berlin, Heidelberg: Springer Berlin Heidelberg, 2012, pp. 91–136.

[37] J. Cabot and E. Teniente, “Constraint support in MDA tools: A survey,” in _Model Driven Architecture - Foundations and Applications, Second European Conference, ECMDA-FA 2006_, Bilbao, Spain, July 10-13, 2006, _Proceedings_, ser. Lecture Notes in Computer Science, A. Rensink and J. Warmer, Eds., vol. 4066. Springer, 2006, pp. 256–267.

[38] K. Lano, _Advanced Systems Design with Java, UML and MDA_, 1st ed., ser. Computer Science. Elsevier, 2005, iSBN 0-7506-6496-7.

[39] G. Karsai, G. Taentzer, T. Mens, and P. V. Gorp, “A taxonomy of model transformation,” _Electronic Notes in Theoretical Computer Science_, vol. 152, pp. 125–142, 2006, proceedings of the International Workshop on Graph and Model Transformation (GraMoT 2005).

[40] E. Jakumeit, S. Buchwald, D. Wagelaar, L. Dan, Ábel Hegedüs, M. Herrmannsdörfer, T. Horn, E. Kalnina, C. Krause, K. Lano, M. Lepper, A. Rensink, L. Rose, S. Wätzoldt, and S. Mazanek, “A survey and comparison of transformation tools based on the transformation tool contest,” _Science of Computer Programming_, vol. 85, pp. 41–99, 2014.

[41] N. Kahani, M. Bagherzadeh, J. R. Cordy, J. Dingel, and D. Varró, “Survey and classification of model transformation tools,” _Software and Systems Modeling_, vol. 18, no. 4, pp. 2361–2397, 2019.

[42] P. André, F. Azzi, and O. Cardin, “Heterogeneous communication middleware for digital twin based cyber manufacturing systems,” in _Proceedings of SOHOMA_, ser. Studies in Computational Intelligence, T. Borangiu, D. Trentesaux, P. Leitão, A. G. Boggino, and V. J. Botti, Eds., vol. 853. Springer, 2019, pp. 146–157.

[43] J. Pepin, P. André, J. C. Attiogbé, and E. Breton, “Definition and visualization of virtual meta-model extensions with a facet framework,” in _6th Int. Conf. MODELSWARD 2018, Revised Selected Papers_, ser. Communications in Computer and Information Science, S. Hammoudi, L. F. Pires, and B. Selic, Eds., vol. 991. Springer, 2018, pp. 106–133.
[44] N. Anquetil, J. Royer, P. Andre, G. Ardourel, P. Hnetynka, T. Poch, D. Petrascu, and V. Petrascu, "Java-compext: Extracting architectural elements from java source code," in *2009 16th Working Conference on Reverse Engineering*, Oct 2009, pp. 317-318.

[45] S. Rugaber and K. Stirewalt, "Model-driven reverse engineering," *IEEE Software*, vol. 21, no. 4, pp. 45-53, July 2004.

[46] P. André, "Case studies in model-driven reverse engineering," in *Proceedings of the 7th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2019*, Prague, Czech Republic, February 20-22, 2019, pp. 256-263.

[47] C. Raibulet, F. A. Fontana, and M. Zanoni, "Model-driven reverse engineering approaches: A systematic literature review," *IEEE Access*, vol. 5, pp. 14516-14542, 2017.

[48] H. Brunelière, J. Cabot, G. Dupé, and F. Madiot, "Modisco: A model driven reverse engineering framework," *Information and Software Technology*, vol. 56, no. 8, pp. 1012-1032, 2014. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S0950584914000883

[49] F. R. Golra, F. Dagnat, R. Bendraou, and A. Beugnard, "Continuous process compliance using model driven engineering," in *Model and Data Engineering - 7th International Conference, MEDI 2017, Barcelona, Spain, October 4-6, 2017, Proceedings*, ser. Lecture Notes in Computer Science, Y. Ouhammou, M. Ivanovic, A. Abelló, and L. Bellatreche, Eds., vol. 10563. Springer, 2017, pp. 42-56.

[50] J. Aranda, D. E. Damian, and A. Borici, "Transition to model-driven engineering - what is revolutionary, what remains the same?" in *Model Driven Engineering Languages and Systems - 15th International Conference, MODELS 2012, Innsbruck, Austria, September 30-October 5, 2012. Proceedings*, ser. Lecture Notes in Computer Science, R. B. France, J. Kazmeier, R. Breu, and C. Atkinson, Eds., vol. 7590. Springer, 2012, pp. 692-708.

[51] G. Sebastián, J. A. Gallud, and R. Tesoriero, "Code generation using model driven architecture: A systematic mapping study," *Journal of Computer Languages*, vol. 56, p. 100935, 2020.

[52] A. Sindico, M. D. Natale, and A. L. Sangiovanni-Vincentelli, "An industrial system engineering process integrating model driven architecture and model based design," in *Model Driven Engineering Languages and Systems - 15th International Conference, MODELS 2012, Innsbruck, Austria, September 30-October 5, 2012. Proceedings*, ser. Lecture Notes in Computer Science, R. B. France, J. Kazmeier, R. Breu, and C. Atkinson, Eds., vol. 7590. Springer, 2012, pp. 810-826.

[53] F. Ciccozzi, I. Malavolta, and B. Selic, "Execution of uml models: a systematic review of research and practice," *Software & Systems Modeling*, vol. 18, no. 3, pp. 2313-2360, Jun 2019.

[54] E. Planas, J. Cabot, and C. Gómez, "Lightweight and static verification of uml executable models," *Comput. Lang. Syst. Struct.*, vol. 46, no. C, pp. 66-90, Nov. 2016.

[55] M. Tisi, F. Jouault, Z. Saidi, and J. Delatour, "Enabling ocl and fuml integration by z transformation," in *Proceedings of the 12th European Conference on Modelling Foundations and Applications - Volume 9764*. Berlin, Heidelberg: Springer-Verlag, 2016, pp. 156-172.

[56] F. Ciccozzi, "On the automated translational execution of the action language for foundational uml," *Software & Systems Modeling*, vol. 17, no. 4, pp. 1311-1337, Oct 2018.

[57] S. Guermazi, J. Tatibouet, A. Cuccuru, E. Seidewitz, S. Dhouib, and S. Gérard, "Executable modeling with fuml and alf in papyrus: Tooling and experiments," in *Proc. of the 1st International Workshop on Executable Modeling in (MODELS 2015)*, Ottawa, Canada, Sep. 2015, pp. 3-8. [Online]. Available: http://ceur-ws.org/Vol-1560/paper1.pdf

[58] A. Kleppe, J. Warmer, and W. Bast, *MDA Explained: The Model Driven Architecture: Practice and Promise*, 1st ed., ser. Object Technology Series. Addison-Wesley, 2003, iSBN 0-321-19442-X.
[44] N. Anquetil, J. Royer, P. Andre, G. Ardourel, P. Hnetynka, T. Poch, D. Petrascu, and V. Petrascu, "Java-compext: Extracting architectural elements from java source code," in *2009 16th Working Conference on Reverse Engineering*, Oct 2009, pp. 317-318.

[45] S. Rugaber and K. Stirewalt, "Model-driven reverse engineering," *IEEE Software*, vol. 21, no. 4, pp. 45-53, July 2004.

[46] P. André, "Case studies in model-driven reverse engineering," in *Proceedings of the 7th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2019*, Prague, Czech Republic, February 20-22, 2019, pp. 256-263.

[47] C. Raibulet, F. A. Fontana, and M. Zanoni, "Model-driven reverse engineering approaches: A systematic literature review," *IEEE Access*, vol. 5, pp. 14516-14542, 2017.

[48] H. Brunelière, J. Cabot, G. Dupé, and F. Madiot, "Modisco: A model driven reverse engineering framework," *Information and Software Technology*, vol. 56, no. 8, pp. 1012-1032, 2014. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S0950584914000883

[49] F. R. Golra, F. Dagnat, R. Bendraou, and A. Beugnard, "Continuous process compliance using model driven engineering," in *Model and Data Engineering - 7th International Conference, MEDI 2017, Barcelona, Spain, October 4-6, 2017, Proceedings*, ser. Lecture Notes in Computer Science, Y. Ouhammou, M. Ivanovic, A. Abelló, and L. Bellatreche, Eds., vol. 10563. Springer, 2017, pp. 42-56.

[50] J. Aranda, D. E. Damian, and A. Borici, "Transition to model-driven engineering - what is revolutionary, what remains the same?" in *Model Driven Engineering Languages and Systems - 15th International Conference, MODELS 2012, Innsbruck, Austria, September 30-October 5, 2012. Proceedings*, ser. Lecture Notes in Computer Science, R. B. France, J. Kazmeier, R. Breu, and C. Atkinson, Eds., vol. 7590. Springer, 2012, pp. 692-708.

[51] G. Sebastián, J. A. Gallud, and R. Tesoriero, "Code generation using model driven architecture: A systematic mapping study," *Journal of Computer Languages*, vol. 56, p. 100935, 2020.

[52] A. Sindico, M. D. Natale, and A. L. Sangiovanni-Vincentelli, "An industrial system engineering process integrating model driven architecture and model based design," in *Model Driven Engineering Languages and Systems - 15th International Conference, MODELS 2012, Innsbruck, Austria, September 30-October 5, 2012. Proceedings*, ser. Lecture Notes in Computer Science, R. B. France, J. Kazmeier, R. Breu, and C. Atkinson, Eds., vol. 7590. Springer, 2012, pp. 810-826.

[53] F. Ciccozzi, I. Malavolta, and B. Selic, "Execution of uml models: a systematic review of research and practice," *Software & Systems Modeling*, vol. 18, no. 3, pp. 2313-2360, Jun 2019.

[54] E. Planas, J. Cabot, and C. Gómez, "Lightweight and static verification of uml executable models," *Comput. Lang. Syst. Struct.*, vol. 46, no. C, pp. 66-90, Nov. 2016.

[55] M. Tisi, F. Jouault, Z. Saidi, and J. Delatour, "Enabling ocl and fuml integration by z transformation," in *Proceedings of the 12th European Conference on Modelling Foundations and Applications - Volume 9764*. Berlin, Heidelberg: Springer-Verlag, 2016, pp. 156-172.

[56] F. Ciccozzi, "On the automated translational execution of the action language for foundational uml," *Software & Systems Modeling*, vol. 17, no. 4, pp. 1311-1337, Oct 2018.

[57] S. Guermazi, J. Tatibouet, A. Cuccuru, E. Seidewitz, S. Dhouib, and S. Gérard, "Executable modeling with fuml and alf in papyrus: Tooling and experiments," in *Proc. of the 1st International Workshop on Executable Modeling in (MODELS 2015)*, Ottawa, Canada, Sep. 2015, pp. 3-8. [Online]. Available: http://ceur-ws.org/Vol-1560/paper1.pdf

[58] A. Kleppe, J. Warmer, and W. Bast, *MDA Explained: The Model Driven Architecture: Practice and Promise*, 1st ed., ser. Object Technology Series. Addison-Wesley, 2003, iSBN 0-321-19442-X.
[59] F. A. Somogyi and M. Asztalos, "Systematic review of matching techniques used in model-driven methodologies," *Software and Systems Modeling*, vol. 19, no. 3, pp. 693-720, May 2020.

[60] K. Lano, S. Kolahdouz-Rahimi, S. Yassipour-Tehrani, and M. Sharbaf, "A survey of model transformation design patterns in practice," *Journal of Systems and Software*, vol. 140, pp. 48–73, 2018. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S0164121218300438

[61] A. Van Deursen, E. Visser, and J. Warmer, "Model-driven software evolution: A research agenda," in *In Proc. Int. Ws on Model-Driven Software Evolution held with the ECSMR'07*, 2007.

[62] B. Vogel-Heuser, D. Schütz, T. Frank, and C. Legat, "Model-driven engineering of manufacturing automation software projects – a sysml-based approach," *Mechatronics*, vol. 24, no. 7, pp. 883–897, 2014, 1. Model-Based Mechatronic System Design 2. Model Based Engineering.

[63] P. André and M. E. A. Tebib, "More automation in model driven development," in *Model and Data Engineering - 10th International Conference, MEDI 2021, Tallinn, Estonia, June 21-23, 2021, Proceedings*, ser. Lecture Notes in Computer Science, J. C. Attiogbé and S. B. Yahia, Eds., vol. 12732. Springer, 2021, pp. 75-83. [Online]. Available: https://doi.org/10.1007/978-3-030-78428-7_7
[59] F. A. Somogyi and M. Asztalos, "Systematic review of matching techniques used in model-driven methodologies," *Software and Systems Modeling*, vol. 19, no. 3, pp. 693-720, May 2020.

[60] K. Lano, S. Kolahdouz-Rahimi, S. Yassipour-Tehrani, and M. Sharbaf, "A survey of model transformation design patterns in practice," *Journal of Systems and Software*, vol. 140, pp. 48–73, 2018. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S0164121218300438

[61] A. Van Deursen, E. Visser, and J. Warmer, "Model-driven software evolution: A research agenda," in *In Proc. Int. Ws on Model-Driven Software Evolution held with the ECSMR'07*, 2007.

[62] B. Vogel-Heuser, D. Schütz, T. Frank, and C. Legat, "Model-driven engineering of manufacturing automation software projects – a sysml-based approach," *Mechatronics*, vol. 24, no. 7, pp. 883–897, 2014, 1. Model-Based Mechatronic System Design 2. Model Based Engineering.

[63] P. André and M. E. A. Tebib, "More automation in model driven development," in *Model and Data Engineering - 10th International Conference, MEDI 2021, Tallinn, Estonia, June 21-23, 2021, Proceedings*, ser. Lecture Notes in Computer Science, J. C. Attiogbé and S. B. Yahia, Eds., vol. 12732. Springer, 2021, pp. 75–83. [Online]. Available: https://doi.org/10.1007/978-3-030-78428-7_7
# A Appendix A

(PA) to be completed : ev3dev + python server
# A Appendix A

(PA) to be completed : ev3dev + python server
<figure><img src="image_29.png" /><figcaption>**Figure 30.** Applying AgileJ RE process on *Motor* package of Lejos Library</figcaption></figure>
<figure><img src="image_29.png" /><figcaption>**Figure 30.** Applying AgileJ RE process on *Motor* package of Lejos Library</figcaption></figure>
# Contents

<table><tr><td>Assistance in Model Driven Development<br/><i>Pascal André and Mohammed El Amin Tebib</i></td><td>1</td></tr><tr><td>1 Introduction</td><td>1</td></tr><tr><td>2 Background</td><td>2</td></tr><tr><td>2.1 Software development</td><td>3</td></tr><tr><td>2.2 Case Study</td><td>3</td></tr><tr><td>2.3 From Models to Implementation</td><td>5</td></tr><tr><td>3 Forward Engineering Experimentations</td><td>6</td></tr><tr><td>4 Code generation, animation</td><td>8</td></tr><tr><td>4.1 UML Case Tools</td><td>8</td></tr><tr><td>4.2 Executable UML</td><td>11</td></tr><tr><td>5 Toward a design transformation process</td><td>12</td></tr><tr><td>5.1 Principles of design as a transformation</td><td>12</td></tr><tr><td>5.2 Transformation process</td><td>12</td></tr><tr><td>5.3 Implementation of the design transformation process</td><td>13</td></tr><tr><td>6 Macro Transformations Experimentations</td><td>14</td></tr><tr><td>6.1 Deployment Transformation (T1)</td><td>14</td></tr><tr><td>6.2 MOM Transformation (T2)</td><td>15</td></tr><tr><td>6.3 OOP Transformation (T3)</td><td>16</td></tr><tr><td>6.4 Source Code Transformation (T4)</td><td>19</td></tr><tr><td>7 Reverse engineering PDMs</td><td>28</td></tr><tr><td>7.1 Model Driven Reverse Engineering (MDRE)</td><td>28</td></tr><tr><td>7.2 Example: Reverse engineering Lejos libraries</td><td>29</td></tr><tr><td>8 Discussion</td><td>30</td></tr><tr><td>9 Conclusion</td><td>34</td></tr><tr><td>A Appendix A</td><td>40</td></tr></table>
# Contents

<table><tr><td>Assistance in Model Driven Development<br/><i>Pascal André and Mohammed El Amin Tebib</i></td><td>1</td></tr><tr><td>1 Introduction</td><td>1</td></tr><tr><td>2 Background</td><td>2</td></tr><tr><td>2.1 Software development</td><td>3</td></tr><tr><td>2.2 Case Study</td><td>3</td></tr><tr><td>2.3 From Models to Implementation</td><td>5</td></tr><tr><td>3 Forward Engineering Experimentations</td><td>6</td></tr><tr><td>4 Code generation, animation</td><td>8</td></tr><tr><td>4.1 UML Case Tools</td><td>8</td></tr><tr><td>4.2 Executable UML</td><td>11</td></tr><tr><td>5 Toward a design transformation process</td><td>12</td></tr><tr><td>5.1 Principles of design as a transformation</td><td>12</td></tr><tr><td>5.2 Transformation process</td><td>12</td></tr><tr><td>5.3 Implementation of the design transformation process</td><td>13</td></tr><tr><td>6 Macro Transformations Experimentations</td><td>14</td></tr><tr><td>6.1 Deployment Transformation (T1)</td><td>14</td></tr><tr><td>6.2 MOM Transformation (T2)</td><td>15</td></tr><tr><td>6.3 OOP Transformation (T3)</td><td>16</td></tr><tr><td>6.4 Source Code Transformation (T4)</td><td>19</td></tr><tr><td>7 Reverse engineering PDMs</td><td>28</td></tr><tr><td>7.1 Model Driven Reverse Engineering (MDRE)</td><td>28</td></tr><tr><td>7.2 Example: Reverse engineering Lejos libraries</td><td>29</td></tr><tr><td>8 Discussion</td><td>30</td></tr><tr><td>9 Conclusion</td><td>34</td></tr><tr><td>A Appendix A</td><td>40</td></tr></table>