About

UML stands for Unified Modeling Language.
Class Diagram

Class

The top part has the class name, and extra information like "Abstract" or "Interface".

The middle part has attributes (fields and properties, for C#).

The bottom part has operations (methods/functions, for C#).

Visibility
- means private
# means protected
+ means public
~ means package (internal, for C#)


Association

Some association exists between two classes. You can add a label to an association if needed.


Inheritance

An "is a" relationship.


Aggregation

Class B is a part of class A. For example, one of the class A attributes has data type B.

Class B can exist without a related class A.


Composition

Class B is a part of class A, like an aggregation, but class B will only exist when it is attached to a class A.


Dependency

Class A depends on class B in some way, meaning that a change to class B may necessitate a change to class A.


Multiplicity

All relationships can be marked with the number of class instances that can take part in the relationship.

Each class A is related to 1 class B, and each class B is related to 1 class A.
1 to 1

1 to 0 or 1

1 to Many

1 to 0 or More