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)

Documents pareils