A second basic building block for UML diagrams is a typed element. Typed elements (as you might expect from the name) have a type. Fields and parameters are typed elements, as are method parameters and return values.
The pattern for defining a typed element is:
$$ \texttt{[visibility] element : type [constraint]} $$The optional $\texttt{[visibility]}$ indicates the visibility of the element, the $\texttt{element}$ is the name of the typed element, and the $\texttt{type}$ is its type, and the $\texttt{[constraint]}$ is an optional constraint.
Visibility
In UML visibility (what we would call access level in C#) is indicated with symbols, i.e.:
- $\texttt{+}$ indicates
public
- $\texttt{-}$ indicates
private
- $\texttt{#}$ indicates
protected
I.e. the field:
protected int Size;
Would be expressed:
$$ \texttt{# Size : int} $$Constraints
A typed element can include a constraint indicating some restriction for the element. The constraints are contained in a pair of curly braces after the typed element, and follow the pattern:
$$ \texttt{ {element: boolean expression} } $$For example:
$$ \texttt{- age: int {age: >= 0}} $$Indicates the private variable age
must be greater than or equal to 0.