Design pattern – td n°1 : architecture de programme - téléch

TD sur les Design Patterns : Architecture Logicielle pour un Distributeur de DVD et une Simulation de Fourmilière

Contexte et Objectifs

Ce TD vise à comprendre l'importance d'une réflexion approfondie avant de coder. L'objectif est de concevoir une architecture logicielle sur papier, en anticipant les évolutions possibles et en posant des questions au client (ici, le professeur) pour valider les besoins.

Exercice 1 : Distributeur de DVD

Vous êtes chargé du développement d'un logiciel pour un distributeur de DVD avec les fonctionnalités suivantes :

  • Un client peut louer une cassette pour 24h au prix de 2 euros via un écran vidéo et un clavier, en s'identifiant avec son numéro de client (unique) et son mot de passe.
  • Le client doit rendre sa cassette à temps sous peine d'une pénalité de 0,5 euro par jour de retard.
  • Un film peut être disponible en plusieurs exemplaires. La liste des films doit afficher :
    • Le nombre d'exemplaires disponibles à l'instant.
    • Le nombre total d'exemplaires existants initialement.
  • Pour payer, le client doit entrer un numéro de carte de crédit (toujours valide).
  • Les films doivent être listés par titre en ordre alphabétique, avec les attributs suivants : titre, date de sortie en salle et type.

En binôme, proposez une architecture de programme pour la machine de location incluant :

  • Un menu général permettant au client de :
    • Consulter la liste des films disponibles.
    • Louer un film (entrée du numéro de carte de crédit obligatoire).
    • Rendre un film (affichage des pénalités de retard, prélèvement sur la carte).
  • Une structure de classe basée sur les données fournies en classe (exemples de cartes à utiliser).

Exercice 2 : Implémentation et Tests

Codez l'architecture retenue en binôme et testez-la (30 minutes disponibles).

Incluez dans votre base de données :

  • 5 films avec leurs attributs.
  • 3 clients avec leurs identifiants.

Exercice 3 : Évaluation Collaborative

Échangez votre programme avec un autre binôme et commentez leur architecture de classe. Suivez les instructions supplémentaires pour cette étape.

Exercice 4 : Récupération et Finalisation

Récupérez votre programme initial. Attendez les instructions supplémentaires pour la suite.

Exercice 5 : Simulation de Fourmilière

Concevez une architecture logicielle pour simuler le comportement d'une fourmilière dans un environnement représenté par un tableau 2D avec :

  • Une case fourmilière (point de départ et de retour des fourmis).
  • Des cases nourriture (distribuées aléatoirement).

Règles du comportement :

  • La fourmilière commence avec 10 fourmis.
  • À chaque tour, une fourmi peut :
    • Se déplacer d'une case (choisie aléatoirement).
    • Ramasser de la nourriture et retourner immédiatement à la fourmilière.
  • Après 20 tours, la nuit tombe et 4 chauves-souris apparaissent sur le plateau (emplacements aléatoires).
  • Pendant 5 tours, les chauves-souris se déplacent aléatoirement. Si elles tombent sur une case avec une ou plusieurs fourmis (hors fourmilière), ces dernières meurent.
  • Au retour du jour (après 5 tours), les chauves-souris disparaissent et les comptes suivants sont établis :
    • Fourmis qui meurent = MAX( (Nombre de fourmis sur le plateau - Quantité de nourriture ramenée dans la fourmilière) , 0).
    • Fourmis qui naissent dans la fourmilière = MAX( (Quantité de nourriture ramenée dans la fourmilière - Nombre de fourmis sur le plateau) * 2 , 0).
    • Nouveau stock de nourriture dans la fourmilière = MAX( (Quantité de nourriture ramenée dans la fourmilière - Nombre de fourmis sur le plateau) , 0).

L'architecture doit être flexible pour s'adapter aux changements de besoins du client.

FAQ

1. Comment gérer les exemplaires multiples d'un film dans le distributeur de DVD ?

Utilisez une classe Film contenant un titre, une date de sortie et un type, ainsi qu'un attribut pour le nombre total d'exemplaires. Une autre classe Exemplaire peut gérer l'état de disponibilité (disponible/emprunté) et le suivi des locations.

2. Quels éléments prioriser dans l'architecture de la fourmilière ?

Concentrez-vous sur les classes Fourmi, Nourriture, ChauveSouris et Environnement (tableau 2D). Assurez-vous que les déplacements et interactions (ramassage, prédation) sont modélisés de manière claire et séparable.

3. Comment simuler les tours de jeu dans la fourmilière ?

Utilisez une boucle principale contrôlée par un compteur de tours. À chaque itération, appelez les méthodes de déplacement ou de ramassage des fourmis, puis vérifiez les conditions pour la nuit et les chauves-souris.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne