Page 157 -
P. 157

140   Chapter 5   System modeling


                                      Computation         Platform         Platform         Executable
                                      Independent       Independent         Specific
                                         Model            Model             Model             Code



                                                Translator        Translator        Translator



                                                                  Platform          Language
                                      Domain Specific           Specific Patterns   Specific
                  Figure 5.19 MDA       Guidelines                and Rules         Patterns
                  transformations



                                    levels of abstraction are created. From a high-level platform independent model it is
                                    possible, in principle, to generate a working program without manual intervention.
                                      The MDA method recommends that three types of abstract system model should
                                    be produced:


                                    1.  A computation independent model (CIM) that models the important domain
                                        abstractions used in the system. CIMs are sometimes called domain models.
                                        You may develop several different CIMs, reflecting different views of the sys-
                                        tem. For example, there may be a security CIM in which you identify important
                                        security abstractions such as an asset and a role and a patient record CIM, in
                                        which you describe abstractions such as patients, consultations, etc.

                                    2.  A platform independent model (PIM) that models the operation of the system
                                        without reference to its implementation. The PIM is usually described using
                                        UML models that show the static system structure and how it responds to exter-
                                        nal and internal events.

                                    3.  Platform specific models (PSM) which are transformations of the platform-
                                        independent model with a separate PSM for each application platform. In
                                        principle, there may be layers of PSM, with each layer adding some platform-
                                        specific  detail.  So,  the  first-level  PSM  could  be  middleware-specific  but
                                        database independent. When a specific database has been chosen, a database-
                                        specific PSM can then be generated.


                                      As I have said, transformations between these models may be defined and applied
                                    automatically by software tools. This is illustrated in Figure 5.19, which also shows
                                    a final level of automatic transformation. A transformation is applied to the PSM to
                                    generate executable code that runs on the designated software platform.
                                      At the time of writing, automatic CIM to PIM translation is still at the research pro-
                                    totype stage. It is unlikely that completely automated translation tools will be available
                                    in the near future. Human intervention, indicated by a stick figure in Figure 5.19, will
                                    be needed for the foreseeable future. CIMs are related and part of the translation
   152   153   154   155   156   157   158   159   160   161   162