Collaboration en temps réel multi-utilisateurs avec liens partageables pour transfert instantané
Génération automatique de graphiques à partir de texte avec amélioration de style
Thèmes prédéfinis avec personnalisation complète
Supporte icônes, images, étiquettes, formules LaTeX, blocs de code, liens, pièces jointes
Exporter : PNG, VISIO, PDF, SVG | Importer : VISIO, Mermaid
Stockage cloud temps réel, synchronisation multi-appareils, historique des versions et sécurité des données
Une classe est généralement composée d'un nom, de propriétés et d'opérations, et est représentée par un rectangle divisé en trois sections : la première pour le nom de la classe, la deuxième pour les propriétés de la classe, et la troisième pour les opérations de la classe.
Cependant, dans la pratique, il existe trois formes de représentation : le "nom de la classe", le "nom de la classe" + "propriétés de la classe", et le "nom de la classe" + "opérations de la classe".
Le nom d'une classe doit être un substantif, chaque mot commençant par une majuscule. Les classes instanciables sont en caractères droits, tandis que les classes abstraites sont en italiques.
La syntaxe de définition des propriétés d'une classe est : [visibilité] nom de la propriété [:type de données] [=valeur initiale] [{chaîne de propriétés}]
Le contenu entre [] est optionnel.
La contrainte de classe spécifie une ou plusieurs règles que la classe doit respecter. Dans UML, une contrainte est représentée par un texte entre accolades.
Relation d'implémentation : représentée par un triangle vide + une ligne pointillée, allant de la classe implémentante vers la classe interface.
Relation de généralisation : représentée par un triangle vide + une ligne pleine, allant de la sous-classe vers la superclasse.
Relation d'association : représentée par une flèche pleine, allant de la classe de référence vers la classe référencée.
Relation d'agrégation : représentée par un losange vide + une ligne pleine, allant de la classe partie vers la classe tout.
Relation de composition : représentée par un losange plein + une ligne pleine, allant de la classe partie vers la classe tout.
Relation de dépendance : représentée par une flèche pointillée, allant de la classe de référence vers la classe dépendante.
Le diagramme de classes n'est pas complètement indépendant ; il doit abstraire les classes d'entité, de contrôle et de frontière à partir du diagramme de cas d'utilisation et maintenir une cohérence sémantique avec le diagramme de cas d'utilisation, le diagramme d'activité, le diagramme de séquence, etc.
Une classe doit respecter le principe de responsabilité unique ; il est possible de diviser une grande classe pour répartir les responsabilités entre plusieurs classes, afin d'éviter un couplage élevé, de clarifier les frontières, et de respecter les principes de conception orientée objet.