Properties of Operations in UML Class Diagrams

On a UML class diagram in Visual Studio Ultimate, 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.

Signature of an Operation

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.





(a new name)

Should be unique within the containing type.



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), 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.



An optional condition specifying a relationship between the state of the system before and after the operation's execution.



An optional condition specifying the assumptions about the state of the system before the operation begins execution.

Body Conditions


An optional constraint on the values returned by the operation.



The 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.



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 Items

0 associated

Count of associated work items. Read-only.

For more information, see How to: Link from Model Elements to Work Items.



Sequential - 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 Static


If 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 Abstract


If true, no code is associated with this operation. Therefore, the owning class is abstract.

Is Leaf


The designer intends that this operation cannot be overridden in derived classes.

Is Query


If 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.



1 - 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 Ordered


If true, the collection forms a sequential list. For Multiplicity more than 1.

Is Unique


If true, there are no duplicate values in the collection. For Multiplicity more than 1.

See Also


UML Class Diagrams: Reference

Properties of Types in UML Class Diagrams

Properties of Attributes in UML Class Diagrams

Properties of Associations in UML Class Diagrams

UML Class Diagrams: Guidelines