Bidirectional transformations: two's company?
Perdita Stevens ( University of Edinburgh )
A bidirectional transformation (bx) is a means of maintaining consistency between two (or more) data sources. In model driven development, the data sources are models: that is, abstract, usually graphical, representations of some aspects of a system. My MODELS 2007 paper "Bidirectional Model Transformations in QVT: Semantic Issues and Open Questions" has been selected for the 10-year Most Influential Paper award, and in the first half of this seminar I will discuss that paper, where it came from and what happened next. In particular I will discuss the simplest framework in which we can consider bx, and the key properties we may want them to have; I'll also briefly discuss the Object Management Group's QVT standardisation and the lessons we can learn from it. The second half of the seminar will be based on my MODELS 2017 paper, "Bidirectional Transformations in the Large". Here I address the fact that the "(or more)" in the opening sentence of this abstract has not yet been taken seriously enough. I'll discuss the various senses in which binary bx are, or are not, expressive enough to encode bx that maintain consistency between more than two models, and I'll describe some early work on networks of binary bx. Along the way, I'll try to convince you that this matters: that these issues are on the critical path for a necessary revolution in the software development process.