Page 218 -
P. 218

OO-METHOD     203
                    the field, and the lack of standards), the situation has changed drastically, especially with regard
                    to the absence of standards.
                      Recent progress on widely accepted and well-known standards such as UML (UML, 2007),
                    MDA (MDA, 2007; Miller and Mukerji, 2003), XMI (XMI, 2006), MOF (MOF, 2007), J2EE
                    (J2EE, 2007), .NET (Microsoft .NET, 2007), among others, are really providing an opportunity
                    to reconsider the goal of automating software development processes. The MDA proposal is es-
                    pecially relevant in this context because it attempts to provide software processes where model
                    transformation is a natural consequence of the view of using models at different levels of abstrac-
                    tion: the Computer-Independent Model (CIM) at the highest level; the Platform-Independent
                    Model (PIM) at the subsequent level of abstraction; and moving progressively to the solution
                    space through the Platform-Specific Model (PSM), and to the final code. The corresponding
                    transformations between these models provide a kind of software process where all of the previ-
                    ous ideas fit together perfectly.
                      Modern, advanced industrial tools such as OptimalJ (OptimalJ, 2007) and ArcStyler (Arcstyler,
                    2006) allow researchers to experiment with these approaches in practice, with results that are quite
                    promising. However, these results are only partial because a true software process that is based on
                    a sound model transformation process has yet to be developed. Even though partial model-driven,
                    code-generation–based approaches provide code-generation capacities from conceptual models to
                    a major or minor degree, programming continues to be the primary task to be accomplished. As
                    yet, no true conceptual model compiler is available on the market. By a “true” conceptual model
                    compiler, we mean a logical programming machine that properly transforms a conceptual schema
                    into its corresponding software product counterpart by defining the required relationships between
                    conceptual constructs and their associated software representations.
                      The OO-Method presented in this work accomplishes precisely this goal. The OO-Method and
                    its supporting set of tools (OLIVANOVA Model Execution) make the metaphor of a Conceptual
                    Model Compiler a reality. It introduces a fixed set of conceptual constructs and a set of rules to
                    transform these conceptual patterns into their corresponding software counterparts. The imple-
                    mentation of all of these mappings makes the construction of a true model compiler possible.
                      To develop these ideas further, in this chapter we present the foundation of MDA and discuss
                    its weak points. Next, we introduce the OO-Method (Pastor et al., 2001). This is a Conceptual
                    Schema-Centric Development approach, which is based on the Formal Specification Language
                    OASIS (Pastor, Hayes, and Bear, 1992), which sets the foundation for delivering on the promises
                    of MDA. Then, we present a strategy to define and eventually automate the transformation of
                    conceptual models into software systems. Before the concluding, we also introduce OLIVANOVA
                    Model Execution (Pastor, Molina, and Iborra, 2004) as an implementation of the OO-Method and,
                    therefore, of MDA.

                    MDA

                    MDA, which is promoted by the object management group (OMG), aims at separating the logic
                    of applications from the software platform on which this logic is to be implemented. This separa-
                    tion mitigates the impact of evolving technologies on the development of applications because it
                    enables a specification to be reified in different software platforms. This has the additional benefit
                    of shifting the intellectual property of a software system from the source code of its implementa-
                    tion to the conceptual model of its specification.
                      In the process of developing applications, MDA turns models into “first-class citizens.” These
                    models become the most valuable asset for developers because, by using them as input to a series
   213   214   215   216   217   218   219   220   221   222   223