Oznaczenia klas UML
Klasy reprezentują koncepcję hermetyzacji stanu (atrybuty) i zachowania (operacje). Każdy atrybut ma typ. Każda operacja ma sygnaturę. Nazwa klasy to jedyna wymagana informacja.

Hermetyzacja to zasada ukrywania danych: obiekt ukrywa swoje dane przed dostępowi zewnętrznym i pozwala jedynie zewnętrznym jednostkom modyfikować dane, wywołując metody obiektu.
Stopień hermetyzacji elementów klasy zależy od poziomu widoczności elementu. Widoczność właściwości lub operacji określa, czy obiekty innych klas mogą „widzieć” lub uzyskać dostęp do tej właściwości lub operacji.
UML obsługuje następujące cztery poziomy widoczności:
Znaki ~, +, # i – umieszczone przed nazwą atrybutu lub operacji w klasie wskazują jej widoczność:
- Widoczność pakietu (reprezentowane przez tyldę ~) oznacza, że dowolny obiekt z klasy w tym samym pakiecie może zobaczyć i użyć danej klasy.
- Widoczność publiczna (+) oznacza, że dowolny obiekt z dowolnej klasy może użyć danego atrybutu lub operacji.
- Widoczność chroniona (#) oznacza, że tylko obiekty podklas danej klasy (tj. klasy znajdujące się niżej w hierarchii) mogą uzyskać dostęp do atrybutu lub operacji.
- Widoczność prywatna (-) oznacza, że tylko obiekty samej klasy mogą używać atrybutu lub operacji.
Poniższy obraz pokazuje modyfikatory widoczności dla przykładów atrybutów i operacji:

