Asset Oriented Modeling (AOM)

- Operations -

Operations can be specified to define the behavior of assets. Operations are always abstract - the actual behavior depends on the implementation. Therefore, the definition of operations is quite simple: we only have to specify an operation name. The operation names used in a model are taken from one or several vocabularies.


Operation modes:

Operations can be executed under certain circumstances which are classified by modes. For example, typical modes for a database model are insert, update, delete. We declare a mode by writing the mode name in front of the operation name, separated by a blank. Multiple modes can be specified with an operation, separated by blanks:

mode1 mode2 opname

Operation vocabulary:

Operation names and mode names should be declared in an operation vocabulary. A model may specify a default operation vocabulary and additional operation vocabulary prefixes. This allows the use of different operation vocabularies within the same model. Operations that are formulated in an operation vocabulary other than the default operation vocabulary are specified with a operation vocabulary prefix which is separated from the operation name by a colon:

mode prefix:opname

The mode name must be specified in the same vocabulary as the operation name.


Operations can be specified with a context expression which may identify one or several assets.

context::mode prefix:opname

Operation label:

Optionally it is possible to decorate an operation with a label. An operation label does not have any specific purpose within AOM but helps to identify operations. 

label{context::mode prefix:opname

Note, that there is no closing bracket.


Operations can be guarded with pre- and postconditions. Pre- and postconditions are written in separate lines below an operation specification, for example:

mode opname

Preconditions are prefixed with a?- and postconditions are prefixed with o?- (for alpha and omega). Conditions follow the same syntax as constraints, except that labels are not allowed here. This includes the use of constraint languages declared in the model and the use of abstract constraints. Context expressions defined in pre- or postconditions are given relative to the context of the operation.


Any number of pre- and postconditions can be specified below an operation.

Home Definition Step-by-Step Examples Downloads

Contact: support 'at'