====== TD8 : Synthèse des TDs et préparation à l'examen ======
Nous sommes une agence de transports et nous avons deux sociétés de transports FedUT, DHLUT. Votre rôle est d'informatiser notre agence.
Il s'agit d'être capable de recevoir des ordres de transport d'un entrepôt X à une adresse Y d'un colis de référence Z : X, Y, Z sont données à l'émission de l'ordre de transport. En réponse à un ordre de transport, le système renvoie au demandeur un ticket de suivi qui contient le numéro pour suivre le colis et la date prévue de livraison. Dans le même temps, un ticket de retrait est émis auprès de l'entrepôt. L'ordre de transport complété par toutes ces informations est mémorisé.
Le choix de la société de transport se fait en fonction de la date de livraison prévue, en choisissant celle qui propose une date au plus tôt.
Pour la société FedUT, la date prévisible de livraison est calculée en sélectionnant la prochaine date libre de retrait (un par jour ;-)) et en ajoutant 2 jours. Pour la société DHLUT la date prévisible de livraison est calculée en fonction des disponibilités des camions.
Un camionneur signale au système, en précisant le numéro de suivi du colis, le retrait ou la livraison du colis dont il a la charge.
Un client peut demander l'état de sa livraison : //prévue, en cours, réalisée//.
L'administrateur peut annuler par l'interface un ordre de transport qui n'est pas en cours.
Notre agence veut visualiser "à la volée" les ordres passés. Voici un exemple de la trace que peut visualiser la vue. L'interface se met à jour automatiquement à chaque changement d'état d'un ordre de transport.
Vue générale de l'AGENCE
OrdreTransport 0 [ -- DHLut , dateLivraison=3, etat=prevue, depart=nice, livraison=sophia, colisDesc=lecteur dvd]
OrdreTransport 1 [ -- DHLut , dateLivraison=3, etat=prevue, depart=nice, livraison=cannes, colisDesc=lunettes 3D]
OrdreTransport 1 [ -- DHLut , dateLivraison=3, etat=en_cours, depart=nice, livraison=cannes, colisDesc=lunettes 3D]
OrdreTransport 2 [ -- FedUt , dateLivraison=3, etat=prevue, depart=nice, livraison=cannes, colisDesc=Pc]
OrdreTransport 1 [ -- DHLut , dateLivraison=3, etat=realisee, depart=nice, livraison=cannes, colisDesc=lunettes 3D]
OrdreTransport 3 [ -- DHLut , dateLivraison=4, etat=prevue, depart=nice, livraison=cannes, colisDesc=TV]
OrdreTransport 0 [ -- DHLut , dateLivraison=3, etat=realisee, depart=nice, livraison=sophia, colisDesc=lecteur dvd]
Suppression de OrdreTransport 3 [ -- DHLut , dateLivraison=4, etat=prevue, depart=nice, livraison=cannes, colisDesc=TV]
OrdreTransport 4 [ -- DHLut , dateLivraison=4, etat=prevue, depart=nice, livraison=Antibes, colisDesc=PlayStation]
- Modélisez l'application en utilisant tous les diagrammes qui vous semblent utiles. Vous devez couvrir l'ensemble de l'application. On attend des diagrammes de niveau conception à la fin, i.e. les associations entre classes sont orientées, les noms des rôles définis, les multiplicités définies.
- Donnez le code de création d'un ordre de transport "général". Donnez également les codes correspondant pour les deux sociétés. Pour les dates, travaillez seulement sur des entiers (numero du jour dans l'année courante), et pour la disponibilité des camions considérez que vous n'avez que deux camions et qu'ils font une seule livraison par jour.
- Précisez les patterns utilisés : pour chaque pattern identifié, montrer le rôle joué par chacune des classes et méthodes.
- Si on vous demande d'enrichir l'application en gérant des ordres de transport de produits fragiles, très rapides, en recommandé, ... quel pattern utiliseriez vous?
* Mettez un mail à votre encadreur avec soit l'adresse où récupérer le TD soit le TD lui-même
* Dans votre répertoire de projet :
- Un document contenant
* votre modèle final (Tout le monde n'aboutit pas au même modèle, c'est certain) (merci de l'intégrer dans un document pour que nous n'ayons pas à ouvrir différents modèles dans différentes versions de l'outil).
- Les codes et les tests.