Handcrafting a Triple Graph Transformation System to Realize Round-trip Engineering Between UML Class Models and Java Source Code

Thomas Buchmann, Sandra Greiner

Abstract

Model transformations are a mandatory requirement for model-driven development, a software engineering discipline, which has become more and more popular during the last decade. Over the years, the concept of unidirectional model transformations and corresponding tool support reached maturity since these kind of transformations are widely used in model-driven engineering, mainly for forward engineering and code generation. In incremental and iterative software engineering processes, forward engineering may be too restrictive since it resembles waterfall-like processes. Thus, bidirectional transformations are required, which aim to provide support for (incrementally) transforming one or more source model to one or more target model and vice versa from only one transformation description. However, they seem to be rarely used in modeldriven software development as adequate tool support is missing. On the other hand, programming languages nowadays provide support for higher-level features like closures or lambda expressions which allow to describe transformation patterns in a declarative way. In this paper, we present an approach for round-trip engineering between UML class models and Java source code, which is realized with a triple graph transformation system written in the Xtend programming language.

References

  1. Angyal, L., Lengyel, L., and Charaf, H. (2008). A synchronizing technique for syntactic model-code round-trip engineering. In Proceedings of the 15th International Conference on the Engineering of Computer Based Systems (ECBS 2008), pages 463-472.
  2. Antkiewicz, M. and Czarnecki, K. (2006). Frameworkspecific modeling languages with round-trip engineering. In Proceedings of the 9th International Conference on Model Driven Engineering Languages and Systems (MoDELS 2006), LNCS 4199, pages 692- 706, Genova, Italy.
  3. Bork, M., Geiger, L., Schneider, C., and Zündorf, A. (2008). Towards roundtrip engineering - a template-based reverse engineering approach. In Schieferdecker, I. and Hartman, A., editors, ECMDA-FA, volume 5095 of Lecture Notes in Computer Science, pages 33-47. Springer.
  4. Bruneliere, H., Cabot, J., Jouault, F., and Madiot, F. (2010). Modisco: a generic and extensible framework for model driven reverse engineering. In Proceedings of the IEEE/ACM international conference on Automated software engineering, ASE 7810, pages 173- 174, New York, NY, USA. ACM.
  5. Buchmann, T., Dotor, A., and Westfechtel, B. (2008). Triple graph grammars or triple graph transformation systems? In Chaudron, M. R. V., editor, Models in Software Engineering, Workshops and Symposia at MODELS 2008, Toulouse, France, September 28 - October 3, 2008. Reports and Revised Selected Papers, volume 5421 of Lecture Notes in Computer Science, pages 138-150. Springer.
  6. Buchmann, T. and Westfechtel, B. (2013). Towards incremental round-trip engineering using model transformations. In Demirors, O. and Turetken, O., editors, Proceedings of the 39th Euromicro Conference on Software Engineering and Advanced Applications (SEAA 2013), pages 130-133. IEEE Conference Publishing Service.
  7. Czarnecki, K. and Helsen, S. (2006). Feature-based survey of model transformation approaches. IBM Systems Journal, 45(3):621-645.
  8. Ehrig, H., Engels, G., Kreowski, H.-J., and Rozenberg, G., editors (1999). Handbook on Graph Grammars and Computing by Graph Transformation, volume 2: Applications, Languages, and Tools. Singapore.
  9. Greiner, S., Buchmann, T., and Westfechtel, B. (2016). Bidirectional Transformations with QVT-R: A Case Study in Round-trip Engineering UML Class Models and Java Source Code. In Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development (MODELSWARD 2016). accepted for publication.
  10. Hettel, T., Lawley, M., and Raymond, K. (2009). Towards model round-trip engineering: An abductive approach. In Proceedings of the 2nd International Conference on Theory and Practice of Model Transformations (ICMT 2009), LNCS 5563, pages 100- 115, Zurich, Switzerland.
  11. Jouault, F., Allilaire, F., Bézivin, J., and Kurtev, I. (2008). Atl: A model transformation tool. Science of Computer Programming, 72:31 - 39. Special Issue on Second issue of experimental software and toolkits (EST).
  12. Mellor, S. J., Kendall, S., Uhl, A., and Weise, D. (2004). MDA Distilled. Addison Wesley Longman Publishing Co., Inc., Redwood City, CA, USA.
  13. OMG (2015a). Meta Object Facility (MOF) 2.0 Query/View/Transformation Specification. Needham, MA, formal/2015-02-01 edition.
  14. OMG (2015b). Unified Modeling Language (UML). Object Management Group, Needham, MA, formal/15-03-01 edition.
  15. Rozenberg, G., editor (1997). Handbook on Graph Grammars and Computing by Graph Transformations, volume 1: Foundations. Singapore.
  16. Schürr, A. (1994). Specification of Graph Translators with Triple Graph Grammars. In Proceedings of the 20th International Workshop on Graph-Theoretic Concepts in Computer Science (WG 1994), volume 903 of LNCS 903, pages 151-163, Herrsching, Germany.
  17. Steinberg, D., Budinsky, F., Paternostro, M., and Merks, E. (2009). EMF Eclipse Modeling Framework. The Eclipse Series. Boston, MA, 2nd edition.
  18. Stevens, P. (2007). Bidirectional Model Transformations in QVT: Semantic Issues and Open Questions. In Proceedings of the 10th International Conference on Model Driven Engineering Languages and Systems (MoDELS 2007), LNCS 4735, pages 1-15, Nashville, USA.
  19. Westfechtel, B. (2016). A Case Study for a Bidirectional Transformation Between Heterogeneous Metamodels in QVT Relations. In Maciaszek, L. A. and Filipe, J., editors, Evaluation of Novel Approaches to Software Engineering, volume 599 of Communications in Computer and Information Science (CCIS), chapter 8, pages 141-161. Springer International Publishing. Revised Selected Papers from ENASE 2015.
Download


Paper Citation


in Harvard Style

Buchmann T. and Greiner S. (2016). Handcrafting a Triple Graph Transformation System to Realize Round-trip Engineering Between UML Class Models and Java Source Code . In Proceedings of the 11th International Joint Conference on Software Technologies - Volume 2: ICSOFT-PT, (ICSOFT 2016) ISBN 978-989-758-194-6, pages 27-38. DOI: 10.5220/0005957100270038


in Bibtex Style

@conference{icsoft-pt16,
author={Thomas Buchmann and Sandra Greiner},
title={Handcrafting a Triple Graph Transformation System to Realize Round-trip Engineering Between UML Class Models and Java Source Code},
booktitle={Proceedings of the 11th International Joint Conference on Software Technologies - Volume 2: ICSOFT-PT, (ICSOFT 2016)},
year={2016},
pages={27-38},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005957100270038},
isbn={978-989-758-194-6},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 11th International Joint Conference on Software Technologies - Volume 2: ICSOFT-PT, (ICSOFT 2016)
TI - Handcrafting a Triple Graph Transformation System to Realize Round-trip Engineering Between UML Class Models and Java Source Code
SN - 978-989-758-194-6
AU - Buchmann T.
AU - Greiner S.
PY - 2016
SP - 27
EP - 38
DO - 10.5220/0005957100270038