Modélisation du domaine

Introduction

Nous allons maintenant nous intéresser aux diagrammes de classes. Ils servent à modéliser, à représenter un système dans sa globalité afin d'en comprendre le but. Alors que le diagramme de cas d'utilisation montre un système du point de vue des acteurs, le diagramme de classes en montre la structure interne. Il permet de fournir une représentation abstraite des objets du système qui vont interagir pour réaliser les cas d'utilisation.

Notions

  • Classe : description formelle d'un ensemble d'objets (ou entité fonctionnelle) ayant une sémantique et des caractéristiques communes.

  • Instance de classe : objet avec un comportement et un état, tous deux définis par la classe. Il s'agit donc d'un objet constituant un exemplaire de la classe.

  • Attribut : une des propriétés d'une classe. L'ensemble de ses attribut représente sont état.

  • Méthode : les méthodes forment les comportement de la classe. Elles permettent de décrire la façon dont est traité l'objet instancié de la classe.

À noter : une erreur courante est de créer une classe pour chaque cas d'utilisation d'un système alors que se seront des ensembles de classes et les relations entre elles qui vont permettre la réalisation d'un cas d'utilisation.

Première approche

Nous sommes mis dans la situation d'un éditeur de presse, dont il possède une liste d'abonné avec son adresse postale. Une de ces adresses se présente comme telle :

41, bd Napoleon III
06206 Nice Cedex 3
France

Plusieurs représentation, autrement dit découpage, de l'adresse sont possibles : réunir ville et code postal par exemple, ou découper la ville en quartier s'il y a des arrondissements, etc… Nous sommes face à plusieurs situations que voici :

  • Envoyer un courrier postal à tous les abonnés ;
  • Visualiser les abonnés sur une carte du monde ;
  • Visualiser les abonnés en France par département ;
  • Etablir des statistiques en fonction des quartiers de Nice ;
  • Connaître le nombre de villes différentes dans lesquelles habitent des abonnés.

Passer la souris sur une des situations pour en voir la représentation

Lorsque l'on veut modéliser un système au travers de classes, la détermination de ceux-ci se base sur les cas d'utilisation conçu au préalable. En effectuant une analyse grammaticale de la description textuelle d'un cas d'utilisation, on peut généralement arriver à distinguer les attributs et méthodes. Les noms représentent des concepts ou des attributs tandis que les verbes représentent des comportements qui se traduiront en méthodes.

Règle utile : Le modèle du domaine se construit de la même façon qu’un cartographe dessine une carte :
  • En utilisant le vocabulaire du domaine étudié.

  • En excluant les éléments non pertinents.

  • En n’incluant pas d’éléments inexistants dans le domaine modélisé.


Exercices d'entraînements

Le jeu d'échec

Le but de cet exercice est donc de modéliser, dans un diagramme de classe, le jeu d'échecs. Au vu de sa complexité, nous allons étudier seulement quelques concepts que le jeu implique, que voici :

Description initiale : Le jeu d'échec

  1. Un jeu d'échec se joue à deux joueurs sur un échiquier carré composé de 64 cases, alternativement noires et blanches.
  2. Chaque joueur possède initialement 8 pions, un roi, une dame, deux tours, deux fous et deux cavaliers. Un pion peut devenir une dame, une tour, un fou ou un cavalier, on dit qu'il est promu.
  3. Il y a au maximum une pièce par case.
  4. On peut déplacer toutes les pièces, mais en fonction de la pièce le déplacement autorisé est différent.
  5. Une tour peut roquer
  6. Une partie est une suite ordonnée de coups : les joueurs jouent alternativement chacun leur tour.

Questions à se poser :Cliquez sur une des question pour en voir la réponse.

  • Quels sont les concepts ?

  • Quelles sont les relations entre les concepts ?

  • Y a-t-il des attributs ou des opérations ?


Diagramme de classe du jeu d'échec :


La galerie d'art

Après le jeu d'échec, nous allons continuer la modélisation de la galerie d'art initiée avec le diagramme de cas d'utilisation. Quelques informations sont ajoutés :

Description complémentaire : La galerie d'art

Sur un artiste nous disposons actuellement des informations suivantes :
  • Date de naissance de l’artiste
  • Nom, prénom, email
  • Son âge
  • Une photo de l’artiste
  • La liste de ses oeuvres en précisant les oeuvres à la vente ou non.
Pour chaque « œuvre» nous avons les informations suivantes :
  • L’artiste auquel appartient l’oeuvre
  • Type de l’œuvre (peinture ou sculpture)
  • Texte de description
  • 1 à 3 photos en petit format (150×150 max) par œuvre et leur titre

Passer la souris sur une des informations pour en voir l'application.


Diagramme de classe de la galerie d'art :


Lorsque une classe (fille) hérite d'une autre (mère), la classe fille hérite de tous les attributs et méthodes, qu'ils soient publics, protégés ou privés. Afin de terminer s'il y a relation d'héritage, on peux se poser la question suivante : ma classe est-elle un modèle (moule) d'une autre ? A est un B ? Par exemple : une voiture est un véhicule (Voiture hérite de Vehicule), un diplodocus est un dinosaure (Diplodocus hérite de Dinosaure), et enfin un pion est une pièce (du jeu d'échec).

Une association est une connexion sémantique entre deux classes, une relation logique. Une association peut être nommée afin d'indiquer la nature de la relation. On peut y déterminer une multiplicité et navigabilité. Par exemple, un joueur est associé à 16 pièces du jeu d'échec, ou encore une personne travaille dans une entreprise.

Lorsque l'on souhaite modéliser une relation tout/partie où une classe constitue un élément plus grand (tout) composé d'éléments plus petits (partie), il faut utiliser une agrégation. Une agrégation est une association qui représente une relation d'inclusion structurelle ou comportementale d'un élément dans un ensemble. On peux aussi la représenter par une relation de subordination. Attention, si l'on ne peux pas dire que une classe B ne peut exister sans classe A, alors il y a relation de composition et non d'agrégation.

La composition est une agrégation forte (agrégation par valeur). Les cycles de vies des composants (instances des classes) et de l'agrégat sont liés : si l'agrégat est détruit (ou copié), ses composants le sont aussi. Exemple : la classe Mur est composé de classes Briques. Si l'on détruit la classe Brique, il ne peux plus y avoir de Mur.