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.
   153   154   155   156   157   158   159   160   161   162   163