Page 229 -
P. 229

214     PASTOR,  MOLINA,  AND  IBORRA
                    model and whose co-domain is the application model. Mappings can include conditions that must
                    hold for the mapping to be applied (e.g., some mappings will be applied only on elements of the
                    conceptual model on which a certain condition is verified). Finally, mappings can be related to
                    one another to define

                      •  the order in which mappings are to be applied, and
                      •  a dependency hierarchy between mappings.
                      Text transformations define how to obtain a code fragment from an element in the application
                    model and the values of its properties. A text transformation can be seen as a function whose do-
                    main is an element of the application model (or a subset of its properties) and whose co-domain
                    is a text.

                    OLIVANOVA MODEL EXECUTION, AN OO-METHOD IMPLEMENTATION

                    In Miller and Mukerji, (2003), the authors state that “To be adopted, a submitted technology must
                    include a PIM and at least one PSM; in addition, there must be an implementation or a commit-
                    ment to provide an implementation within a year.”
                      France and Rumpe (2007, page 4) state that MDD approaches have to overcome three main
                    challenges to succeed: to provide high-level, precise modeling abstractions; to deal properly with
                    different viewpoints when modeling systems; and to manage models (transformations, traceability,
                    consistency, evolution . . .). Tool support is currently a need to put these ideas successfully in
                    practice. The OO-Method, aligned with the MDA perspective, has commercial implementations
                    developed by CARE Technologies (Care Technologies, 2007) that work hard in this direction
                    under the brand OLIVANOVA Model Execution. It includes, among others, the OLIVANOVA
                    Modeler modeling tool (CARE Modeler) and a set of model compilers branded OLIVANOVA
                    Transformation Engines (CARE Model Compiler). Therefore, OLIVANOVA Model Execution
                    provides a Conceptual Schema-Centric Development Approach that is supported by tools aligned
                    with the MDA initiative (Molina, 2006). Of course, this is not the “only” working implementa-
                    tion of MDA, but it provides an adequate workbench where the ideas previously introduced can
                    be checked in practice.
                      The main components of OLIVANOVA Model Execution are illustrated in Figure 11.5:
                      Starting with the set of functional requirements for an application to be developed, the analyst
                    will create an OO-Method conceptual model of the desired system in OLIVANOVA Modeler.
                    In MDA terms, the conceptual model would be the PIM of the system since any OO-Method
                    conceptual model is truly platform-independent because its level of abstraction lets the analyst
                    define all the functional aspects of the system regardless of the platform (or platforms) on which
                    this system is to be implemented. Nevertheless, it is important to note that even if the conceptual
                    model is platform-independent, it is detailed and precise enough to enable an automated set of
                    transformations to compile it into a full application.
                      Therefore, this conceptual model, or PIM, is used as input to a set of OLIVANOVA Transfor-
                    mation Engines or Model Compilers (the choice of which depends on the target platform) which
                    then operate two transformations:
                        1.  First, the conceptual model is transformed into an application model that addresses the
                           specific details of the target platform on which the modeled system is to be implemented.
                           In the MDA jargon, this would correspond to a PIM to PSM transformation.
   224   225   226   227   228   229   230   231   232   233   234