3C Clear Clean Concise  UML                       Previous   Contents   Next
communityUML 2torial

5.2.2               Action

An action is used when the modeler wishes to represent something that happens in the system or its environment.

The granularity of actions is a design choice.

Several objects may participate in an action. 

An action need not be instantaneous. Actions may overlap in time. A model may specify that an action has happened, is happening, or may happen.


Q:  In what ways does UML 2 action differ from UML 1 action?

A:  UML 1 uses a fair number of unrelated concepts to model something that happens.

UML 1 has:

Action:  "a specification of an executable statement that forms an abstraction of a computational procedure"
Action Sequence: "a collection of actions"
Operation:  "a property within a classifier" "which performs a service"
Stimulus:  "reifies a communication between two instances"
Signal:  "a specification of an asynchronous stimulus"
Message: "a particular communication between instances that is specified in an interaction"
Reception:  "a declaration stating that a classifier is prepared to react to the receipt of a signal"
Interaction: "a unit of behavior that focuses on the observable exchange of information"
Event: "a specification of a type of observable occurrence"

[These are all types, not particular occurences, except for Event, which is used both for a type and for a particular occurence.]

The U2P submission adds more, including:

Behavior: "the realization or implementation of a behavioral feature"
Action Occurence: "a concrete instantiation of a (composite) action"
Interaction Fragment: "a piece of an interaction"
Interaction Occurence:  an occurence or instance of an interaction type ("The meaning of an InteractionOccurrence is that the meaning of the interaction definition that it refers is substituted for the InteractionOccurrence.")
Gate: "a point that represents the conceptual interface between InteractionFragments"

3C UML 2, on the other hand, has a smaller set of concepts, which is clear, clean and concise.

The invocation of an operation of another object, the raising of a signal, the generation of an event, the sending of a message and any combination of these are all actions in UML 2.

(Interaction diagrams, collaboration diagrams, activity diagrams and use cases, all in the superstructure, are various ways of specifying UML 2 actions.)


Q:  In what ways does UML 2 action differ from UML 1 action?

A:  UML 1 action  "is always executed within the context of an instance of the classifier that constitutes the context of the action, so the target set expression and the argument expressions are evaluated within an instance."  [quoted text is from the U2P submission]

UML 2 removes this restriction and allows the modeler to specify joint actions: actions in which several object take part.  The context of a joint action is the several objects participating in that action.


Q:  In what ways does UML 2 action differ from UML 1 action?

A:  The definitions of the different kinds of UML 1 actions come from different places in the metamodel.  Likewise with the U2P submission.  For example, in the U2P submission (as of the date of creating this 2torial page):

Collaboration and Signal are Classifiers.
Action and Event are Namespaces
Interaction and Interaction Occurence are both Behaviors,
  though one is a type of occurence and the other a particular occurence
Interaction Fragment is not a Behavior
Interaction and Interaction Occurence are both Interaction Fragments
  on the other hand Action Occurence is an Interaction Fragment, but Action is a Namespace
Operation and Reception are Behavioral Features
  not to be confused with Behaviors

In UML 2 of the 3C submission:

Operations, Receptions, and Events are all kinds of Actions.
A combination of actions is an Action.
A Behaviors is a collections of Actions with constraints on when they may happen
Use Cases, Collaborations, State Machines, Processes (or Activities) and Data Flows are all ways of specifying Behaviors

UML 2 also provides for specification of types of actions which can not be specified in UML 1 (or the U2P submission), such as:
-- atomic shared actions, in which, if there is a failure, it is observable by all objects participating in the action, and
-- flows of information, including analog and multimedia flows.


 

Previous   Contents   Next         RunningExample

  DA.gif (4367 bytes)

The OMG mark, ‘UML,’  is a trademark of Object Management Group, Inc. (OMG). 


During development of this web site, please send comments to Joaquin Miller. mailto:joaquin@acm.org    
Copyright © 2000 Financial Systems Architects