Page 232 -
P. 232

OO-METHOD     217
                    Figure 11.6  Partial State Transition Diagram for Class Invoice

                                                            editInvoiceData






                                     newInvoice                     deleteInvoice
                                                       Unpaid




                                                           pay
                                                                         deleteInvoice





                                                        Paid






                      The analyst can also define the interobject communication aspects of the system in this dynamic
                    model view, which in this case is supported by the graphical notation of UML communication
                    diagrams.
                      For instance, in order to support the requirement that the creation of an invoice must always
                    result in sending a notification to the invoiced client, the analyst decides to create a global service
                    name “InvoiceClient” to encompass the execution of the “newInvoice” service of class “Invoice”
                    with the execution of the “notify” service of class “Client” in a single execution unit. Figure 11.7
                    illustrates the communication diagram for the “InvoiceClient” global service, where these two
                    atomic services are used to specify the resultant global service.

                    Defining the Functional Model View

                    As in the case of the dynamic model view, once a service has been added or edited for a class, the
                    analyst can move on to define how the execution of that service will change the state of the object
                    (in terms of the values of its attributes) on which it is executed. The definition of the functional
                    model view does not have to take place after the definition of the dynamic model view, the only
                    real prerequisite is that the related services must have been defined or edited previously in the
                    objects model view.
                      As discussed above, services can be events or transactions, that is, atomic or molecular execu-
                    tion units; and the analyst can define how the occurrence of events changes the value of attributes
                    of a class in the functional model view. The dynamic logic axioms used for that purpose do not
                    have a graphical notation, but rather a textual, object constraint language–like one. Each of these
                    dynamic logic axioms, called valuations, relates an attribute and an event of a class in order to
                    state the value that this attribute will have when the event occurs.
   227   228   229   230   231   232   233   234   235   236   237