Modélisation

UML - Modélisation des classes et objets

Cas d'utilisation

Modélisation d'un objet

La modélisation objet consiste à créer une représentation abstraite, sous forme d'objets, d'entités ayant une existence matérielle (arbre, personne, téléphone, ...) ou bien virtuelle (sécurité sociale, compte bancaire, ...). Un objet est caractérisé par plusieurs notions:

  • Les attributs (on parle parfois de propriétés): Il s'agit des données caractérisant l'objet. Ce sont des variables stockant des informations d'état de l'objet
  • Les méthodes (appelées parfois fonctions membres): Les méthodes d'un objet caractérisent son comportement, c'est-à-dire l'ensemble des actions (appelées opérations) que l'objet est à même de réaliser. Ces opérations permettent de faire réagir l'objet aux sollicitations extérieures (ou d'agir sur les autres objets). De plus, les opérations sont étroitement liées aux attributs, car leurs actions peuvent dépendre des valeurs des attributs, ou bien les modifier
  • L'identité: L'objet possède une identité, qui permet de le distinguer des autres objets, indépendamment de son état. On construit généralement cette identité grâce à un identifiant découlant naturellement du problème (par exemple un produit pourra être repéré par un code, une voiture par un numéro de série, ...)
UML propose une manière de représenter les objets de façon graphique, sous forme de rectangle, dans lequel le nom de l'objet est souligné.

représentation d\'un objet avec UML

Les attributs d'un objet

Les attributs (propriétés) d'un objet représentent ses caractéristiques. L'ensemble des valeurs des attributs d'un objet constituent son état. UML propose de représenter les attributs d'un objet et les valeurs associées de la manière suivante :

attributs d\'un objet avec UML

Les liens entre objets

Dans l'approche objet, les objets ne sont pas des corps inertes isolés. Bien au contraire, même s'ils possèdent leurs caractéristiques propres par l'intermédiaire des valeurs de leurs attributs (ce qui constitue ce que l'on appelle l'état), ils ont la possibilité d'interagir entre-eux grâce à leurs méthodes. UML propose de représenter les liens qui existent entre les objets grâce à un trait continu.

liens entre objets avec UML

Un lien existe dès lors qu'un objet possède une visibilité vis-à-vis d'un autre, c'est-à-dire lorsqu'un objet a un rapport direct avec un autre (appartenance, utilisation, communication, ...).

Il est de plus possible d'ajouter des commentaires sur le modèle sous forme de notes. Une note est représentée par un rectangle dont le coin supérieur droit est replié. Pour relier une note à un objet il faut utiliser un trait discontinu (en pointillés).

représentation d\'une note avec UML

Modèlisation d'une classe

On appelle classe la structure d'un objet, c'est-à-dire la déclaration de l'ensemble des entités qui composeront un objet. Un objet est donc "issu" d'une classe, c'est le produit qui sort d'un moule. En réalité on dit qu'un objet est une instanciation d'une classe, c'est la raison pour laquelle on pourra parler indifféremment d'objet ou d'instance (éventuellement d'occurrence).

Une classe est composée:

  • d'attributs: il s'agit des données, dont les valeurs représentent l'état de l'objet
  • Les méthodes : il s'agit des opérations applicables aux objets

Si on définit la classe voiture, les objets Peugeot 406, Volkswagen Golf seront des instanciations de cette classe. Il pourra éventuellement exister plusieurs objets Peugeot 406, différenciés par leur numéro de série.

