Version corrigée
Cette version comporte des indications pour les réponses aux exercices. |
PreReq |
|
ObjTD |
Je réalise un Diagramme des Classes à partir d’une description textuelle. Je suis capable de modéliser les données manipulées par une organisation |
Durée |
1 séance de 1,5h (si TD précédent fini) |
1. Diagrammes simples
1.1. Enoncés
Réalisez les diagrammes de classes permettant de capturer les contraintes suivantes (chaque énoncé est indépendant, sauf mention contraire) :
-
Des sociétés (employeurs) emploient des personnes (employés). On souhaite conserver la date d’embauche ainsi que le salaire actuel de chaque employé de chaque société, ainsi que la relation qui relie une personne (subalterne) à son supérieur hiérarchique direct éventuel.
-
Comment modifier le diagramme précédent pour pouvoir stocker les différents salaires (historique) ?
-
Une maison peut être louée par une personne, et est possédée par un propriétaire (une personne également)
-
Une revue paraît chaque semaine et est disponible dans plusieurs points de vente. On souhaite suivre la quantité vendue chaque semaine pour chaque point de vente.
1.2. Correction
1.2.1. Sociétés
1.2.2. Sociétés historique
Nous devons rajouter une variable pour différencier les différents emploi d’une même personne dans une même entreprise.
Ceci peut se faire de deux manières:
-
La classe-association devient une vraie classe, avec un nouvel identifiant
idEmploi
. Cette classe a deux relations1..*
versSociété
etPersonne
et conserve sa relation reflexive. Le standard UML est respecté, et c’est ce qu’on retrouve souvent en implémentation. -
Nous rajoutons un identifiant
numEmploiPersEnt
dans notre classe-association. Ce n’est pas standard UML.
La vraie notation UML est d’ajouter {bag} sur les deux relations de la classe-association, mais nous ne demandons pas de telle connaissances dans le cadre de ce cours.
On se retrouve alors dans le cas n°2 ci-dessus (dans une base de données relationnelle, clé primaire sur 3 champs).
Pour plus d’informations, vous pouvez chercher sur Internet les mots-clés : UML bag, ordered, sequence.
|
1.2.3. Maison
1.2.4. Revue
2. Société canine
2.1. Compte-rendu d’interview
Une société canine veut répertorier, pour une année donnée, les chiens de race et leurs classements aux divers concours organisés dans certaines grandes villes. Chaque ville ne peut en organiser qu’un seul.
Chaque chien est identifié par un numéro et appartient à une race bien précise.
On veut pouvoir obtenir, entre autres, les informations suivantes :
-
Nom et adresse du propriétaire d’un chien donné, ainsi que la date depuis laquelle il l’a en sa possession (une personne possède 10 chiens au plus).
-
Nom, date de naissance, sexe et race d’un chien donné.
-
Liste des concours auxquels un chien donné a participé (10 maximum) et les classements obtenus.
-
Liste des différentes races.
-
Liste des chiens ayant participé à un concours donné.
-
Liste des concours, avec la ville organisatrice et la date.
Toutes les informations ci-dessus ne concernent pas exclusivement le diagramme de classes. Faites le tri. |
2.2. Travail à réaliser
-
Concevoir le Diagramme des Classes (DC) prenant en compte ces informations en supposant qu’on se place en fin d’année et qu’aucun chien n’a changé de propriétaire.
-
Compléter le DC si on veut prendre en compte le palmarès obtenu par tout chien sélectionné. Le propriétaire du chien gagne une prime qui ne dépend que du palmarès obtenu (ex : 1000 € pour une médaille d’or). Ce palmarès peut être : médaille d’or, d’argent, de bronze, 1er prix, 2ème prix, accessit …).
2.3. Correction
2.3.1. diagramme de classes
On peut rajouter une classe d’association entre Chiens et Propriétaires ayant pour attribut dateAchat, et supprimer celui de Chiens.
On peut également faire une classe Ville qui permettra de mieux caractériser la contrainte "Chaque ville ne peut en organiser qu’un seul [concours]".