logo

Diagramme de classes UML

Le diagramme de classes représente une vue statique d'une application. Il représente les types d'objets résidant dans le système et les relations entre eux. Une classe est constituée de ses objets et peut également hériter d’autres classes. Un diagramme de classes est utilisé pour visualiser, décrire, documenter divers aspects du système, ainsi que pour construire du code logiciel exécutable.

Il montre les attributs, les classes, les fonctions et les relations pour donner un aperçu du système logiciel. Il constitue les noms de classe, les attributs et les fonctions dans un compartiment séparé qui facilite le développement de logiciels. Puisqu'il s'agit d'un ensemble de classes, d'interfaces, d'associations, de collaborations et de contraintes, on l'appelle un diagramme structurel.

Objectif des diagrammes de classes

L'objectif principal des diagrammes de classes est de créer une vue statique d'une application. C'est le seul diagramme largement utilisé pour la construction et il peut être mappé avec des langages orientés objet. C'est l'un des diagrammes UML les plus populaires. Voici l’objectif des diagrammes de classes ci-dessous :

  1. Il analyse et conçoit une vue statique d'une application.
  2. Il décrit les principales responsabilités d'un système.
  3. C'est une base pour les diagrammes de composants et de déploiement.
  4. Il intègre l’ingénierie directe et inverse.

Avantages des diagrammes de classes

  1. Il peut représenter le modèle objet pour des systèmes complexes.
  2. Il réduit le temps de maintenance en fournissant un aperçu de la façon dont une application est structurée avant le codage.
  3. Il fournit un schéma général d’une application pour une meilleure compréhension.
  4. Il représente un tableau détaillé en mettant en évidence le code souhaité, qui doit être programmé.
  5. C’est utile pour les parties prenantes et les développeurs.

Composants essentiels d'un diagramme de classes

