🖨️ Version PDF
On vous demande de développer une application nommée VideoLocaTout permettant de gérer la location des films.
Le magasin loue des supports physiques de films :
Chaque Film peut exister sur plusieurs supports (en plusieurs exemplaires par support). Cette liste n’est pas exhaustive compte tenu de l’évolution technologique. Il faut pouvoir ajouter de nouveaux supports dans les années futures.
Les Recherches peuvent se faire au comptoir par le vendeur ou via une borne interne du magasin. Les critères sont les suivants :
Les Paiements se font en Espèces, Carte bancaire (puce/sans-contact), Wallet mobile, Chèque (plus rare). Un paiement peut être mixte.
Le vendeur doit pouvoir effectuer :
Concernant l’inventaire : le vendeur du magasin souhaite pouvoir afficher le total des prix d’achat des exemplaires par type de support puis par année d’achat en excluant les supports dégradé.
Concernant les statistiques : il doit pouvoir afficher les locations par genre, par type de support et par film. Pour la Disponibilité : si aucun exemplaire d’un film n’est disponible, il faut afficher la prochaine date de retour estimée (maximum des dates prévues sur les locations en cours).
Travail à faire :
Enregistrer location
Nous avons 2 acteurs :
Principaux use cases :
Objectif : Louer un ou plusieurs exemplaires pour un Client et encaisser le paiement
Acteur principal : Vendeur
Acteur secondaire : Client (sauf si borne)
dateRetourPrevue
nbJoursCalcule
Alternative 3a : Aucun exemplaire dispo : Le système propose la prochaine date de retour estimée Alternative 6a : La Caution est déjà active donc réutilisation Alternative 7a : Paiement partiel en plusieurs modes : plusieurs Paiement Alternative 0a : Le Client est bloqué : Refus de location + liste des retards
Principales entités :
Client
Location
LigneLocation
Film
Personne
Genre
SupportType
Exemplaire
Paiement
Caution
InventaireLigne
Réalisé avec PlantUML :
Autre proposition plus basique réalisée avec WinDesign :
Dans ce diagramme ci-dessous, je n’ai pas mis les Enum ni ce qui concerne le paiement.
On suppose ici, que c’est le vendeur qui enregistre la location et non le Client en passant par une borne. Comme vous le constatez, on formalise les actions par des méthodes avec ou sans arguments. Nous percevons les flux bidirectionnels entre les différents composants.
Le diagramme d’activité est assez facile à comprendre, il rappelle les organigrammes utilisés en programmation.
En revanche, le diagramme d’Etats n’est pas toujours facile à lire suivant le cas. Il montre bien les différents états d’un Exemplaire (Disponible, Indisponible, Loué ou Dégradé). On peut y préciser les méthodes qui modifierons son état en fonction de la situation.
Ce diagramme peut varier en complexité suivants les composants utilisés.
Ici, on le découpe de la manière suivante :
Ici avec ce diagramme nous arrivons dans la partie physique de la mise en place de notre système.
Exemple d’un diagramme de flux (hors UML) en imaginant 3 acteurs (Loueur, Cinéphile ou vendeur et Gérant)