10 points
Transcription
10 points
UVHC - ISTV : Licence Professionnelle en Informatique Examen de Génie Logiciel Mardi 13 Décembre 2005 Durée : 3h Tous documents autorisés. Partie UML (10 points) Nous sommes en 2027. Suite à une découverte géologique d’une extrême importance à Valenciennes (le chaînon manquant, être liant l’homme à l’animal, enfin, ce qu’il en reste, aurait été trouvé lors de la construction d’un parking sous-terrain) les travaux ont pris vingt ans de retard, ce qui est peu à l’échelle du chaînon manquant, mais ce qui est énorme à l’échelle des durées de survie des commerces. Il est désormais interdit de circuler en ville pour éviter toutes vibrations, seuls les larges trottoirs sont utilisables. Devant ce constat, un groupe d’amis décident de fonder une entreprise, « CityInYourHome », de vente par correspondance (à l’aide de vitrines virtuelles) des produits des commerces du centre ville, et et de leurs livraisons à domicile par des roller-men et roller-women. Pour cela, ils ont donc réalisé un site interactif. L’originalité de « CityInYourHome » par rapport à ses concurrents est que tout est basé sur la notion de ‘Post-it’. Ainsi, la vitrine virtuelle développée se base sur la gestion de Post-it, que ce soit pour l’affichage des produits mis en vente, l’ajout et la modification des produits par le commerçant ou encore la gestion du panier virtuel du consommateur. De plus, des post-it électroniques sont utilisés pour la livraison : sur chaque commande est collé un mini PDA (Personnal Digital Assistant) qui indique l’adresse de livraison et le coût, ainsi que d’autres messages (sur le trafic urbain par exemple). Mel l e L. Ebel 11, rue des Hort ensi as Shampoi ng Vani l l e : 8€ de Shamp’Nat ure Reset Schéma d’un post-it électronique Voici le fonctionnement du site (qui est également accessible à partir d’un téléphone mobile par e-mode) : suite à une procédure d’identification, les utilisateurs (commerçants, consommateurs ou livreurs), entrent dans le site internet. Le commerçant peut ajouter des produits ou modifier des caractéristiques de certains produits (nom, référence, quantité, informations). Le consommateur peut ajouter/retirer des produits de son panier et lancer la procédure d’achat : l’adresse de livraison lui est premièrement demandée; un postit électronique est ensuite initialisé avec l’adresse de livraison indiquée, l’objet demandé (et son lieu de retrait) et le coût de la commande. Ce post-it est fixé à la commande, un livreur à roulettes organise alors son voyage (il détermine son plus court chemin) et part récupérer le produit demandé chez le commerçant pour le livrer ensuite et encaisser l’argent (il récupère bien sûr le post-it électronique qu’il réinitialise). A la fin de la journée, les commerçants envoient, par mail, les factures des produits livrés, au comptable de « CityInYourHome » qui verse sur leurs comptes les sommes dues (une partie des sommes encaissées). Si un livreur détecte un problème sur les routes (route en travaux ; route mouillée et donc dangereuse pour les patins), il s’adresse au site par son identifiant, indique le problème et tous les livreurs sont alors mis au courant grâce aux post-it associés aux commandes. Travail demandé 2.1. Donnez le cas d’utilisation du système en représentant les différents utilisateurs (commerçants, consommateurs, livreurs et comptable). (3 points) 2.2. Donnez le diagramme de classes représentant les différentes classes (et leurs relations) nécessaires au fonctionnement interne du système « CityInYourHome ». (3 points) 2.3. Décrivez le diagramme de séquence UML du processus global de livraison d’un objet. (3 points) 2.4. Décrivez les modifications à apporter au diagramme de séquence UML du processus global de livraison d’un objet dans le cas où un livreur fait part du mauvais état de la route. (1 point) Partie JAVA (6 points) Objectif : Concevoir un système d’aide à la gestion d’un camping. Votre projet consiste à mettre en place un système de gestion d’un camping. Le logiciel doit permettre de gérer les emplacements, les entrées et sorties des vacanciers. En fait, seul un vacancier par groupe ou famille est enregistré. Celui-ci doit décliner son nom, prénom, fournir une pièce d’identité, un RIB ou le numéro de la carte bleue. Il doit également indiquer le nombre de personnes constituant le groupe, le nombre d’enfants dans le groupe (moins de 14 ans, une pièce justificative est alors nécessaire). Le vacancier doit signaler s’il est motorisé, auquel cas, il recevra un badge magnétique qu’il devra remettre à la fin du séjour (pour ce badge il devra fournir un chèque caution de 20 euros). Le type d’emplacement, c’est-à-dire sa taille (1 pour une tente 2 personnes, 2 pour une tente 4 personnes, 3 pour un camping-car ou une caravane et 4 pour une caravane + auvent) et le besoin en raccordement à l’électricité lui seront également demandé. Lorsque le vacancier possède un camping-car, il lui est prêté, le temps du séjour, une plaque portant son numéro, à placer sur l’emplacement lors de ses déplacements. Une première ébauche du diagramme de classes donne ceci : Figure 1. Diagramme de classes du projet « gestion de camping » Bien sûr pour des raisons de sécurité, le nom, le prénom ainsi que les numéros de cartes bleues et d’identité seront définis une fois pour toutes à la création de l’objet représentant un Campeur. Les autres variables telles que le nombre de personnes peuvent évoluer au cours du séjour. Pour des raisons d'optimisation et de facilité de gestion, les poids associés au type de campement (tente 2 places, ...) seront fixes et communs à toutes les instances de Campeur. Travail demandé : 1. Décrivez en Java les quatre classes ainsi que l'interface. Vous vous limiterez à la définition des constructeurs. (2,5 points) 2. Indiquez à chaque fois, la raison pour laquelle vous employez les mots clés tels que final, protected,... (2 points) 3. Ecrire un court programme principal permettant de tester ces classes. (1,5 points) Partie Cours (4 points) 1 – Qu'apporte la programmation objet par rapport aux autres types de programmation (fonctionnelle par exemple) ? (0,5 point) 2 – Qu'affiche le programme java suivant ? Pourquoi ? (0,5 point) public class TestRefs { public static void main(String args[]) { System.out.println("Bonjour"); Integer a = new Integer(5); Integer b = a; Integer c = new Integer(5); System.out.println("a = "+ a + " b = " + b + " c = " + c); System.out.println("a == b : " + (a == b)); System.out.println("a == c : " + (a == c)); } } 3 – Comment sont détruits les objets en Java ? (0,5 point) 4 - En quoi consiste l‘héritage ? (0,5 point) 5 - Qu’est ce qu’une classe, une classe abstraite, une interface ? (0,5 point) 6 – Comment crée-t-on un processus en Java ? (0,5 point) 7 - Quels sont les avantages à utiliser les processus ? (0,5 point) 8 - Quels sont les dangers à l'utilisation de processus et comment java permet-il d'y remédier ? (0,5 point)