vignette|upright=2|Exemple de diagramme de classes. Le diagramme de classes est un schéma utilisé en génie logiciel pour présenter les classes et les interfaces des systèmes ainsi que leurs relations. Ce diagramme fait partie de la partie statique d'UML, ne s'intéressant pas aux aspects temporels et dynamiques. Une classe décrit les responsabilités, le comportement et le type d'un ensemble d'objets. Les éléments de cet ensemble sont les instances de la classe. Une classe est un ensemble de fonctions et de données (attributs) qui sont liées ensemble par un champ sémantique. Les classes sont utilisées dans la programmation orientée objet. Elles permettent de modéliser un programme et ainsi de découper une tâche complexe en plusieurs petits travaux simples. Les classes peuvent être reliées grâce au mécanisme d'héritage qui permet de mettre en évidence des relations de parenté. D'autres relations sont possibles entre des classes, représentées par un arc spécifique dans le diagramme de classes. Elles sont finalement instanciées pour créer des objets (une classe est un moule à objet : elle décrit les caractéristiques des objets, les objets contiennent leurs valeurs propres pour chacune de ces caractéristiques lorsqu'ils sont instanciés). Une classe est représentée par un rectangle séparé en trois parties : la première partie contient le nom de la classe la seconde contient les attributs de la classe la dernière contient les méthodes de la classe La seconde et la dernière représentent le comportement de la classe. Il est écrit dans le rectangle du haut. Dans une classe classique, le nom est écrit en romain (exemple : « ClasseClassique »). Le nom des classes abstraites est écrit en italique (exemple : ClasseAbstraite). Les classes template ont, dans leur angle supérieur droit, un rectangle dont la bordure est en pointillé et qui contient les types des paramètres. La syntaxe d'un attribut est la suivante : Visibilité nomAttribut [multiplicité] : typeAttribut = Initialisation ; La notion de visibilité indique qui peut avoir accès à l'attribut.