Classes
In a UML class diagram, individual classes are represented with a box divided into three compartments, each of which is for displaying specific information:
The first compartment identifies the class - it contains the name of the class. The second compartment holds the attributes of the class (in C#, these are the fields and properties). And the third compartment holds the operations of the class (in C#, these are the methods).
In the diagram above, we can see the Fruit
class modeled on the right side.
Attributes
The attributes in UML represent the state of an object. For C#, this would correspond to the fields and properties of the class.
We indicate fields with a typed element, i.e. in the example above, the blended
field is represented with:
Indicating it should be declared private
with the type bool
.
For properties, we add a stereotype containing either get
, set
, or both. I.e. if we were to expose the private field bool with a public accessor, we would add a line to our class diagram with:
In C#, properties are technically methods. But we use the same syntax to utilize them as we do fields, and they serve the same role - to expose aspects of the class state. So for the purposes of this class we’ll classify them as attributes.
Operators
The operators in UML represent the behavior of the object, i.e. the methods we can invoke upon it. These are declared using the pattern:
The
Thus, in the example above, the protected method Blend
has no parameters and returns a string. Similarly, the method:
public int Add(int a, int b)
{
return a + b;
}
Would be expressed:
Static and Abstract
In UML, we indicate a class is static by underlining its name in the first compartment of the class diagram. We can similarly indicate static operators and methods by underlining the entire line referring to them.
To indicate a class is abstract, we italicize its name. Abstract methods are also indicated by italicizing the entire line referring to them.