Previous Topic: Using Object-Oriented FeaturesNext Topic: Encapsulation


Operation

An operation is a unit of functionality owned by an entity type. An entity type that owns functionality is known as an object type or class. An operation may only be owned by one entity type.

In an object model, all functionality should be defined as operations of entity types. When a new elementary process or action block is identified, you should register it as an operation of an entity type. Following this procedure will result in a more tightly integrated model and existing functionality that is easier to find.

Another beneficial practice is to allow the project to build either a conventional (non-OO) model of free-standing action diagrams, or an object model, in which entity types own all functionality.

The identification of new functionality can lead to the discovery of new entity types. Object models need not be normalized. See the discussion on transient entity types. Utility action blocks, which only operate on work set attributes, need not be defined as operations.

Operations must be classified as one of the following:

Instance Operation

Instance operation is an operation that is focused on a single existing occurrence (instance) of the owning entity type. Operations that update or delete an existing entity occurrence (instance) should ideally be registered as instance operations. Operations that read an existing instance and then retrieve data about that instance or its associated instance (or update associated instances) should also be registered as instance operations.

Type Operation

A type operation is an operation that is not focused on a single existing occurrence (instance) of the owning entity type. A type operation is focused on a single non-existent occurrence (for example, a list operation or a find operation employing a non-unique search key.)

Operation Package

An Operation Package is a procedure step that represents a packaging together of several operations. Procedure steps may offer several discrete units of functionality, and the consumer uses an input command to distinguish which piece of functionality is to be executed. Each command, then, effectively represents a separate operation within the procedure step. See the design book for more information concerning this type of procedure step.

Protected Operations

Protected operations may only be used by a calling action diagram where the caller is: