Page 233 -
P. 233

218     PASTOR,  MOLINA,  AND  IBORRA
                    Figure 11.7  Communication Diagram for the InvoiceClient Global Service*


                                              :Invoice                          :Client
                         1: newInvoice                        2: notify





                      *Where two services of the class Invoice (newInvoice and notify) are encapsulated in a global execution
                    unit (the global service called InvoiceClient).


                      For instance, upon the occurrence of the “pay” event on an invoice, the analyst determines
                    that its “InvoicePaymentDate” attribute will have the value of the “paymentDate” argument of
                    the “pay” event, and that the “IsPaid” attribute of the invoice will be set to true. This is illustrated
                    in Table 11.1.

                    Defining the Presentation Model View

                    The aspects of user interaction with the system can be defined by the analyst as soon as its static
                    aspects (classes, attributes, relationships) and the services that have been defined are in place. As
                    discussed in a previous section, the catalogue of patterns to define the abstract UI are structured
                    in three levels. This does not dictate, however, that the analyst must define the presentation model
                    view in this fashion: either a top-down (going from the hierarchical action tree to the elementary
                    patterns in the third level) or a bottom-up approach (even a combination of the two) can be used
                    by the analyst.
                      For instance, when defining the interaction scenario to access (and interact with) the invoices
                    in the system (using a population interaction unit), the analyst may well follow any of these
                    approaches:

                      •  First, define the population interaction unit for the “Invoice” class without defining its
                        constituent third-level patterns. Then define each of its constituent patterns, for instance: a
                        display set (to define which attributes of the invoice will be presented to the user), an order
                        criterion (to specify in which order the invoices will be presented to the user), and a set of
                        offered actions (i.e., which services will be available to the user for execution on the pre-
                        sented invoices). Then create a hierarchical action tree and select the population interaction
                        unit previously created as one of its constituent elements.
                      •  First, define the elementary third-level patterns to compose the population interaction unit
                        (i.e., the display set, the order criterion, and the set of offered actions). Then create the popu-
                        lation interaction unit and select the previously created elementary patterns as its constituent
                        elements. Then create a hierarchical action tree and select the population interaction unit that
                        was previously created as one of its constituent elements.
                      •  First, define the hierarchical action tree, then the population interaction unit, and then the
                        constituent elements of the latter.

                      As in the case of the dynamic model view and the functional model view, the order in which
                    this presentation model view appears in this document does not mean that it cannot be defined
                    until the other two views have been completely defined. However, the elements of the objects
   228   229   230   231   232   233   234   235   236   237   238