Page 158 -
P. 158
5.5 Model-driven engineering 141
J2EE Specific Java Code
J2EE Translator Java Program
Model Generator
Platform
Independent
Model
Figure 5.20 Multiple .NET Specific C# Code
platform-specific .Net Translator Model Generator C# Program
models
process may involve linking concepts in different CIMs. For example, the concept of a
role in a security CIM may be mapped onto the concept of a staff member in a hospital
CIM. Mellor and Balcer (2002) give the name ‘bridges’ to the information that sup-
ports mapping from one CIM to another.
The translation of PIMs to PSMs is more mature and several commercial tools are
available that provide translators from PIMs to common platforms such as Java and
J2EE. These rely on an extensive library of platform-specific rules and patterns to
convert the PIM to the PSM. There may be several PSMs for each PIM in the system.
If a software system is intended to run on different platforms (e.g., J2EE and .NET),
then it is only necessary to maintain the PIM. The PSMs for each platform are auto-
matically generated. This is illustrated in Figure 5.20.
Although MDA-support tools include platform-specific translators, it is often
the case that these will only offer partial support for the translation from PIMs to
PSMs. In the vast majority of cases, the execution environment for a system is
more than the standard execution platform (e.g., J2EE, .NET, etc.). It also
includes other application systems, application libraries that are specific to a
company, and user interface libraries. As these vary significantly from one com-
pany to another, standard tool support is not available. Therefore, when MDA is
introduced, special purpose translators may have to be created that take the char-
acteristics of the local environment into account. In some cases (e.g., for user
interface generation), completely automated PIM to PSM translation may be
impossible.
There is an uneasy relationship between agile methods and model-driven archi-
tecture. The notion of extensive up-front modeling contradicts the fundamental ideas
in the agile manifesto and I suspect that few agile developers feel comfortable with
model-driven engineering. The developers of MDA claim that it is intended to sup-
port an iterative approach to development and so can be used within agile methods
(Mellor, et al., 2004). If transformations can be completely automated and a com-
plete program generated from a PIM, then, in principle, MDA could be used in an
agile development process as no separate coding would be required. However, as far
as I am aware, there are no MDA tools that support practices such as regression test-
ing and test-driven development.