Coupled software transformations

© CSXW 2011

There is an abundance of scenarios in software development which involve software transformations that affect multiple artifacts essentially in a coupled manner. That is, if one of the artifacts of the scenario is changed, then one or more of the remaining artifacts have to be co-changed. Here are some scenarios that involve such changes and co-changes:

  • XML data binding
  • Object-relational mapping
  • Updateable views in databases
  • Data integration and data exchange
  • Multi-view specification and consistency
  • Instance mapping in reply to schema evolution
  • Program transformation in reply to schema evolution
  • Model transformation in reply to metamodel evolution

In the scope of coupled software transformations, arbitrary software artifacts can be considered: programs, specifications, data models, data, metamodels, object graphs, transformations (!), and others. Further, arbitrary relationships between the artifacts can be considered: conformance (e.g., between a model and a metamodel), consistency (e.g., between two models at the same level or different levels of abstraction), bidrectional transformations (BX; e.g., between primary database table and an updatable view), and others. Coupled software transformations define how changes of given artifacts are completed into co-changes of the remaining artifacts so that the intended relationships between all the artifacts are maintained; see also [1] for an early definition along these lines.

A more detailed discussion of transformation scenarios is available.

A discussion of the related notion of bidrectional transformations (BX) is avaiable as well.