Engineering Bidirectional Transformations

Chapter
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9715)

Abstract

Bidirectional transformations, like software, need to be carefully engineered in order to provide guarantees about their correctness, completeness, acceptability and usability. This paper summarises a collection of lectures pertaining to engineering bidirectional transformations using Model-Driven Engineering techniques and technologies. It focuses on stages of a typical engineering lifecycle, starting with requirements and progressing to implementation and verification. It summarises Model-Driven Engineering approaches to capturing requirements, architectures and designs for bidirectional transformations, and suggests an approach for verification as well. It concludes by describing some challenges for future research into engineering bidirectional transformations.

Notes

Acknowledgements

Parts of this work were supported by the European Commission’s 7th Framework Programme, through grant #611125 (MONDO). The author also acknowledges the support of Innovate UK and the Aerospace Technology via the SECT-AIR grant, and the EPSRC, for their support for the Summer School in Bidirectional Transformations. The author thanks Dimitris Kolovos, Chris Poskitt, Arend Rensink, Mike Dodds, Esther Guerra and Juan de Lara for many useful discussions and collaboration on the topics presented in this paper, and to the reviewers of this manuscript for the helpful suggestions and advice.

References

  1. 1.
    Van Gorp, P., Engels, G. (eds.): ICMT 2016. LNCS, vol. 9765. Springer, Cham (2016).  https://doi.org/10.1007/978-3-319-42064-6Google Scholar
  2. 2.
    Jouault, F., Allilaire, F., Bézivin, J., Kurtev, I.: ATL: a model transformation tool. Sci. Comput. Program. 72(1–2), 31–39 (2008)MathSciNetCrossRefMATHGoogle Scholar
  3. 3.
    Kolovos, D.S., Paige, R.F., Polack, F.A.C.: The epsilon transformation language. In: Vallecillo, A., Gray, J., Pierantonio, A. (eds.) ICMT 2008. LNCS, vol. 5063, pp. 46–60. Springer, Heidelberg (2008).  https://doi.org/10.1007/978-3-540-69927-9_4CrossRefGoogle Scholar
  4. 4.
    Kolovos, D.S., Paige, R.F., Polack, F.A.C., Rose, L.M.: Update transformations in the small with the epsilon wizard language. J. Object Technol. 6(9), 53–69 (2007)CrossRefGoogle Scholar
  5. 5.
    Diskin, Z., Xiong, Y., Czarnecki, K.: From state- to delta-based bidirectional model transformations. In: Tratt, L., Gogolla, M. (eds.) ICMT 2010. LNCS, vol. 6142, pp. 61–76. Springer, Heidelberg (2010).  https://doi.org/10.1007/978-3-642-13688-7_5CrossRefGoogle Scholar
  6. 6.
    Anjorin, A.: An introduction to triple graph grammars as an implementation of the delta-lens framework. In: Gibbons, J., Stevens, P. (eds.) Bidirectional Transformations. LNCS, vol. 9715, pp. 29–72. Springer, Cham (2018)CrossRefGoogle Scholar
  7. 7.
    OMG. MOF 2.0 QVT V1.3. Object Management Group (2016)Google Scholar
  8. 8.
    Stevens, P.: A simple game-theoretic approach to checkonly QVT relations. Softw. Syst. Model. 12(1), 175–199 (2013)MathSciNetCrossRefGoogle Scholar
  9. 9.
    Hoisl, B., Hu, Z., Hidaka, S.: Towards bidirectional higher-order transformation for model-driven co-evolution. In: Hammoudi, S., Pires, L.F., Filipe, J., das Neves, R.C. (eds.) MODELSWARD 2014. CCIS, vol. 506, pp. 153–167. Springer, Cham (2015).  https://doi.org/10.1007/978-3-319-25156-1_10CrossRefGoogle Scholar
  10. 10.
    Sasano, I., Hu, Z., Hidaka, S., Inaba, K., Kato, H., Nakano, K.: Toward bidirectionalization of ATL with GRoundTram. In: Cabot, J., Visser, E. (eds.) ICMT 2011. LNCS, vol. 6707, pp. 138–151. Springer, Heidelberg (2011).  https://doi.org/10.1007/978-3-642-21732-6_10CrossRefGoogle Scholar
  11. 11.
    Hidaka, S., Tisi, M., Cabot, J., Zhenjiang, H.: Feature-based classification of bidirectional transformation approaches. Softw. Syst. Model. 15(3), 907–928 (2016)CrossRefGoogle Scholar
  12. 12.
    Tehrani, S.Y., Zschaler, S., Lano, K.: Requirements engineering in model-transformation development: an interview-based study. In: Van Gorp, P., Engels, G. (eds.) ICMT 2016. LNCS, vol. 9765, pp. 123–137. Springer, Cham (2016).  https://doi.org/10.1007/978-3-319-42064-6_9CrossRefGoogle Scholar
  13. 13.
    Nalchigar, S., Salay, R., Chechik, M.: Towards a catalog of non-functional requirements in model transformation languages. In: Proceedings of the Second Workshop on the Analysis of Model Transformations (AMT 2013), Miami, FL, USA, 29 September 2013Google Scholar
  14. 14.
    IEEE 29148–2011. Systems and software engineering lifecycle processes requirements engineering (2011)Google Scholar
  15. 15.
    Pescador, A., de Lara, J.: DSL-maps: from requirements to design of domain-specific languages. In: Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, ASE 2016, Singapore, 3–7 September 2016, pp. 438–443 (2016)Google Scholar
  16. 16.
    Guerra, E., de Lara, J., Kolovos, D.S., Paige, R.F., dos Santos, O.M.: Engineering model transformations with transML. Softw. Syst. Model. 12(3), 555–577 (2013)CrossRefGoogle Scholar
  17. 17.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston (1995)MATHGoogle Scholar
  18. 18.
    Lano, K., Kolahdouz-Rahimi, S.: Model transformation design patterns. IEEE Trans. Softw. Eng. 40(12), 1224–1259 (2014)CrossRefGoogle Scholar
  19. 19.
    Braun, P., Marschall, F.: Transforming object oriented models with BOTL. In: GT-VMT 2002. ENTCS, vol. 4066, pp. 103–117. Elsevier (2003)Google Scholar
  20. 20.
    Amelunxen, C., Königs, A., Rötschke, T., Schürr, A.: MOFLON: a standard-compliant metamodeling framework with graph transformations. In: Rensink, A., Warmer, J. (eds.) ECMDA-FA 2006. LNCS, vol. 4066, pp. 361–375. Springer, Heidelberg (2006).  https://doi.org/10.1007/11787044_27CrossRefGoogle Scholar
  21. 21.
    Paige, R.F., Kolovos, D.S., Rose, L.M., Drivalos, N., Polack, F.A.C.: The design of a conceptual framework and technical infrastructure for model management language engineering. In: ICECCS 2009, pp. 162–171. IEEE Computer Society (2009)Google Scholar
  22. 22.
    Kolovos, D.S., Paige, R.F., Polack, F.A.C.: On the evolution of OCL for capturing structural constraints in modelling languages. In: Abrial, J.-R., Glässer, U. (eds.) Rigorous Methods for Software Construction and Analysis. LNCS, vol. 5115, pp. 204–218. Springer, Heidelberg (2009).  https://doi.org/10.1007/978-3-642-11447-2_13CrossRefGoogle Scholar
  23. 23.
    Habel, A., Pennemann, K.-H.: Correctness of high-level transformation systems relative to nested conditions. Math. Struct. Comput. Sci. 19(2), 245–296 (2009)MathSciNetCrossRefMATHGoogle Scholar
  24. 24.
    Habel, A., Pennemann, K.-H., Rensink, A.: Weakest preconditions for high-level programs. In: Corradini, A., Ehrig, H., Montanari, U., Ribeiro, L., Rozenberg, G. (eds.) ICGT 2006. LNCS, vol. 4178, pp. 445–460. Springer, Heidelberg (2006).  https://doi.org/10.1007/11841883_31CrossRefGoogle Scholar
  25. 25.
    Poskitt, C.M.: Verification of graph programs. Ph.D. thesis, The University of York (2013)Google Scholar
  26. 26.
    Poskitt, C.M., Plump, D.: Hoare-style verification of graph programs. Fundamenta Informaticae 118(1–2), 135–175 (2012)MathSciNetMATHGoogle Scholar
  27. 27.
    Hermann, F., Ehrig, H., Orejas, F., Czarnecki, K., Diskin, Z., Xiong, Y., Gottmann, S., Engel, T.: Model synchronization based on triple graph grammars: correctness, completeness and invertibility. Softw. Syst. Model. 14(1), 241–269 (2015)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  1. 1.Department of Computer ScienceUniversity of YorkYorkUK

Personalised recommendations