Diagramme de Classe - UML

INTRODUCTION

Le diagramme de classes est souvent considéré comme le plus crucial dans la modélisation orientée objet. Contrairement au diagramme de cas d'utilisation, qui représente le système du point de vue des utilisateurs, le diagramme de classes illustre la structure interne du système. Il se compose essentiellement de classes, lesquelles contiennent des attributs et des opérations. Ce diagramme se limite à une vue statique du système et ne précise pas l'utilisation des opérations. Les aspects dynamiques de la modélisation sont abordés par les diagrammes d'interactions (voir chapitre 3).

exemple de diagramme de classes

Les diagrammes de classes illustrent les aspects structurels et comportementaux des éléments dans un modèle UML. Ils incluent diverses spécialisations comme les classes, les interfaces, les associations, les cas d’utilisation, les collaborations, les acteurs, les types primitifs, les composants et les signaux.

Un diagramme de classes montre un ensemble de ces éléments, décrivant les classes et leurs relations. Il peut également illustrer les regroupements de classes en paquetages, les interfaces, les objets, ainsi que les interactions dans les collaborations ou les cas d'utilisation.

Exemple : La figure ci-dessous  présente une modélisation d'une entreprise à l'aide de cinq classes : Entreprise, Service, Bureau, Employé et Siège. Chaque classe peut posséder des attributs (par exemple, la classe Service a un attribut "nom", et un Employé a des attributs "nom" et "identifiant") et des opérations (comme "demandeCongés" pour la classe Employé). Les relations entre les classes sont représentées par des associations, indiquées par des lignes, avec différentes notations possibles (losanges, flèches, etc.) selon le type d'association (composition, agrégation, etc.).

Diagramme de classe copyrigth uml2lamodlisation 2emeedition pdfImage tirée de Umllamodelisation, le site detient pas les droits sur cette image 

Pour créer un diagramme de classes efficace, il est crucial de définir au préalable les classes et leurs responsabilités, les paquetages, ainsi que les relations possibles entre ces éléments (associations, compositions, agrégations, héritages, dépendances, etc.). D’autres éléments comme les objets et les interfaces peuvent également figurer dans le diagramme.

Dans ce chapitre, nous explorerons les éléments essentiels pour réussir la modélisation d'un diagramme de classes, en commençant par la définition et la création des classes.

ser la question suivante : dispose-t-il de toutes les connaissances et informations nécessaires pour définir précisément les fonctionnalités que le système doit offrir ?

Le diagramme de cas d'utilisation : Un outil essentiel

 

De l’objet à la classe

De nombreux objets, qu'ils soient naturels ou informatiques, partagent des caractéristiques similaires, tant au niveau de leur description que de leur comportement. Pour simplifier la modélisation, il est utile de regrouper ces objets en classes lorsque leurs attributs et comportements sont communs. Une classe fournit une vue abstraite de ces objets en définissant leurs attributs (ou états) et leurs comportements.

En d'autres termes, une classe est une organisation des données et des opérations pertinentes pour les objets qu'elle représente. Ce concept est illustré dans la image à insérer ici. Avant de définir une classe, il est crucial de bien identifier les objets, les distinguer des autres, et comprendre leur identité, car cela influence la façon dont les structures et les comportements des objets sont perçus.

Exemple de Diagramme de Classes

Dans l'image à insérer ici, une entreprise est modélisée avec cinq classes : Entreprise, Service, Bureau, Employé et Siège. Chaque classe peut contenir des attributs tels que "nom" pour Service ou "nom" et "identifiant" pour Employé, ainsi que des opérations comme "demandeCongés" pour Employé. Les relations entre les classes sont représentées par des lignes, avec diverses notations selon le type d'association (comme les losanges ou les flèches).

Définition de la Classe

Une classe est une définition d'un ensemble d'objets partageant des sémantiques, attributs, méthodes et relations similaires. Un objet est une instance d'une classe. Il est important de noter que, dans les langages de programmation orientés objet, on peut confondre les notions d'instance et d'objet. Une instance est une occurrence d'une classe, mais elle peut aussi être une instance d'autres éléments dans UML, comme un lien, qui est une instance d'une association.

Abstraction et Méthodes Abstraites

Dans notre vie quotidienne, nous avons tendance à simplifier les détails pour obtenir une vue d'ensemble, ce qui est également appliqué dans la modélisation orientée objet à travers les classes et méthodes abstraites. Par exemple, une classe représentant une figure géométrique pourrait inclure une méthode pour dessiner cette figure. Si l'implémentation de cette méthode n'est pas définie, elle est qualifiée de « méthode abstraite ».

Par exemple, la image à insérer ici montre une classe FigureGéométrique avec une méthode abstraite "dessiner()". La classe FigureGéométrique est donc abstraite car elle ne fournit pas d'implémentation pour "dessiner". Une classe concrète comme Rectangle devra définir cette méthode pour être considérée comme concrète. Une classe abstraite doit contenir au moins une méthode abstraite. La image à insérer ici illustre une classe abstraite avec ses méthodes abstraites et les implications pour les classes dérivées. Une classe dérivée doit implémenter toutes les méthodes abstraites de sa classe parent, sinon elle restera abstraite.

Nom de la Classe

La création d'une classe peut impliquer plusieurs étapes et contributeurs. Par exemple, une classe peut être dérivée des cas d'utilisation par un analyste-programmeur, puis affinée par un ingénieur de développement avant d'être intégrée dans un paquetage spécifique. Pour refléter ces étapes, le nom de la classe peut inclure des informations telles que le stéréotype, l'auteur, la date, et le statut de validation.

En UML, la syntaxe pour nommer une classe est la suivante : [« stéréotype »] [ ::…:::] [{[abstract],[auteur],[état],…}]. Le nom doit représenter le concept de la classe, commencer par une majuscule, et chaque mot dans un nom composé doit également commencer par une majuscule, sans espaces.

Exemple de quelques class

Encapsulation

L'encapsulation est un principe fondamental, même au-delà de la programmation orientée objet. Ce principe protège les composants internes d'un système contre les accès non autorisés, similaire à un coffre-fort dont seuls les détenteurs de la clé peuvent ouvrir. En modélisation orientée objet, l'encapsulation détermine les niveaux d'accès aux propriétés d'une classe :

  • Public : Visible de partout.
  • Privé : Visible uniquement à l'intérieur de la classe.
  • Protégé : Accessible par la classe elle-même et ses sous-classes.
  • Paquetage : Visible seulement au sein du paquetage où elle est définie.

Par exemple, en Java, les classes sont regroupées dans des paquetages comme java.io pour les entrées/sorties, et java.util pour les utilitaires. Par défaut, la visibilité des classes et de leurs propriétés est limitée au paquetage dans lequel elles sont définies.

 
Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Anti-spam