Properties of operations on UML class diagrams


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at Properties of operations on UML class diagrams.

On a UML class diagram, you can add operations to classes and interfaces. An operation is a method or function that can be performed by an instance of a class or interface.

To add an operation, right-click the class or interface, point to Add, and then click Operation.

If the operations of a class on the diagram are not visible, click the expand chevron at the top of the class or interface. If you can see the Operation header, click [+] to expand the operations section.

The signature of an operation is the line of text that represents it in a class or interface on a UML class diagram. It has the following form:

+ OperationName (parameter1 : Type1 [*], ...) : ReturnType [*]

+ denotes public Visibility. The other permitted values are - (private), # (protected), ~ (package).

OperationName is underlined if the Is Static property is true, and is italic if the Is Abstract property is true.

: ReturnType is omitted if no return type is defined.

[*] denotes the multiplicity of a parameter or return type. It is omitted if the multiplicity is 1.

See the next section for a full description of these properties.

These are the properties of an operation in a class or interface on a UML class diagram.

To see the properties of an operation, right-click the operation in the class or interface on the diagram, and then click Properties. The properties appear in the Properties window.

Name(a new name)Should be unique within the containing type.
Parameters(none)A list that has the form name:Type, name:Type, …. Click […] to edit the list.

The types can be primitive types, or types that are defined in the model. If you enter a name for a new type in this property, a type will be added to the Unspecified Types section of UML Model Explorer.
Return Type(none)(none), or a primitive type, or a type that is defined in the model. If you enter a name for a new type in this property, a type will be added to the Unspecified Types section of UML Model Explorer.
Postconditions(none)An optional condition specifying a relationship between the state of the system before and after the operation's execution.
Preconditions(none)An optional condition specifying the assumptions about the state of the system before the operation begins execution.
Body Conditions(none)An optional constraint on the values returned by the operation.
VisibilityPublicThe permitted values, and the characters that appear in the signature are:

 + Public - visible globally

 - Private - not visible outside the owning type

 # Protected - visible to types derived from the owner

 ~ Package - visible to other types within the same package.
Signature+Name()Summarizes the visibility, name, parameters, and return type of this operation. You can change these properties by editing the signature on the diagram, or by editing the individual properties.
Work Items0 associatedCount of associated work items. Read-only.

For more information, see Link model elements and work items.
ConcurrencySequentialSequential - The operation is or will be designed without concurrency control. Calling this operation concurrently might result in failures.

 Guarded - The operation will automatically block until other instances of it have completed.

 Concurrent - The operation is designed so that multiple calls to it can execute concurrently.
Is StaticFalseIf true, this operation is shared between all instances of this type.

If true, the name of the operation will be underlined where it appears on the diagram.
Is AbstractFalseIf true, no code is associated with this operation. Therefore, the owning class is abstract.
Is LeafFalseThe designer intends that this operation cannot be overridden in derived classes.
Is QueryFalseIf true, no significant changes to the state of the system are made by this operation. Therefore, it can be used, for example, in a test to check the state of the system.
Multiplicity11 - a single value of the specified type.

 0..1 - can be null.

* - a collection of values of the specified type.

 1..* - a collection containing at least one value.

 n .. m - a collection that contains between n and m values.
Is OrderedFalseIf true, the collection forms a sequential list. For Multiplicity more than 1.
Is UniqueFalseIf true, there are no duplicate values in the collection. For Multiplicity more than 1.

UML Class Diagrams: Reference
Properties of types on UML class diagrams
Properties of attributes on UML class diagrams
Properties of associations on UML class diagrams
UML Class Diagrams: Guidelines