Objet, Classe, Hritage, Encapsulation, Polymorphisme Collection, Exceptions, Entres Sorties, Interface graphiques Problme : On souhaite crer une application java qui permet grer une socit de transport de cargaisons transportant des marchandises. La socit gre un ensemble de cargaisons. Chaque cargaison contient plusieurs marchandises. Chaque marchandise est dfinie par son numro, son poids et son volume. Il existe deux types de cargaisons : Routire et Arienne. Chaque cargaison est dfinie par sa rfrence et sa distance de parcours. Le cout de transport dune cargaison est calcul en fonction du type de la cargaison. Pour une cargaison arienne est une cargaison dont le cout est calcul selon la formule suivante : cout=10 x distance x poids total des marchandises si le volume total est infrieur 80000 cout=12 x distance x poids total des marchandises si le volume total est suprieur ou gal 80000 Une cargaison routire est une cargaison dont le cout est calcul selon la formule suivante : cout=4 x distance x poids total si le volume total est infrieur 380000 cout=6 x distance x poids total si le volume total est suprieur ou gale 380000 Pour chaque cargaison, on souhaite ajouter une marchandise, supprimer une marchandise, consulter une marchandise sachant son numro, consulter toutes les marchandises de la cargaison, consulter le poids total de la cargaison, consulter le volume total de la cargaison et consulter le cout de la cargaison. Cette application peut tre utilise par les clients et les administrateurs. Le client peut effectuer les oprations suivantes : Consulter une cargaison sachant sa rfrence. Consulter une marchandise sachant son numro. Lire le fichier Cargaisons. Consulter toutes les cargaisons. Ladministrateur peut effectuer toutes les oprations effectues par le client. En plus, il peut : Ajouter une nouvelle cargaison. Ajouter une marchandise une cargaison. Supprimer une cargaison Enregistrer les cargaisons dans un fichier. Toutes les oprations ncessitent une authentification Questions : 1- Etablir un diagramme Use case UML. 2- Etablir le diagramme de classes en prenant en considration les critres suivants. La classe SocieteTransport devrait implmenter les deux interfaces IClientTransport et IAdminTranport dclarant, respectivement les oprations relatives aux rles Client et Admin. Dans une premire implmentation de SocieteTransport, on suppose que les cargaisons sont stockes dans une liste de type HashMap de la classe SocieteTransport. Dans une deuxime implmentation, nous supposerons que les cargaisons et les marchandises sont stockes dans une base de donnes relationnelle. 1/2
TD POO JAVA
M.Youssfi
Lassociation entre cargaison et Marchandise est bidirectionnelle.
3- Ecrire le code java des classes entits Marchandise, Cargaison, CargaisonRoutire et CargaisonArienne 4- Ecrire le code java des deux interfaces IClientTransport et IAdminTransport 5- Crer une premire implmentation java de ces deux interfaces 6- Etablir un diagramme de squence puis crer une application java de type console qui permet de raliser les oprations suivantes : Crer une instance de SocieteTransport pour un administrateur. Ajouter trois cargaisons routires et une cargaison arienne socit de transport : CR1 , CA1 et CR2 Ajouter 3 marchandises la cargaison dont la rfrence est CR1 (Numros 1, 2, 3) Ajouter 2 marchandises la cargaison dont la rfrence est CA1 (Numros 4,5) Afficher toutes les informations concernant la cargaison CR1 Afficher toutes les informations concernant la marchandise 3. Srialiser les donnes dans le fichier transport1.data 7- Etablir un diagramme de squence puis crer une deuxime application java de type console qui permet de raliser les oprations suivantes : Crer une instance de la classe SocieteTransport pour un client. Charger les donnes partir du fichier transport1.data Afficher toutes les informations concernant la cargaison CA1 8- Crer une application SWING qui permet la saisie, lajout, la suppression, la consultation des donnes de lapplication. 9- Etablir un modle logique de donnes relationnel relatif au diagramme de classe. 10- Crer la base de donnes MYSQL. 11- Crer une nouvelle implmentation des deux interfaces pour une gestion de donnes stockes dans la base de donnes en faisant le mapping objet relationnel. 12- Trouver une solution qui permet lapplication de changer limplmentation de SocieteTransport, sans modifier le code source de lapplication. Autrement dit, lapplication doit tre ferme la modification et ouverte lextension.