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.