Page 226 -
P. 226

OO-METHOD     211
                        2.  Allow service activation: once the user is connected and has a clear object system view,
                           s/he can activate any available service in her/his worldview. Among these services, we
                           will have system observations (object queries) or events or transactions served by other
                           objects.

                      Any service activation comprises two steps: building the message and executing the service.
                    In order to build the message, the user has to provide information to:
                        1.  Identify the server object: the existence of this server object is an implicit (pre)condition
                           to executing any service, unless we are dealing with a <<new>> event.
                        2.  Provide values for service arguments.
                      Once the message is sent, the service execution is characterized by the occurrence of the fol-
                    lowing sequence of actions in the server object:

                        1.  Check state transition: verify the existence of a valid transition labeled with the service
                           being executed from the object’s current state to another state in the state transition dia-
                           gram.
                        2.  Precondition satisfaction: all preconditions (if any) associated with the service must hold.
                        3.  If 1 or 2 does not hold, an exception will arise and the message is ignored.
                        4.  Valuations fulfillment: the induced event modifications (specified in the functional model)
                           take place in the involved object state.
                        5.  Checking integrity constraints in the new state: to assure that the service execution leads
                           the object to a valid state, integrity constraints are verified in the final state. If any con-
                           straint does not hold, an exception will arise and all changes to the object are undone.
                        6.  Testing trigger relationships: after a valid change of state, the set of condition-action rules
                           that represent the internal system activity is verified. If any of them holds, the specified
                           service will be triggered.

                      The previous steps guide the implementation of any program to assure the functional equiva-
                    lence between the object system specification collected in the conceptual model and its reification
                    in a programming environment.

                    COMPILING OO-METHOD CONCEPTUAL MODELS

                    An OO-Method conceptual model represents an application to be developed. The next natural
                    step after building a conceptual model and validating it is to implement the application that the
                    model represents.
                      We will refer to the process of transforming a conceptual model into a functionally equivalent
                    software application as conceptual model compilation. If the creation of conceptual models re-
                    sults in a rise in the level of abstraction with respect to that of the source code, in much the same
                    way that source code raises the level of abstraction from that of, say, machine code, it seems only
                    natural to refer to this transformation process as “compilation,” in the same way that the software
                    engineering community refers to the process of transforming source code into machine code as
                    compilation.
                      Traditional compilers transform a program written in a certain programming language (which
                    abstracts away details about the hardware platform on which it will execute through the use of
   221   222   223   224   225   226   227   228   229   230   231