Médiathèque

[40 minutes]

Une médiathèque veut s'informatiser pour gérer plus efficacement son catalogue, contenant des livres, des films, et des albums de musique.

Les informations à enregistrer pour les livres sont : les titres, le (ou les) auteur(s), la date de parution, l'éditeur, la date d'impression et le nombre de pages. Les informations à enregistrer pour les films sont : le nom, le (ou les) réalisateur(s), au maximum six acteurs ayant joué dans le film avec leur rôle (il peut n'y avoir aucun acteur), le studio de production et la date de sortie. Les informations à gérer pour les albums sont : le nom de l'album, l'auteur, la maison de production, l'année de sortie, et les supports disponibles à la médiathèque (CD et/ou vinyle).

Pour chaque auteur, réalisateur, acteur ou musicien d'une œuvre, on veut gérer son nom, son prénom, son ou ses noms d'artiste (s'il en a), et sa date de naissance. Un album de musique peut avoir pour auteur :

  • un artiste (ex : Jimmy Hendrix, Mozart),

  • ou un groupe (ex : les Rolling Stones ou Franz Ferdinand) dont on gérera le nom, l'année de formation, et les informations sur les différents membres.

Livres, films et albums sont identifiés de manière unique (un film ne peut pas avoir le même identifiant qu'un album) par un code interne à la médiathèque. On veut aussi pouvoir gérer les adaptations cinématographiques (quels films sont les adaptations de quels livres). On veut enfin pouvoir retrouver facilement la BO correspondant à un film donné (la bande originale est l'album de musique du film).

Question

Réalisez un package permettant de modéliser en UML le catalogue de la médiathèque.

Solution

Package Catalogue
Remarque
  • Il est obligatoire de nommer toutes les associations (sauf compositions, agrégations et héritages).

  • Le nom d'artiste aurait pu être posé en attribut multivalué

  • L'agrégation est utilisée ici (losange blanc) : ce type d'association est différent d'une composition (il n'y a pas de relation de dépendance entre le composé et la composant) et se traite comme une association classique, avec une terminologie un peu plus précise (notion de tout-partie).

  • On pose comme hypothèse :

    • qu'un film peut être l'adaptation de plusieurs livres à la fois (par exemple deux volumes d'une série).

    • qu'un film peut avoir plusieurs BO (soit en plusieurs volumes, soit des versions remixées ou harmoniques, par exemple).

Conseil

On préférera la notation {key} plutôt que # pour repérer les clés.

La médiathèque s'étend sur trois étages, chacun comprenant plusieurs rayons à thème (Romans Contemporains, Musique Classique, etc.). Certains de ces rayons peuvent comprendre à la fois des albums, des livres et des films (comme le rayon Science Fiction, ou le rayon Thriller). Dans un rayon, les œuvres centrales ou récentes sont disposées sur des présentoirs (chacun pouvant recueillir un certain nombre d'œuvres : films, livres et/ou albums), tandis que les autres sont rangées sur des étagères identifiées par un code particulier. Chaque étagère peut comprendre un certain nombre d'œuvres, mais d'une seule catégorie (on a des étagères de livres et des étagères d'albums, mais pas d'étagères comprenant à la fois des livres et des albums).

Question

Réalisez un second package permettant de modéliser l'organisation de la bibliothèque et de ses moyens de rangement.

Solution

Package Organisation
Remarque
  • On a pris ici comme hypothèse que les rangements étaient mobiles, et donc indépendants des rayons (d'où l'agrégation et non la composition).