Where used: Event Diagram Model, Operation Model, State Machine Model


Operation_


Read Next: resultsIn/isResultOf, hasInput/IsInputOf, output/IsOutputOf,
           Variable, Method, hasMethod/isMethodFor
           Operation Precondition, Operation Postcondition


An operation in OOIE is a request to achieve a certain goal, independent
of the particular way that the goal is reached.  For example, an
operation Fill Order is a request to fill an order, independent of how
the order is filled.  



Operation as object type

Operations are a kind of object type because each time the operation is
started, an new object is created.  For example, when an order is filled
by running the FillOrder operation, a new object of type FillOrder is
created at the beginning of the activity and destroyed at the end.  This
way, there is a unique object representing the activity each time it
happens.  The object can be used to record information about the
activity, such as how long it has been going, and to perform other
operations on it, like suspending, resuming, and aborting it.



Specialized operations

Read First: resultsIn/isResultOf, hasInput/IsInputOf, output/IsOutputOf
            Method, Operation Precondition, Operation Postcondition

Like all object types, operations can be specialized by reducing the
number of instances they have (see specializes/generalizes).  Since
operation instances exist only temporarily, specialization reduces the
possible activities that the process can have as instances.

There are a number of ways to do this:

    1) Restrict the type of resulting events.

    2) Restrict the types of objects that can be input or output.

    3) Restrict the methods of the operation in such a way that the
       number of instances is reduced without adding any new ones.
       If the the operation is polymorphic, this can be done by
       restricting the object types through which the operation can be
       requested.

    4) Restrict the precondition or postcondition so that the operation
       can only be used in more restricted circumstances or create more
       restricted conditions.

    5) Restrict flow to a subset of the original flow.



Miscellaneous

Operations and Event Types are disjoint, that is, they cannot have
subtypes or instances in common.  This isn't currently notated in the
meta-model.


Read Next: resultsIn/isResultOf, hasInput/IsInputOf, output/IsOutputOf,
           Variable, Method, hasMethod/isMethodFor
           Operation Precondition, Operation Postcondition       


Hierarchy:

Attributes:

Operations: None