Avertissement :

Cet exercice s'inscrit dans la phase d'apprentissage de la notation UML relative aux diagrammes de classes.
Limité dans ses objectifs, il s'intéresse uniquement aux relations de généralisation et d'association, occultant, pour l'occasion, la partie comportementale (:-(. Pour ce faire, nous avons choisi des situations mettant en œuvre des objets supposés connus de tous. Le résultat est une vue statique en phase d'analyse, naturellement sujet aux changements en début du cycle de vie d'un projet.


   Soient les relations entre classes : généralisation, association, agrégation et composition.

   Déterminez le type de relation utilisé dans chacune des descriptions suivantes, puis représentez-les sous forme de diagramme de classes :


Olivier Capuozzo
Lycée Léonard de Vinci 77000 Melun
kpu@compuserve.com

Ont collaboré :
- Patrice Grand, Lycée Voillaume - 93 - Aulnay-sous-Bois
- Michel Auguste, Réseau CERTA, IUFM de Bourgogne - 21 - Dijon
- Laurent Berndt, Lycée Merleau-Ponty - 17 - Rochefort



 
 
 

Propositions de solution


Un fichier est un ensemble ordonné d'octets.
 

Un fichier est composé de zéro (fichier vide), un ou plusieurs octets.
Un octet donné, instance de la classe Octet, appartient à un et un seul fichier.
Le type de relation utilisé entre fichier et octet est donc la composition.
Généralement, les octets sont ordonnés. L'état d'un fichier est fonction de la valeur de chacun de ses octets et de leur ordonnancement, d'où la mention de la clause ordered.
 

retour


Certains jeux vidéos se pratiquent en réseau.


Un jeu vidéo en réseau est une sorte de jeu vidéo. On dit que la classe JeuVidéoRéseau spécialise la description de la classe JeuVidéo. Vu autrement, JeuVidéo est une généralisation de JeuVidéoRéseau.

retour


Dans un diagramme de cas d'utilisation, il y a au moins un acteur et un cas d'utilisation.
 

Un diagramme de cas d'utilisation est composé de cas d'utilisation et d'acteurs. Nous avons affaire à une agrégation. Est-ce une composition ? Non, car un acteur (resp. un cas d'utilisation) peut participer à d'autres diagrammes.

retour


Du point de vue d'un responsable d'examens, le BTS IG comporte deux options : DA et ARLE.



 

Diagramme de classes Diagramme d'objets

Les brevets de technicien supérieur (BTS) sont composés de zéro, une ou plusieurs options. Une option est spécifique à un BTS (composition).
BTS IG est une instance de la classe BTS.
Les options DA et ARLE sont des instances de la classe Option.

Remarque : D'un point de vue métier, la relation entre BTS IG et les options s'apparente à un héritage.

Cette remarque, due à Michel Auguste, montre bien l'importance de clarifier les points de vue en phase d'analyse.

À titre d'exemple, voici comment Patrice Grand propose de représenter le point de vue d'un professionnel de l'informatique (et non d'un administrateur d'examens) : deux sous-classes (une par option) qui affinent la classe de base BTS IG.

BTS option DA - développeur - (resp. ARLE - Adm. de réseaux) spécialise le BTS IG.
La classe BTS Info. de Gestion est une classe abstraite.

Remarque : Dans la première version, ce sont les instances qui "représentent le réel".
La seconde version donne une vision plus descriptive (statique) du réel.
retour


Un étudiant obtient une note aux épreuves auxquelles il se présente.


 

Evaluation est une classe-association. Une classe-association réifie une association n-aire.
Ici, la classe Evaluation est porteuse de la propriété note.
 
 

retour


Toute boîte de dialogue est au moins munie d'un bouton spécial appelé bouton de fermeture.


 

En général, la vie des boutons présents dans une boîte de dialogue suit la vie de cette boîte : ils sont créés en même temps que la boîte et disparaissent avec elle. C'est donc bien une composition.
Un bouton de fermeture est une sorte de bouton.

Patrice Grand fait remarquer que d'un point de vue sémantique il y aurait peut-être à redire.
Voici une lecture possible du diagramme de classes proposé  :
"Une boîte de dialogue peut ne pas contenir de bouton, mais contient au moins un bouton de fermeture qui est un bouton".
Il faut savoir ! Elle contient ou elle ne contient pas de boutons ? la boîte...

Voici donc une autre modélisation, sémantiquement plus correcte, mais plus verbeuse à cause de la contrainte.


 

Finalement Michel Auguste propose une solution bien meilleure (sans intervention de contraintes OCL) :

retour



 

Un projet informatique nécessite des ressources humaines, parmi lesquelles des développeurs.

Un développeur est une sorte de ressource humaine (pas une machine :-) mise à la disposition d'un ou plusieurs projets. Un projet a vocation à disposer de ressources (agrégation).

Une (même) ressource peut participer à plusieurs projets (donc ce n'est pas une composition).

retour