Engineering Bidirectional Transformations
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.
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.
- 7.OMG. MOF 2.0 QVT V1.3. Object Management Group (2016)Google Scholar
- 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
- 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.IEEE 29148–2011. Systems and software engineering lifecycle processes requirements engineering (2011)Google Scholar
- 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
- 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
- 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.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
- 25.Poskitt, C.M.: Verification of graph programs. Ph.D. thesis, The University of York (2013)Google Scholar