The Bidirectional Mapping Problem

Mappings between models and languages are essential to support model driven approaches to software development. Those mappings need to be supported by tools. There are different kinds of mapping appropriate for different stages in the development process. This paper focuses on bidirectional mappings between models used to capture software requirements and models used to capture software designs. The properties of such mappings are illustrated using a mapping between models used in the development of web-based, business systems. This motivates and helps identify a set of benchmarks against which approaches to the definition and tooling of such mappings can be judged. The paper concludes with pointers to one approach at addressing the bidirectional mapping problem.