Le diagramme de classes est composé de trois sections :

    Partie supérieure :La section supérieure englobe le nom de la classe. Une classe est une représentation d'objets similaires qui partagent les mêmes relations, attributs, opérations et sémantiques. Certaines des règles suivantes qui doivent être prises en compte lors de la représentation d'une classe sont indiquées ci-dessous :
    1. Mettez en majuscule la lettre initiale du nom de la classe.
    2. Placez le nom de la classe au centre de la section supérieure.
    3. Un nom de classe doit être écrit en gras.
    4. Le nom de la classe abstraite doit être écrit en italique.
    Section médiane :La section du milieu constitue les attributs qui décrivent la qualité de la classe. Les attributs ont les caractéristiques suivantes :
    1. Les attributs sont écrits avec ses facteurs de visibilité, qui sont public (+), privé (-), protégé (#) et package (~).
    2. L'accessibilité d'une classe d'attributs est illustrée par les facteurs de visibilité.
    3. Un nom significatif doit être attribué à l'attribut, qui expliquera son utilisation au sein de la classe.
    Partie inférieure :La section inférieure contient des méthodes ou des opérations. Les méthodes sont représentées sous forme de liste, où chaque méthode est écrite sur une seule ligne. Il montre comment une classe interagit avec les données.
Diagramme de classes UML

Des relations

En UML, les relations sont de trois types :

    Dépendance:Une dépendance est une relation sémantique entre deux ou plusieurs classes dans laquelle un changement dans une classe entraîne des changements dans une autre classe. Cela forme une relation plus faible.
    Dans l’exemple suivant, Student_Name dépend de Student_Id.
Diagramme de classes UML
    Généralisation:Une généralisation est une relation entre une classe parent (superclasse) et une classe enfant (sous-classe). En cela, la classe enfant est héritée de la classe parent.
    Par exemple, le compte courant, le compte d'épargne et le compte de crédit sont la forme généralisée du compte bancaire.
Diagramme de classes UML
    Association:Il décrit une connexion statique ou physique entre deux ou plusieurs objets. Il représente le nombre d’objets présents dans la relation.
    Par exemple, un département est associé au collège.
Diagramme de classes UML

Multiplicité: Il définit une plage spécifique d’instances d’attributs autorisées. Dans le cas où une plage n'est pas spécifiée, une est considérée comme une multiplicité par défaut.

qu'est-ce qu'une pile en Java

Par exemple, plusieurs patients sont admis dans un hôpital.

Diagramme de classes UML

Agrégation: Une agrégation est un sous-ensemble d'association, qui représente une relation. C'est plus spécifique qu'une association. Il définit une relation partie-tout ou partie de. Dans ce type de relation, la classe enfant peut exister indépendamment de sa classe parent.

L'entreprise compte plusieurs salariés, et même si l'un d'entre eux démissionne, l'entreprise existe toujours.

Diagramme de classes UML

Composition: La composition est un sous-ensemble de l'agrégation. Il représente la dépendance entre le parent et son enfant, ce qui signifie que si une partie est supprimée, l'autre partie est également supprimée. Cela représente une relation à part entière.

Un carnet de contacts se compose de plusieurs contacts, et si vous supprimez le carnet de contacts, tous les contacts seront perdus.

Diagramme de classes UML

Cours abstraits

Dans la classe abstraite, aucun objet ne peut être une entité directe de la classe abstraite. La classe abstraite ne peut ni être déclarée ni instanciée. Il est utilisé pour trouver les fonctionnalités à travers les classes. La notation de la classe abstraite est similaire à celle de la classe ; la seule différence est que le nom de la classe est écrit en italique. Puisqu’elle n’implique aucune implémentation pour une fonction donnée, il est préférable d’utiliser la classe abstraite avec plusieurs objets.

Supposons que nous ayons une classe abstraite nommée déplacement avec une méthode déclarée à l'intérieur, et cette méthode sera appelée comme un conduire () . Désormais, cette méthode de classe abstraite peut être implémentée par n'importe quel objet, par exemple une voiture, un vélo, un scooter, un cycle, etc.

Diagramme de classes UML

Comment dessiner un diagramme de classes ?

Le diagramme de classes est le plus largement utilisé pour construire des applications logicielles. Il représente non seulement une vue statique du système mais également tous les aspects majeurs d'une application. Une collection de diagrammes de classes dans son ensemble représente un système.

Certains points clés à garder à l’esprit lors de l’élaboration d’un diagramme de classes sont indiqués ci-dessous :

  1. Pour décrire un aspect complet du système, il est suggéré de donner un nom significatif au diagramme de classes.
  2. Les objets et leurs relations doivent être reconnus à l'avance.
  3. Les attributs et méthodes (responsabilités) de chaque classe doivent être connus.
  4. Un nombre minimum de propriétés souhaitées doit être spécifié, car un plus grand nombre de propriétés indésirables conduira à un diagramme complexe.
  5. Les notes peuvent être utilisées selon les besoins du développeur pour décrire les aspects d'un diagramme.
  6. Les schémas doivent être redessinés et retravaillés autant de fois pour le rendre correct avant de produire sa version finale.

Exemple de diagramme de classes

Un diagramme de classes décrivant le système de commande client est présenté ci-dessous.

Diagramme de classes UML

Utilisation des diagrammes de classes

Le diagramme de classes est utilisé pour représenter une vue statique du système. Il joue un rôle essentiel dans l’établissement des schémas de composants et de déploiement. Il aide à construire un code exécutable pour effectuer une ingénierie avant et arrière pour n'importe quel système, ou nous pouvons dire qu'il est principalement utilisé pour la construction. Il représente le mappage avec les langages orientés objet que sont C++, Java, etc. Les diagrammes de classes peuvent être utilisés aux fins suivantes :

  1. Décrire la vue statique d'un système.
  2. Pour afficher la collaboration entre chaque instance dans la vue statique.
  3. Décrire les fonctionnalités exécutées par le système.
  4. Construire l'application logicielle à l'aide de langages orientés objet.