Qu'est-ce qu'un diagramme de classe UML ?
Les diagrammes de classe UML en bref
Lors de la construction d'une maison ou d'un bâtiment, les architectes et les ingénieurs établissent un ensemble de plans pour visualiser tous les aspects de la construction avant le début des travaux. Les diagrammes de classe du langage de modélisation unifié (UML) remplissent la même fonction qu'un plan, mais pour le développement de logiciels.
Tout comme vous ne construiriez pas une maison sans plan, ce n'est pas une bonne idée de construire un système sans diagramme UML lors de l'initiation et de la mise à jour. Les diagrammes de classes UML font partie d'une série de diagrammes UML qui visualisent différents aspects du développement, tous utilisant le même langage pour faciliter l'interprétation.
Considérez ce guide comme votre aide-mémoire sur les diagrammes de classes UML. Découvrez les avantages de leur utilisation pour la conception, leur fonctionnement et comment créer un diagramme de classe UML.
Qu'est-ce qu'un diagramme de classe en UML ?
Les diagrammes de classes sont l'un des nombreux types de diagrammes de structure UML. Les diagrammes de structure montrent la structure statique d'un système, plutôt que de montrer comment un objet évolue dans le temps.
Les diagrammes de classes visualisent les classes d'un système et les relations entre elles.
Dans la conception orientée objet, les classes créent des objets et agissent sur eux. Les objets sont des instances de classes. Les classes sont donc des éléments critiques de haut niveau d'un système. Elles sont dérivées au cours de la conception et sont utilisées pour la communication sur la conception ou les modifications de la conception.
Dans un diagramme de classes, les noms des classes sont les mêmes que ceux des objets, car l'objectif d'une classe est de définir les attributs et les opérations de chaque instance d'objet dans le système. Une classe est le plan d'un objet et un diagramme de classes est le plan statique du système.
Dans le développement de logiciels, les diagrammes de classes UML n'existent pas en tant que tels. Ils dépendent des diagrammes de cas d'utilisation et sont étroitement liés aux diagrammes d'objets et de communication. Ensemble, tous les diagrammes UML modélisent, conceptualisent et documentent le fonctionnement d'un système avant, pendant et après sa mise en œuvre.
Qu'est-ce qu'une classe en UML ?
Une classe est un élément de modélisation qui définit les caractéristiques de l'objet qu'elle représente, y compris ses attributs et ses comportements.
Prenons l'exemple de la classe « Voiture ». Elle possède un ensemble d'attributs statiques, tels que la marque, le modèle, l'année et la couleur. La classe « Voiture » possède également des méthodes (ce que les voitures peuvent faire) telles que l'accélération, la décélération, l'arrêt et le démarrage. Puisqu'un objet est une instance de la classe, une telle instance d'objet peut être : Subaru, Forester, 2023, vert foncé. Dans cet exemple, les attributs de cette voiture sont la marque, le modèle, l'année et la couleur.
Quel est l'objectif des diagrammes de classes UML ?
Un diagramme de classes UML a deux objectifs principaux en tant que modèle statique d'un système orienté objet :
Visualiser les classes d'un système et leurs propriétés.
Montrer et analyser les relations entre les classes.
En outre, les diagrammes de classes UML constituent également la base des diagrammes de composants et de déploiement qui montrent les aspects matériels et logiciels d'un système.
Avantages des diagrammes de classes UML
Les diagrammes de classes UML sont des outils de modélisation pratiques pour construire une architecture logicielle. Comme avec d'autres diagrammes UML, les développeurs et les parties prenantes visualisent différentes vues d'un système. Ces diagrammes nous aident à comprendre le fonctionnement du système, son comportement et les relations entre ses différentes parties.
La création de diagrammes de classes pendant la conception facilite le processus de développement en montrant clairement les classes, leurs attributs et leurs méthodes. Ils montrent également comment les classes sont liées les unes aux autres. Le fait de voir une construction conceptuelle d'un système avant d'écrire le moindre code aide les développeurs à communiquer entre eux et avec les autres parties prenantes.
Les diagrammes de classes permettent également de modifier le système en montrant un schéma de l'ensemble de l'application. L'application de modifications ou d'ajouts à un diagramme de classes UML donne un aperçu des nouvelles classes et de l'impact des modifications sur les classes existantes.
Principaux composants des diagrammes de classes UML
Les diagrammes de classes UML contiennent des classes et leurs interactions. Chaque classe est représentée dans un rectangle avec, de haut en bas, le nom de la classe, ses attributs et ses méthodes. Seul le nom de la classe est nécessaire. Le niveau de détail requis détermine si les attributs et les méthodes sont affichés.
Les interactions dans un diagramme de classes UML montrent les relations entre les classes à l'aide de lignes et de pointes de flèches. Les pointes de flèches ont des significations spécifiques pour différencier les types de relations. Ces relations comprennent l'héritage ainsi que les relations bidirectionnelles et unidirectionnelles. Les classes peuvent être regroupées en paquets de classes étroitement liées.
Notations des diagrammes de classes UML
La notation de base d'un diagramme de classes UML comprend les étiquettes des membres de la classe, leur visibilité (qui peut y accéder) et les éventuels packages. Lors de la création d'un modèle de classe UML, utilisez la police de caractères Open Sans, approuvée par l'application web. En règle générale, les diagrammes de classes UML respectent des conventions de style telles que le camel case, où le deuxième mot et les suivants sont en majuscules, et où il n'y a pas d'espace entre les mots.
Les classes
Le nom d'une classe reflète le nom d'un objet ou d'une entité. Le nom de la classe est placé au centre de la section supérieure, en gras et en majuscules. Dans le modèle, la section du nom de la classe est la seule section obligatoire d'une classe. Les deux autres sont facultatives, en fonction de l'objectif et de la vue du diagramme.
Attributs
La section centrale du modèle comprend les attributs qui décrivent les caractéristiques statiques d'une classe qui s'appliqueront aux instances d'objets définies par cette classe. Imaginons que nous construisions un diagramme de classes pour visualiser le fonctionnement d'un distributeur automatique de billets. Les attributs de la classe DebitCard sont le numéro de carte et le propriétaire ; chaque instance a son propre numéro et son propre propriétaire.
Méthodes (opérations et comportements)
La troisième section du modèle de classe concerne ce que la classe « fait ». Quelles sont les actions que l'instance de l'objet pourra effectuer ? Dans la classe DebitCard, l'opération consisterait à donner un accès.
Visibilité
Les signes plus et moins indiquent si les attributs et les opérations d'une classe sont publics (visibles de n'importe où dans le système) ou privés (visibles uniquement au sein de la classe). Le dièse (signe dièse) indique une visibilité protégée.
Paquet
Un groupe de classes ou un groupe d'autres paquets sont visualisés comme des boîtes avec une étiquette. Le nom du paquet figure sur l'étiquette et prend une majuscule. Lors de l'utilisation de paquets, les classes n'ont pas besoin d'avoir les trois sections en vue à tout moment.
Notations des relations des diagramme de classe UML
Les modèles de diagramme de classes UML sont reliés visuellement à l'aide de lignes, de notations textuelles et de chiffres de multiplicité. La liste suivante couvre les notations de relations de base nécessaires à la création d'un diagramme de classes UML pour votre système.
Toutes les notations de relations, à l'exception de la réalisation, impliquent un nom écrit à côté de la ligne et sur le côté de la classe à laquelle il se rapporte. Veillez à ce que la taille du texte soit équilibrée et que les lignes soient ordonnées afin d'obtenir un diagramme facile à lire.
Association
Une association relie deux classes de manière logique. C'est la notation de relation la plus utilisée et elle ressemble à une ligne droite. Les associations sont intrinsèquement bilatérales, ce qui signifie que les deux classes associées savent que l'autre classe existe. Lorsque l'association est unilatérale, elle a une pointe de flèche simple qui diffère de la flèche triangulaire d'héritage et de réalisation.
N-aire détermine les associations qui relient plus de deux modèles de classe. L'association N-aire suivante à l'association binaire est l'association ternaire. Ces notations sont des lignes reliées par un losange vide à la conjonction.
Agrégation et composition
L'agrégation et la composition sont des sous-ensembles de la relation d'association.
La relation d'agrégation relie les classes à l'aide d'une ligne droite et d'un losange creux à côté de la classe mère. Dans l'agrégation, les classes enfants existent indépendamment de la classe mère. Si la classe parentale est supprimée, la classe enfantine continue d'exister.
La composition est l'inverse. Lorsque deux classes sont reliées par une notation de composition utilisant une ligne droite et un losange rempli, elles n'existent pas indépendamment. Lorsque la classe mère est supprimée, la classe fille l'est également.
Association réflexive
L'association réflexive est la seule association unilatérale disponible dans les diagrammes de classes. Elles sont constituées d'une ligne droite qui boucle le long du modèle de classe. Leur but est de visualiser une relation entre une instance de classe et une autre instance de la même classe.
Héritage et généralisation
La notation de l'héritage ou de la généralisation permet de visualiser une relation entre des classes qui héritent de propriétés. Une relation d'héritage est représentée par une ligne droite et un triangle creux pointant vers la classe indépendante.
Dépendance
Les notations de dépendance sont représentées par une ligne décalée et une simple flèche indiquant la direction de la relation. Comme pour la notation d'héritage, la flèche pointe de la classe dépendante vers sa superclasse. Les modifications apportées à la superclasse entraîneront des changements dans la sous-classe.
Réalisation
Une relation de réalisation relie une classe qui réalise ou met en œuvre le comportement défini par une autre. Les modèles de cette relation sont appelés éléments fournisseur et client ou superclasse et sous-classe. Le fournisseur est la source et le client est l'élément de spécification. La notation de réalisation est représentée par une ligne décalée et un triangle creux.
Multiplicité
La notation de multiplicité est un ensemble de nombres placés à l'intersection d'une ligne de relation et d'un modèle de classe. La multiplicité des instances définit le nombre d'instances d'un objet qui participent à une relation. Les chiffres indiquent le nombre d'instances d'une classe qui sont liées à une instance d'une autre classe. Ils sont désignés comme suit :
0..1 = Zéro ou un
1 = Une seule instance
0.. = Zéro ou plus
1..* = Une ou plusieurs
3 = Trois seulement
0..5 = De zéro à cinq
5..15 = De cinq à quinze
Création d'un diagramme de classes UML
Il est maintenant temps de créer un diagramme de classe UML de votre choix. Bien entendu, vous pouvez toujours créer un diagramme à partir de zéro. Si vous êtes novice en matière de création de diagrammes UML, le mieux est d'utiliser un modèle préconçu avec toutes les formes de modèle et les options de notation. Miro propose un modèle de diagramme de classe UML qui sert de base à tout diagramme de classe UML que vous devez créer.
En utilisant Miro ou un autre outil de diagramme, suivez ce tutoriel étape par étape pour créer un diagramme de classes personnalisé afin de conceptualiser et de modéliser visuellement un système.
Définir les classes
Pour définir ces objets/classes, écrivez un scénario d'utilisation pour votre système et extrayez les noms de l'énoncé. Un client insère sa carte de débit dans le distributeur automatique de billets et retire de l'argent. Les noms en gras sont les objets et, par conséquent, les classes.
Créez un modèle en trois parties pour chaque classe et ajoutez les noms à la section supérieure. Vous pouvez accéder à des formes de classes prédéfinies dans Miro par le biais de l'onglet de diagramme situé à gauche. Construisez les modèles, mais ne connectez rien tant que vous n'avez pas toutes les classes.
Décrire les attributs de la classe
Dans le deuxième compartiment de chaque modèle de classe, ajoutez les attributs. Les attributs du modèle de classe DAB sont l'emplacement, l'identifiant de la machine et la banque qui la gère. Jusqu'à présent, la classe DAB avec la liste des attributs ressemble à ceci :
DAB
+location : adresse
+machineId : entier
+managedBy : string
Ajouter les méthodes (opérations) de la classe
Dans le troisième compartiment, ajoutez les opérations de chaque classe dans une liste, comme les attributs. Pour la classe DAB, une opération pourrait être la lecture de la carte, l'identification d'une transaction et la demande d'un code PIN. Le modèle de la classe ressemble maintenant à ceci :
DAB
+location : adresse
+machineId : entier
+managedBy : chaîne
+readsCard
+identifiesTransaction
#asksForPin
Visualiser les relations et la multiplicité
Disposez les modèles de classe sur votre tableau Miro pour commencer à les associer et à visualiser les relations. Choisissez le type de ligne que vous souhaitez dans le panneau des objets et sélectionnez le style et la fin de la ligne en fonction de la relation.
Ajoutez les rôles et les chiffres de multiplicité le long des lignes en cliquant sur le bouton +T dans le menu des objets. Ajustez leur position et leur taille en conséquence.
Gardez-le actif
Les diagrammes de classes UML ne sont pas des cartes gravées dans la pierre - ce sont des mécanismes vivants qui vous aident à visualiser un système à tout moment, de l'initiation à la mise en œuvre et au-delà. Lorsque vous créez un diagramme de classes UML avec Miro, vous pouvez toujours y revenir et réviser les changements avant de modifier le code du système.