This paper introduces openArchitectureWare 4.1.x based on a common, predefined example. The example has been defined as part of the MDD TIF 07. The idea of this workshop is to showcase various MDD tools and compare their approaches to solving the same example problem. The paper describes using the openArchitectureWare tool chain for defining meta models, code generator, model transformations as well as for building graphical and textual editors.
The COMPARAND pattern provides a means to interpret different objects as being the same for certain contexts. It does so by introducing an instance variable in each class of interest – the comparand – and using it for comparison. Establishing the sameness of different objects is needed when more than one reference refers to conceptually the same object. In distributed systems, the COMPARAND pattern provides for efficient comparison of (possibly) remote objects.
For example, polymorphism can in principle be used instead of switch statements [Fowler99]. This can significantly reduce the complexity of the using code because it encapsulates the selection of behavior. However, this comes at a price: for every different case a type needs to be defined. The effort and complexity associated with the creation of types makes this approach inapplicable for sufficiently small scopes: obviously, most if statements are not candidates for replacement with polymorphism.