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