Exercice UML corrigé les relations simples

1. Cet exercice met  en évidence l’association multiple  entre  deux classes et la nécessité d’ajouter une contrainte (mécanisme d’extension d’UML) pour exprimer le fait que le rôle d’une personne à l’université est étudiant  ou bien professeur. Seuls les noms des deux classes, des deux associations et la contrainte entre associations apparaissent dans la solution. En effet, vu les informations disponibles dans l’énoncé et l’objectif de la modélisation (mettre  en évidence les relations entre classes), il est inutile d’ajouter d’autres informations.

Exercice UML

2. Il s’agit de représenter à la fois les détails d’une classe et ses liens avec une autre classe. La classe principale à modéliser est la classe Rectangle. Elle est associée à la classe Point qui joue le rôle de « côté » dans l’association avec la classe Rectangle. En l’absence d’informations complémentaires permettant, en particulier, de savoir l’utilité de modéliser la classe Point, vous pouvez  proposer deux solutions, l’une faisant apparaître uniquement la classe Rectangle, et l’autre, plus détaillée, faisant apparaître les classes Rectangle et Point.

Cela dit, si seule la classe Rectangle est représentée, vous perdez l’information sur l’association du point vers le rectangle. Cela correspond à une modélisation d’une association unidirectionnelle de Rectangle vers Point alors que cette information n’est pas disponible directement dans l’énoncé. Ce choix peut être justifié par l’objectif de la modélisation et par le choix de l’implémentation (pour  l’implémentation de l’association, un attribut point sera ajouté dans Rectangle).

Exercice UML

3. Les deux classes principales  sont  Écrivain et Œuvre. Une association  bidirectionnelle nommée posséder relie les deux classes. Les œuvres sont ordonnées selon la date de publication. Ajoutez donc l’attribut datePublication de type Date dans Œuvre et la contrainte {ordered} du langage OCL. Celle-ci signifie que les œuvres sont ordonnées.  Pour indi- quer que l’écrivain est précoce, ajoutez un commentaire en langage naturel sous forme de note. Cette note peut préciser également le critère utilisé pour l’ordonnancement. Il est aussi nécessaire d’ajouter deux attributs dans la classe Écrivain dateDeNaissance de type Date et /précoce de type Boolean. L’attribut /précoce est un attribut dérivée de l’association entre écrivain et œuvre. Par ailleurs, la multiplicité du côté de l’écrivain n’est pas précisée car celle-ci n’est pas indiquée dans l’énoncé.

LIRE AUSSI :  Exercice UML corrigé étude de cas distributeur automatique de billets

uml77

4. La lecture du texte permet de sélectionner les classes candidates suivantes:  FacteurCourrierHabitantZoneDAffectationLettreBoîteAuxLettresColisDestinataire.

La rédaction d’une liste de classes candidates intervient en phase d’analyse préliminaire. L’objectif est de dégager les principaux concepts à partir de l’analyse fonctionnelle. Les phases d’analyse et de conception permettent de sélectionner  les classes qui apparaîtront  dans le diagramme de classes. Pour trouver les candidates, il faut recourir à un expert du domaine, consulter le cahier des charges du client et parfois tenir compte du langage d’implémentation qui sera utilisé pour la réalisation (notamment pour les classes utilitaires).

Si la modélisation  concerne la mise en évidence du lien entre le facteur et les habitants ainsi que la zone d’affectation du facteur, vous pouvez proposer la solution qui suit :

•   La classe BoîteAuxLettres n’est pas pertinente.  Elle ne fera pas partie du diagramme de classes.

•   Un colis et une lettre sont des courriers particuliers.

•   Le destinataire est le rôle d’un habitant quand il reçoit un courrier. Il ne sera pas représenté par une classe.

•   Un facteur dessert une zone d’affectation qui abrite plusieurs habitants.

•   Le seul lien entre le facteur et l’habitant est la distribution  du courrier (classe-association).

Relations simples

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *