Modern software engineering bases heavily on models that represent an abstraction of a system under development. Object orientation has established as a standard modeling technique for the specification of software systems. Abstraction and refinement relations within the development process require the transformation of different models. Today there exists no language that is capable to unambiguously define transformations of object oriented models. This report presents the Bidirectional Object oriented Transformation Language (BOTL). BOTL is based upon a precise, formal foundation and a comprehensible, graphical notation. Further techniques are presented that allow to verify whether a BOTL specification is applicable and whether it will produce models that are conform to a given metamodel. Another property that is introduced is the bijectivity of BOTL specifications. A running example is used throughout the report to illustrate the BOTL concepts. Further an extension for inheritance and a mapping to the UML are presented as detailed applications of the BOTL. BOTL is intended to be supported by a tool that uses the presented verification techniques and generates code for the transformation of object oriented models.
«