Mieux, deux instanciations de classes pourront avoir tous leurs attributs égaux sans pour autant être un seul et même objet (c'est la différence entre état et identité). C'est le cas dans le monde réel, deux T-shirts peuvent être strictement identique (avoir le même état) et pourtant ils sont distincts (ils ont chacun leur identité propre). D'ailleurs en les mélangeant il serait impossible de les distinguer...

Une classe se représente avec UML sous forme d'un rectangle divisé en trois sections. Le premier contient le nom donné à la classe (non souligné). Les attributs d'une classe sont définis par un nom, un type (éventuellement une valeur par défaut, c'est-à-dire une valeur affectée à la propriété lors de l'instanciation) dans le second compartiment. Les opérations sont répertoriées dans le troisième volet du rectangle.

Modélisation d\'une classe avec UML

La visibilité des attributs

L'un des principaux concepts du paradigme objet est l'encapsulation. L'encapsulation est un mécanisme consistant à rassembler les données et les méthodes au sein d'une structure en cachant l'implémentation de l'objet, c'est-à-dire en empêchant l'accès aux données par un autre moyen que les services proposés. L'encapsulation permet donc de garantir l'intègrité des données contenues dans l'objet.

En effet, la programmation orientée objet permet de cacher l'implémentation d'un objet en ne lui permettant d'accèder aux attributs uniquement par l'intermédiaire de méthodes crées à cet effet (on parle d'interface).

Il est ainsi possible de définir des niveaux d'encapsulation, afin de définir le type de classe ayant accès aux attributs.

On parle de niveau de visibilité des éléments de la classe. Ces niveaux de visibilité définissent les droits d'accès aux données selon que l'on y accède par une méthode de la classe elle-même, d'une classe héritière, ou bien d'une classe quelconque. Il existe trois niveaux de visibilité

  • publique: Les fonctions de toutes les classes peuvent accéder aux données ou aux méthodes d'une classe définie avec le niveau de visibilité public. Il s'agit du plus bas niveau de protection des données
  • protégée: l'accès aux données est réservé aux fonctions des classes héritieres, c'est-à-dire par les fonctions membres de la classe ainsi que des classes dérivées
  • privée: l'accès aux données est limité aux méthodes de la classe elle-même. Il s'agit du niveau de protection des données le plus élevé

La notation UML permet de représenter le niveau de visibilité des attributs de façon graphique en faisant précéder le nom de chaque attribut par un caractère représentant la visibilité:

  • + défini un attribut public
  • # défini un attribut protégé
  • - défini un attribut privé

Representation de la visibilité avec UML

Dernière modification le mardi 14 octobre 2008 à 17:40:30.Ce document intitulé « UML - Modélisation des classes et objets » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Meilleures réponses pour « UML Modélisation des classes et objets » dans :
Introduction à UML Voir UML (Unified Modeling Language, que l'on peut traduire par "langage de modélisation unifié) est une notation permettant de modéliser un problème de façon standard. Ce langage est né de la fusion de plusieurs méthodes existant auparavant, et est...
Le mot-clé static ou les attributs et méthodes de classe en POO Voir(NOTE: Cet article explique la signification du mot-clé static au sein d'une classe. La signification de "static" en C n'a par exemple rien à voir.) Vous êtes débutant en programmation orientée objet. En Java, en C++...ou que sais-je encore,...
VBA et les collections d'objets. VoirVBA et les collections d'objets Quand plusieurs (beaucoup de) contrôles sont mis sur une feuille ou un Userform il est parfois fastidieux d'écrire du code dans chaque évènement des contrôles. Ce Tuto vous permet de traiter vos contrôles comme...
[VBA] Collections de classes et collections d’objets VoirCette démo emploi, comme le titre l’indique, des collections différentes. Elle ne comporte que deux séries de cinq contrôles mais peut en gérer beaucoup plus avec le même nombre de lignes de code. Introduction Les contrôles sur une feuille de...
PHP - Les classes VoirLa notion de classe Php3 intègre un soupçon de caractéristiques empruntées aux langages orientés objet, c'est-à-dire la possibilité d'utiliser des objets, entités regroupant des données et des fonctions au sein d'une structure et rendant la...
Java - Les objets VoirLa création d'objets Un objet est une instance de classe, la création d'objets s'appelle donc l'instanciation. Cette instanciation se fait grâce à l'opérateur new suivi du nom de la classe à instancier et de parenthèses contenant les paramètres...
Les objets en langage C++ VoirLa création d'objets En C++, il existe deux façons de créer des objets, c'est-à-dire d'instancier une classe : de façon statique de façon dynamique La création statique La création statique d'objets consiste à créer un objet en lui affectant un...