6 Localux
6 Localux
6 Localux
ORGANISATIONS
SESSION 2018
CAS Localux
Ce sujet comporte 18 pages dont 10 pages de documentation.
La candidate ou le candidat doit vérifier que le sujet qui lui est remis est complet.
Dossier documentaire
Barème
Localux est spécialisée dans la location de véhicules haut de gamme et de luxe, avec
chauffeur. La société propose des courses sur Paris et sa périphérie avec des trajets
prédéfinis (d’un lieu de départ à un lieu de destination) comme, par exemple, Paris-
Versailles, Paris-Deauville, Paris-Fontainebleau, Paris-Chantilly.
Dans une démarche qualité, Localux veille à respecter les engagements suivants :
- proposer une réservation rapide et simple 24/24 et 7j/7, par téléphone ou sur le site ;
- offrir la possibilité de réserver un véhicule pour un départ immédiat ou pour une date
et une heure précise ;
- équiper les véhicules d’une tablette avec une connexion Wi-Fi et de chargeurs pour
téléphones intelligents (smartphones) ;
- fournir des chauffeurs professionnels en adéquation avec la qualité du service ;
- avertir la personne cliente, dans un délai respectable, en cas d’annulation et procéder
à tout remboursement, le cas échéant ;
- veiller au respect des règles de sécurité en vigueur ;
- protéger les données bancaires et personnelles et ne jamais les divulguer à un tiers.
Le projet
L’offre Localux évolue. L’entreprise a décidé de se lancer dans la location de voiture sans
chauffeur ce qui implique des modifications de la base de données et des applications (site
«www.localuxhubert.com» et application «GestActivité»). Localux confie ces évolutions à
DevApp.
Par ailleurs, Localux s’interroge sur le développement de sa propre application mobile et
demande l’assistance de DevApp dans cette réflexion.
Vous devez intervenir dans l’équipe DevApp qui est affectée au nouveau projet confié par
Localux.
- Les formules sans chauffeur : plusieurs formules de location sans chauffeur seront
proposées à la clientèle. Une formule donne droit à une durée de location définie (4
heures, 24 heures, 48 heures) et un nombre de kilomètres inclus forfaitairement. Tout
kilomètre supplémentaire effectué par le client sera facturé à un tarif qui dépend du
modèle du véhicule loué.
- Réservation d'une location sans chauffeur : elle sera réalisée via le site
«www.localuxhubert.com». Le formulaire de réservation proposera à la clientèle de
choisir la formule et le modèle de véhicule souhaités. Un véhicule, correspondant au
modèle choisi par la personne cliente, sera affecté automatiquement.
Lorsque la personne cliente aura fourni les renseignements nécessaires au dossier de
location, elle devra procéder au règlement.
- Retrait du véhicule loué : lors du retrait du véhicule, un dépôt de garantie sera
demandé dont le montant dépend du modèle du véhicule et la personne cliente devra
signer un document indiquant qu’elle a pris connaissance de l'état du véhicule loué. Elle
pourra souscrire une assurance lui offrant des garanties supplémentaires en cas de
dommages sur le véhicule.
- Restitution du véhicule loué : lorsque la personne cliente restituera le véhicule loué,
Localux contrôlera le véhicule pour savoir s'il a ou non subi des dommages.
Par ailleurs, le nombre de kilomètres indiqué au compteur sera relevé et comparé au
nombre de kilomètres inclus dans la formule : si le forfait kilométrique est dépassé, le
montant dû au titre du dépassement devra être réglé.
Question 1.1
Écrire le déclencheur trgDateRetourLSC. Pour cela, vous utiliserez la partie de la base
de données entourée dans le document 1.
Question 1.2
Écrire la requête répondant au besoin exprimé par votre chef de projet.
Le retrait du véhicule
Avant d'être confié pour une location sans chauffeur, le véhicule subit un contrôle de la part
d'un salarié de Localux en présence de la personne cliente : différents éléments sont vérifiés
et les dommages constatés sur le véhicule sont saisis sur tablette et consignés dans
l'application «GestActivité». Pour chaque élément endommagé (aile avant gauche, calandre,
etc.), on conservera le degré de gravité du dommage. Un rapport d'état du véhicule avant la
location sera édité par Localux et signé par la personne cliente pour approbation.
Lors du retrait du véhicule, Localux propose à la personne cliente de souscrire une
assurance. Cette souscription est facultative. En cas de vol ou de dommages sur le véhicule
pendant la location, les garanties prises en charge et les montants de franchise dépendront
donc de l'assurance souscrite.
Il y a plusieurs garanties possibles (vol, dommage, etc.). Pour chaque garantie, il existe une
franchise de base. Une franchise est la somme maximum qui reste à la charge de la
personne cliente, si celle-ci est déclarée responsable au regard de la garantie concernée
(vol, dommage, etc.) ou s'il n'existe pas de recours contre un tiers identifié.
Chaque assurance porte un nom, une description et propose différentes garanties. Pour
chaque garantie d’une assurance complémentaire, un taux de réduction compris entre 0 et
100% est appliqué sur la franchise de base en cas de dommage.
Lors du retrait du véhicule, la personne cliente doit verser un dépôt de garantie qui dépend
du modèle de véhicule loué.
La restitution totale ou partielle de ce montant dépendra des dommages constatés lors de sa
restitution et de l'assurance souscrite par la personne cliente.
La restitution du véhicule
L’employé de Localux qui réceptionnera le véhicule à la fin de la location sans chauffeur
devra vérifier son état. L'application «GestActivité» sera utilisée pour pouvoir enregistrer les
différents dommages et leur degré de gravité constatés lors de la restitution du véhicule. Un
rapport d'état du véhicule après la location sera édité par Localux et signé par la personne
cliente pour approbation.
La différence entre l'état avant la location et après la location sert à déterminer si des
dommages sont à imputer à la location. Dans ce cas, l’employé qui réceptionne le véhicule
détermine un coût estimatif des réparations en fonction d'une matrice de dommages établie
par Localux et ce coût estimé est enregistré au niveau de la location. La gestion de la
matrice des dommages sort du cadre de cette mission.
Question 1.3
Selon le formalisme de votre choix, adapter la structure de la base de données
existante pour prendre en compte les données du nouveau module.
Important : La candidate ou le candidat ne présentera sur sa copie que les éléments
nécessaires à la mission.
IMPORTANT : La candidate ou le candidat peut choisir de présenter les éléments de code à l’aide du
langage de programmation de son choix ou de pseudo-code algorithmique.
Au-delà du forfait kilométrique, tout kilomètre supplémentaire effectué sera facturé à un tarif
dépendant du modèle du véhicule loué. Par exemple, pour la location d’une Renault Espace,
tout kilomètre supplémentaire sera facturé 3 euros. En revanche, pour une Peugeot 5800, le
kilomètre supplémentaire sera facturé 4 euros.
Si une personne cliente loue une Renault Espace avec la formule 24h, elle devra régler 240
euros lors de la réservation sur le site «www.localuxhubert.com». Si elle effectue 400
kilomètres, elle devra donc régler 300 euros au titre du dépassement du forfait kilométrique
lorsqu'elle restituera le véhicule. En revanche, si elle n'a pas dépassé le forfait kilométrique,
elle n'aura rien à régler lors de la restitution.
Question 2.1
Réaliser le code du constructeur de la classe métier LocationSansChauffeur. Le
kilométrage au compteur lors de la restitution du véhicule sera initialisé à 0.
Question 2.2
Réaliser le code de la méthode GetMontantDepasForfait() de la classe métier
LocationSansChauffeur qui permet d'obtenir le montant à régler par la personne
cliente en cas de dépassement du forfait kilométrique.
Des tests unitaires sont nécessaires pour valider chaque méthode. Ceux-ci doivent donc être
réalisés pour tester la méthode GetMontantDepasForfait().
Une ébauche d’un test, fourni dans le dossier documentaire, a été réalisée pour tester cette
méthode. Il porte sur une location sans chauffeur, réalisée le 15 février 2018 et concerne une
Renault Espace immatriculée LA-039-LP, achetée le 28 décembre 2016. La personne cliente
a choisi la formule "Forfait 24h" et a réglé 240 euros. Lors du retrait du véhicule, le compteur
indique 25000 kilomètres, et lors de sa restitution, il comptabilise 25400 kilomètres.
Question 2.3
Compléter le code du test unitaire de la méthode GetMontantDepasForfait().
Question 2.4
Afin de répondre au besoin de monsieur Berthu :
a) apporter les modifications nécessaires au diagramme de classes (seules les
classes concernées par les modifications devront être représentées sur votre
copie) ;
Localux, qui a actuellement recours aux applications mobiles de ses concurrents moyennant
le versement d’une commission pour chaque prestation, envisage de créer une version
mobile de son site de réservation pour que les utilisateurs puissent passer de la même façon
leur réservation à partir de leur smartphone ou tablette.
Les objectifs de Localux sont :
- faire évoluer l’application web vers un site mobile disponible 24h/24 adapté à une
clientèle cible plutôt haut de gamme ;
Question 3.1
Dresser un tableau comparatif, similaire à ceux utilisés chez DevApp, afin de
comparer les différentes solutions de développement envisagées. Vous utiliserez les
critères de comparaison suivants : temps de développement, ergonomie, rapidité
d’exécution hors connexion réseau.
Question 3.2
Détailler le calcul du montant total facturé à Localux.
La comptabilité de Localux a montré que cette dernière reverse à Uber et Chauffeur Privé en
moyenne 50 000 € TTC/an pour l'utilisation de leurs applications mobiles.
La maintenance de l’application développée par DevApp va coûter 20 000 € TTC par an dès
la première année.
Localux s'interroge sur le choix à effectuer en matière de stratégie informatique : faut-il
continuer à utiliser les applications mobiles de Uber et Chauffeur privé (solution 1) ou faire
développer et maintenir sa propre application mobile (solution 2) ?
Question 3.3
À partir de calculs chiffrés, déterminer la solution la moins coûteuse pour la première
année.
Question 3.4
Conclure sur l'évolution du coût de chaque solution au bout de trois ans.
Question 3.5
Fournir d'autres éléments que le coût permettant d'opter pour l'une ou l'autre de ces
deux solutions.
Schéma entité-association :
Diagramme de classes :
Client (id, nom, prenom, mail, tel, adresse, cp, ville, motDePasse, idPays)
Clé primaire : id
Clé étrangère : idPays en référence à id de Pays
Remarques :
Toutes les colonnes contenant des dates (dont le nom commence par "date") sont de
type horodatage ;
La colonne duree dans la table FormuleSansChauffeur est exprimée en heures
entières
Contrôle n° 320 réalisé par Marc BOTUR Contrôle n°436 réalisé par Aline LIDBO
Observations : Observations :
L'intérieur de la voiture est poussiéreux. À plusieurs reprises, nous avons entendu des
bruits anormaux lors du freinage.
Remarque : les paramètres des méthodes et le type de valeur retourné n'apparaissent pas sur le
diagramme de classes
class Modele
{
// Attributs privés
private int id;
private string libelle;
private double tarifKmSupplementaire; // représente le tarif du km supplémentaire
// Méthodes
public double GetNbKmInclus() { // retourne le forfait kilométrique }
public int GetDuree(){ // retourne la durée }
public double GetTarif(Modele unModele) { // retourne le tarif de la formule sans chauffeur
// Méthodes
public string GetLieu() { // retourne le lieu }
public double GetTarif() { // retourne le tarif de la formule avec chauffeur }
}
// Méthodes
public Vehicule GetLeVehicule() { // retourne le véhicule concerné par la location }
public double GetMontantRegle () { // retourne le montant total réglé par le client }
}
// Méthodes
// méthode qui permet de modifier le nombre de kms lu au compteur lors de la
// restitution du véhicule
public void SetNbKmRetour(double nbKm)
{
this.nbkmRetour = nbKm;
}
From [email protected]
To: [email protected]
Subject : modification de GestActivité pour répondre aux besoins de M. Berthu
Bonjour Alix,
Tu dois modifier la classe Vehicule pour y ajouter une méthode nommée
GetTotalDepasForfait qui retournera le montant total des sommes versées suite à
dépassement du forfait kilométrique pour toutes les locations sans chauffeur réalisées avec
le véhicule courant. Tu devras ajouter un nouvel attribut dans cette classe qui permettra
d'accéder à toutes les instances LocationSansChauffeur réalisées avec le véhicule et donc
modifier le constructeur de la classe. Evidemment, tu ajouteras également dans la classe
Vehicule une méthode qui permettra d’ajouter une nouvelle location sans chauffeur au
véhicule.
Bon courage et n'hésite pas à me contacter si tu as besoin d'un complément d'information.
Sophie Louvin
En C#, la collection de type List<T> permet d'enregistrer des éléments de type T où T peut
être n'importe quel type d'éléments (entier, float, nom de classe,…)
// parcours de la collection
foreach (int unNombre in mesNombres) // parcours de la collection
{
Console.WriteLine(unNombre); // affichage de chaque élément
}
1. Le natif
C’est l’approche la plus naturelle. Un développement est effectué pour chacune des
plateformes cibles dans le langage prévu pour elles. Cette technique permet d’obtenir un
résultat au plus proche du système ciblé. Les outils dédiés à chacun des environnements
sont utilisés ce qui permet de disposer des meilleures conditions pour la réalisation et les
tests de l'application.
Faire du natif, c’est donc réaliser plusieurs développements distincts (pour Android, iOS,
Windows,etc.). Très peu de choses sont mutualisées et chaque mise à jour ou correctif
devra être réalisé trois fois. Cependant, cela offre :
● la souplesse nécessaire à la réalisation d’une application qui s'adapte parfaitement à
l’écosystème de chaque téléphone ;
● des performances qui peuvent se révéler excellentes car relatives à la qualité du
développement.
Faire du natif reste néanmoins l’approche la plus chère : elle nécessite le plus de
compétences et de connaissances, mais c’est celle qui donne souvent la meilleure garantie
de qualité.
Une des voies permettant d’arriver à ce résultat est le ‘’quasi-natif’’. Un seul langage de
programmation est utilisé et un seul développement est effectué, mais un ensemble d’outils
qui nécessite un certain temps de formation, est utilisé pour compiler et packager une
version de l’application adaptée à chaque plateforme cible. Le code ‘’générique’’ est traduit
dans le langage compris par la plateforme puis compilé nativement ou exécuté par une
machine virtuelle, ce qui peut avoir un impact sur la performance.
Les applications hybrides proposent une ergonomie très proche de celles des solutions
natives.
Des frameworks/outils tels que Cordova ou encore Ionic permettent de développer des
applications hybrides.
Les langages HTML5, CSS3 et Javascript sont utilisés pour développer ces applications qui
sont exécutables sur tous les smartphones, via un navigateur web.
Par ailleurs, ces applications peuvent ne pas suivre les recommandations graphiques d’une
application native (Android, iOS, Windows Phone, etc.), et elles ont souvent tendance à
créer un design standard pour toutes les plateformes : rivaliser avec une application native
est, de ce fait, assez difficile…
Etant donné que le web fonctionne sur tous les mobiles et qu’il est possible de développer
des sites qui s’affichent correctement sur un mobile, on peut se demander pourquoi ne pas
emballer (packager) ces sites dans une application ? Ce choix permettrait de rendre
l'application disponible sur les plateformes de téléchargement d'applications destinées à des
applications mobiles (stores), de donner l’impression qu'il s'agit d'une application classique et
multiplateforme. Le seul point négatif serait lié à l'usage difficile des fonctionnalités du
téléphone comme la sauvegarde de fichier en local, l’utilisation de l’appareil photo ou encore
l’accès aux contacts.