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