Travaux pratiques – Série P03

publicité
634.1 / PROGRAMMATION Travaux pratiques – Série P03 Objectifs  Compléter une application interactive accédant à une base de données MySQL partiellement réalisée en respectant un ensemble de spécifications.  Mettre en œuvre la décomposition en couches.  Se familiariser avec les contraintes et l’environnement d’un contrôle continu (cet énoncé est un ancien CC).  Employer la documentation on‐line de Java pour y trouver de nouvelles informations. Problème Un magasin d’articles divers veut gérer ses ventes mais ne dispose pas d’une base de données d’articles. Les clients sont cependant déjà connus et répertoriés dans une table. On souhaite conserver une trace des factures faites à ces clients, en indiquant simplement une description de l’article et son prix de vente. Chaque facture désigne toujours un seul article et concerne toujours un client. Le programme que vous êtes chargés de réaliser permettra de consulter interactivement les factures d’un client ainsi que d’ajouter une facture à un client. Modèle physique des données Note : La clé primaire NoFacture dans la table Facture est automatiquement incrémentée par le SGBD lors de l’insertion d’une nouvelle ligne. Voir le script de création de la base CreateFactureCC.sql. Bases de données  Le script CreateBaseFactureCC.sql permet de créer la base de données MySQL FactureCC. Elle contient les informations d’une dizaine de clients ainsi que leurs factures existantes.  Les primitives de connexion à la base vues en cours sont fournies. Maquette de la fenêtre de l’application (presentation.FrmMain) Au lancement de l’application P. Daehne, J. Sievering 1 / 3 Version 3.0 – 09.03.2015 Avant l’ajout d’une facture Après l’ajout d’une facture État initial de la fenêtre - Lors du lancement de l'application, la java.awt.List Liste des clients est chargée avec la liste alphabétique des clients, aucun client n’est sélectionné. Contraintes d’ergonomie - Les champs affichant le nom et le prénom du client sélectionné sont inactifs (on ne peut pas saisir d’information). La liste des factures et le champ Montant total sont inactifs. - La liste des clients indique le nom et le prénom de chaque client. La liste des factures indique la description et le montant de chaque facture. - Chaque modification de l'état de la fenêtre par l’utilisateur actualise les informations affichées. - Le bouton est actif si et seulement si les trois conditions suivantes sont simultanément vraies :  un client de la liste des clients est sélectionné ;  un texte est saisi dans le champ Description ;  un texte correspondant à un nombre entier est saisi dans le champ Prix. Règles de gestion - La sélection d’un client provoque l’affichage de la liste de ses factures (dans l’ordre des numéros de facture). - La sélection d’un client provoque le remplissage des champs Nom et Prénom du Client courant. - Le champ Montant total affiche la somme des factures du client telles qu’affichées dans la liste des factures. Le montant total vaut 0 si le client n’a aucune facture. P. Daehne, J. Sievering 2 / 3 Version 3.0 – 09.03.2015 - L’appui sur le bouton provoque :  L’insertion d’une nouvelle facture dans la base avec le numéro du client courant ainsi que la description et le prix saisis dans les champs.  La mise à jour de la liste des factures affichées ainsi que du montant total.  Le vidage des champs Description et Prix. Note : le client courant reste sélectionné.  La désactivation du bouton . Éléments fournis (dans G:\_cours\14‐15\IG\634.1\ÉnoncésTP\P03) - Dans le répertoire Base : le fichier CreateBaseFactureCC.sql qui est le script de création de la base de données MySQL FactureCC. - Le projet NetBeans 634.1‐P03‐Fourni contenant la structure de base de l’application :  Dans le package domaine :  Les classes Client et Facture qui sont les entités du domaine (à compléter si nécessaire).  Dans le package base :  Les classes ClientDao et FactureDao encapsulant les accès à la base de données pour les entités Client et Facture (à compléter).  La classe ConnexionBase modélisant la connexion à la base de données.  Dans le package base.mysql :  La classe Outils encapsulant la connexion à une base MySQL.  Dans le package metier :  Les classes ListeObjects, ListeClients et ListeFactures qui gèrent les données et l’état de l’application (à compléter).  Dans le package presentation :  La classe Main qui gère le lancement de l’application.  la fenêtre principale de l’application FrmMain (à compléter). - La mise en forme des composants de FrmMain est déjà effectuée et ceux‐ci ont été nommés en respectant les conventions de nommage définies en cours. À faire - Compléter le commentaire de la classe FrmMain en inscrivant vos nom et prénom. - Démarrer MySQL et lancer le script de création de la base de données CreateBaseFactureCC.sql. - Compléter les classes fournies par du code fonctionnel respectant les spécifications données dans leur description. - Contraintes impératives :  Vous respecterez scrupuleusement la décomposition en couches de l’application ainsi que les responsabilités de chacune des couches conformément à ce que nous avons étudié en cours  Vous emploierez au maximum les listeners de haut niveau définis pour les composants ; il est en particulier strictement interdit de mettre en œuvre les listeners hérités de Component.  Vous n’avez le droit de modifier ni la disposition des composants de la fenêtre, ni leur visibilité, ni leur nom.  Tout au long du développement de votre application, vous mettrez en œuvre les conventions et les bonnes pratiques de programmation ainsi que les principes de la programmation objet que vous avez étudiés.  Vous n’avez le droit de modifier ni la visibilité des attributs, ni les signatures des méthodes déjà déclarées. Vous avez par contre le droit de créer des attributs et des méthodes supplémentaires si nécessaire. Indication - Assurez‐vous de toujours disposer d’une base de données cohérente. N’hésitez pas, en cours de développement, à rétablir la base de données originale au moyen du script SQL fourni. Attention, fermez votre application avant de rétablir la base de données originale. Délai Ce travail est à rendre en recopiant le projet NetBeans que vous avez développé sur le réseau en : G:\_cours\14‐15\IG\634.1\RedditionTP\VotreNom\P03 Groupe 1 (JS) : le lundi 16.03.2015 à 12h00 P. Daehne, J. Sievering Groupe 2 (PD) : le jeudi 19.03.2015 à 20h00 3 / 3 Version 3.0 – 09.03.2015 
Téléchargement