Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
***** * * ********
SUJET :
Conception et Réalisation d´un Framework pour le
Développement de Systèmes de Réservation en
Ligne
SUJET :
Conception et Réalisation d´un Framework pour le
Développement de Systèmes de Réservation en
Ligne
Je dédie ce mémoire :
À tous mes collègues de WAY2CALL (maman Fily, tonton Aristide, papa Hassane,
Toutes les personnes qui de près ou de loin, ont contribué à la réalisation de ce document.
AVANT-PROPOS
This document is a brief end of cycle to obtain the Diploma Engineer design. A
probationary period of five (5) months was made with the company XONE-TECH, a service
provider and consulting firm serving clients worldwide in the telecommunications and IT.
During the training period, we were awarded the design and implementation of a
Framework for the development of online reservation systems which we use to develop sites
Location9 (Reservation of vehicles) and HGL (booking hotel rooms).
1
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
2
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Sigles et abréviations
Nous présentons ici certains sigles et abréviations que nous utiliserons dans le document.
IT Information Technology
UI User Interface
3
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Introduction
Dans un monde où l’internet occupe une place prépondérante dans presque tous les
secteurs d’activités, il devient nécessaire pour les entreprises de s’approprier de cet outil afin
de rester compétitives. Elles doivent adapter leurs stratégies et leurs organisations pour
toucher un marché toujours plus dynamique et flexible, dimensionné à l’échelle mondiale.
C’est dans cette optique que l’entreprise d’accueil nous a chargé de la réalisation d’un
Framework pouvant servir de base à la création de n’importe quel site de réservation. Nous
utiliserons ensuite cet outil pour créer un site de réservation de chambres d’hôtel et un site
de réservation de véhicules.
Tout au long de ce document, l’accent sera mis sur la démarche utilisée pour arriver à
bout des objectifs qui nous ont été assignés. Pour ce faire, dans un premier temps, une brève
description de la structure d’accueil sera faite, ainsi qu’une définition des concepts importants
et une présentation de la problématique de notre sujet. Dans un second temps l’aspect
méthodologie sera abordé, c'est-à-dire comment comptons nous aborder le problème. Pour
finir, nous allons présenter quelques éléments de conception et montrer ce qui a pu être réalisé
dans le cadre de ce stage avant de terminer par une conclusion.
4
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
CHAPITRE 1
Présentation générale
1. Présentation de Xone-Tech
Xone-Tech est un fournisseur de services et une firme de consulting servant des clients
dans le monde entier dans les secteurs des télécommunications et de l’IT.
Les services offerts par Xone-Tech sont le produit d’un large spectre d’expertise
technique (sécurité, architecture convergente, Open Source, etc.) combiné à une approche
méthodologique dont les principes sont industrialisation, capitalisation et pragmatisme.
Xone-Tech vise à offrir une expertise unique dans les mondes convergents d’Internet
et des Télécommunications.
Les consultants Xone-Tech apportent leur expérience dans tous les domaines de la
voix, la vidéo, le Wireless/mobile, la communication unifiée et les technologies réseau.
2. Domaines d’activités
L’interopérabilité
La scalabilité
La sécurité
1
http://fr.wikipedia.org/wiki/Cloud_computing
5
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Ainsi XONE-TECH s’est donnée pour mission d’aider les clients à comprendre,
maitriser et exploiter les nouvelles dynamiques dans les secteurs des télécommunications et
comment les convertir en opportunités.
Choix de systèmes
Conception d’infrastructures
Gestion de projets
Transfert de connaissances
1.1. Définition
6
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
ainsi que dans n’importe quel secteur d’activité où une ressource peut être mise
à la disposition d’une autre personne pendant une plage horaire déterminée.
Un système de réservation est dit centralisé s’il permet de faire le pont entre
plusieurs prestataires de services liés au monde du voyage, comme les compagnies aériennes,
les chaînes d'hôtels et de restaurants, les loueurs de voitures, les compagnies ferroviaires.
Dans un monde où l’usage de l’internet devient de plus en plus primordial dans les
affaires, l’automatisation des systèmes de réservation devient une priorité afin de satisfaire
une clientèle à l’échelle mondiale. Les structures qui se dotent de pareils outils en pro activité
: les procédures de réservation complexes et difficile à prendre en main sont remplacées par
des étapes simples accessibles à tous depuis internet. Ces systèmes anticipent sur les besoins
du client qui est de plus en plus intégré dans le processus de réservation. Ils apportent une
facilité supplémentaire aux clients en leur offrant une porte d’entrée unique comme dans le
cadre des voyages où à partir d’un site, le client peut réserver son billet, son hôtel, sa voiture
et ses restaurants.
Les systèmes de réservation touchent des cibles dans des domaines très variés de la vie
active notamment :
Les touristes
Les sportifs
La personne est souvent identifiée par son adresse postale, téléphone, mail, carte
bancaire. L'adresse postale est vérifiée par facture, par abonnement mensuel (téléphone, gaz,
7
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
électricité), le numéro de téléphone est vérifié par envoi d'un SMS contenant un code à
utiliser, l'adresse mail est vérifiée par envoi d'un mail contenant un lien à activer.
2. Les Frameworks
2.1. Définition
Nous allons compléter cette définition de Framework en se basant sur cette définition
de Ralph Johnson (Johnson, 1997) qui caractérisait un Framework comme suit :
8
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Exemple : JUnit1
Une différence majeure entre les Framework white-box et black-box réside dans la
facilité de leur conception et utilisation. Les white-box sont plus simples à concevoir, mais ils
sont plus difficiles, à prendre en main, ils requièrent beaucoup plus d’efforts de
programmation. Les black-box font appels à plus d’effort dans la conception mais cet effort
supplémentaire se traduit par une utilisation simplifiée et beaucoup moins de code pour
l’utilisateur.
1
jUnit est un framework java open source pour la réalisation de tests unitaires
9
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
L’économie d’argent
3. Objectifs
Le sujet qui nous a été soumis à l’occasion de notre stage répond à des besoins
formulés par un client de la société XONE-TECH. Ces besoins ont été matérialisés par des
cahiers de charge qui décrivent :
Pour apporter des solutions à ces problèmes soulignés ci-haut, nous avons conçu un
Framework basé sur une plateforme de réservation générique dont les applications de
réservation de véhicules ou de chambres d’hôtel n’en seraient que des instances possibles et
surtout qui offriraient des interfaces sécurisées pour une interconnexion future entre les
instances.
4. Gestion de Projet
10
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
4.2. Planification
11
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
CHAPITRE 2
Méthodologie
1. L’analyse
2. La conception
12
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Les Framework sont basés sur l’abstraction: le point de départ d’un Framework est en
général un ensemble d’exemples concrets qui sont par la suite généralisés. Cette abstraction
suit une approche bottom-up ou analyse ascendante.
casser les gros composants en composants de tailles plus réduites pour faire
ressortir les similitudes ;
Démarche de construction
Réalisation du Framework
État de l’art
13
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Cette phase consiste à faire une collecte d’un certain nombre d’exemples représentatifs
des systèmes de réservation sur lesquels nous allons nous baser pour bâtir notre Framework.
Dans cette phase, nous allons nous positionner à un niveau d’abstraction qui permettra
de produire un modèle couvrant les exemples recensés plus haut et mettant l’accent sur la
réutilisation. Pour cela on se basera sur les design patterns1.
Réalisation du Framework
Après avoir présenté notre manière d’aborder le problème que nous nous sommes
posés, c'est-à-dire réalisé un Framework, nous allons maintenant étudier les méthodes
d’analyse et de conception que nous comptons utiliser.
Avec ces méthodes (SADT, SA-SD), le système étudié est abordé par les fonctions
qu’il doit assurer plutôt que par les données qu’il doit gérer. Le processus de conception est
vu comme un développement linéaire. Il y’a décomposition systématique du domaine étudié
1
http://fr.wikipedia.org/wiki/Patron_de_conception
14
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Dans les méthodes systémiques (MERISE, REMORA, etc.) le système est abordé à
travers l’organisation des systèmes constituants l’entreprise. Elles aident donc à construire un
système en donnant une représentation de tous les faits pertinents qui surviennent dans
l’organisation en s’appuyant sur plusieurs modèles à des niveaux d’abstraction différents
(conceptuel, organisationnel, logique, physique).
15
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
regroupement de l’analyse des données et des traitements, la réutilisation des composants mis
en place.
Les méthodes Agiles sont des procédures de conception de logiciel qui se veulent plus
pragmatiques que les méthodes traditionnelles. En impliquant au maximum le demandeur
(client), ces méthodes permettent une grande réactivité à ses demandes, visent la satisfaction
réelle du besoin du client, et non des termes du contrat de développement. La notion de
méthode agile a été officialisée en 2001 par un document Manifeste Agile (Agile Manifesto)
signé par 17 personnalités impliquées dans l'évolution du génie logiciel et généralement
auteurs de leur propre méthode. Les méthodes Agiles étaient antérieures au Manifeste Agile.
Le manifeste Agile n’est donc pas l’acte de naissance des méthodes Agiles ou du mouvement
Agile, ce n’est que la formalisation consensuelle par les auteurs de ces méthodes, toutes nées
dans la deuxième partie de la décennie 90, du fait qu’elles avaient des valeurs communes, une
structure (cycle de développement) commune (itérative, incrémentale et adaptative) et une
base de pratiques, soit communes, soit complémentaires. Parmi ces méthodes on trouve la
version Anglaise du RAD (Développement Rapide d'Applications) de James Martin et
plusieurs autres méthodes reconnaissant leur parenté directe avec RAD la première méthode
Agile publiée (1991). Les deux méthodes Agiles les plus connues sont : la méthode Scrum
(1996) et la méthode XP pour eXtreme Programming (1999).
Dans la suite de notre étude, nous allons nous appesantir sur une approche inspirée des
méthodes agiles Scrum et XP. Nous nous sommes basés sur une variante de Scrum pour la
gestion de projet et sur les principes de XP tels que le Pair-Programming et le Test Driven
Development pour la production de lignes de codes. Pour la modélisation dans les phases
d’analyse et de conception notre choix s’est porté sur le langage UML.
Comme expliqué plus haut, ces méthodes agiles, issues de l’industrie, ont fait leur
première apparition dans les années 90 et depuis 2000, on note une grande diffusion dans les
entreprises.
2.1. XP
16
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
L'Extreme Programming a été inventé par Kent Beck, Ward Cunningham et Ron
Jeffries pendant leur travail sur un projet « C3 » de calcul des rémunérations chez Chrysler.
Kent Beck, chef de projet en mars 1996 commença à affiner la méthodologie de
développement utilisée sur le projet. La méthode est née officiellement en octobre 1999 avec
le livre Extreme Programming Explained de Kent Beck.
Le but d’XP est de trouver des solutions plus ou moins simples, basées sur des
principes éprouvés, pour tenter de diminuer les risques pour respecter les délais et la qualité
du produit commandé.
XP évite donc avec cela les lourdeurs des méthodes classiques et est donc un habile
compromis entre une méthode traditionnelle et le développement, sans règles précises. Par
conséquent le travail des informaticiens est totalement tourné vers la technique où ils se
sentiront vraisemblablement plus à l’aise.
En outre, XP, en tant que méthode agile, se veut adaptative plutôt que prédictive. C’est
à dire qu’à l’inverse des méthodes lourdes qui tentent de dresser un plan au début du projet,
XP indique qu’il vaut mieux agir sur le court terme. Cela, tout simplement parce qu’il n’existe
pas de projet figé où le prédicat de base ou le contexte ne changent pas du tout. Dans ce cas,
le coût du changement a une croissance logarithmique en fonction du temps.
1
Les méthodes agiles sont des groupes de pratiques pouvant s'appliquer à divers types de projets, mais se
limitant plutôt actuellement aux projets de développement en informatique (conception de logiciel)
17
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Le simple fait de ne pas être réticente aux changements permet dans un premier temps
de mieux s’y adapter mais permet aussi une meilleure relation avec le client et la livraison
d’un produit conforme totalement aux exigences de ce dernier.
Enfin, le dernier but d’XP est de se vouloir orienté sur les personnes plutôt que sur les
processus.
une phase d'exploration détermine les scénarios clients qui seront fournis pendant
cette itération ;
Le cycle se répète tant que le client peut fournir des scénarios à livrer. Généralement le
cycle de la première livraison se caractérise par sa durée et le volume important de
fonctionnalités embarquées. Après la première mise en production, les itérations peuvent
devenir plus courtes (une semaine par exemple).
La communication
C'est le moyen fondamental pour éviter les problèmes. Les pratiques que
préconise l'XP imposent une communication intense. Les tests, la programmation en
binôme et le jeu du planning obligent les développeurs, les décideurs et les clients à
communiquer. Si un manque apparait malgré tout, un coach se charge de l'identifier et
de remettre ces personnes en contact.
La simplicité
18
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Le feed-back
Le courage
Le respect
2.2. Scrum
Scrum est une méthode agile conçue pour un usage au sein d'une petite équipe,
cherchant à maximiser sa productivité au travers de "règles de vie" facile à adapter à son cycle
de développement.
Scrum tire son nom du terme anglais "mêlée", au Rugby. Le nom a été choisi pour
l'analogie que constituent les réunions quotidiennes de Scrum avec la mêlée, cette technique
de reprise du jeu après une faute qui remet une équipe sur de bons rails par un effort collectif.
Conçue en 1993 et formalisée en 1995, cette méthode de développement (orientée gestion de
projet) inclut souvent des pratiques venant de XP.
L'idée de Scrum est de tenir compte de la réalité de la plupart des projets pour lesquels
il n'est pas possible de tout définir dès le début : les spécifications seront modifiées et
19
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
précisées, des outils ou technologies inconnus entreront en jeu, etc. De fait, pour s'adapter aux
changements qui ne manqueront pas d'arriver, Scrum ne suit pas un processus prédictif et les
travaux à faire sont ajustés régulièrement au cours du projet, notamment à la fin de chaque
itération, appelée le "Sprint".
Scrum suppose donc une intense collaboration entre les différentes personnes
impliquées - des caractéristiques ici encore proches de la mêlée. Le directeur de produit
(product owner) est le représentant des clients et utilisateurs, il définit les priorités pour la
réalisation. Le "gestionnaire" est nommé ScrumMaster : il a pour charge de faciliter
l'application de Scrum par l'équipe. L'équipe s'engage pour la réalisation de fonctionnalités et
le ScrumMaster la motive pour y arriver.
backlog de produit : une liste des fonctionnalités pour le produit, définie par le
directeur de produit,
Un projet utilisant Scrum a son cycle de vie composé de Sprints successifs. Un Sprint
dure au plus quatre semaines. Pendant un Sprint, des réunions quotidiennes de moins de 15
minutes (appelées Scrum) permettent à toute l'équipe de faire le point sur le travail accompli
par chacun depuis la dernière réunion Scrum, les obstacles rencontrés, et le travail prévu d'ici
la prochaine réunion - rien de plus.
Pendant un Sprint l'équipe développe un produit partiel. Elle déroule toutes les
activités nécessaires pour cela : analyser, concevoir, développer, tester, documenter, intégrer.
Chaque Sprint se termine par une revue de Sprint, pour que le directeur de produit évalue, au
cours d'une démonstration, le produit partiel obtenu et modifie au besoin le backlog de
produit.
En définitive, Scrum introduit des règles pour suivre un processus itératif empirique
permettant d'obtenir un produit très proche de besoins qui évoluent et ainsi de maximiser la
valeur pour les clients.
20
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
2.3. TDD
Le développement piloté par les tests (ou TDD en anglais : Test Driven Development)
est une technique de développement de logiciel qui préconise d´écrire les tests unitaires avant
d´écrire le code source du logiciel.
21
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
UML a démarré avec la version 0.8 intégrant les méthodes BOOCH 93 et OMT. Par la
suite il y a eu l'avènement de la version 0.9 ayant intégré la méthode OOSE. La version 1.0,
proposée à l'OMG en 1996, fut finalement standardisée en 1997 sous la version 1.1. Depuis
cette année il y a eu quatre révisions du standard (d’UML 1.1 à UML 1.5 en 2003). Les
dernières améliorations étant conséquentes, UML est passé à une nouvelle version : UML 2.0
(ou UML 2).
22
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
UML 2.3 propose 13 types de diagrammes (9 en UML 1.3). UML n'étant pas une
méthode, leur utilisation est laissée à l'appréciation de chacun, même si le diagramme de
classes est généralement considéré comme l'élément central d'UML ; des méthodologies,
telles que l'UnifiedProcess, axent elles l'analyse en tout premier lieu sur les diagrammes de
cas d'utilisation (Use Case). De même, on peut se contenter de modéliser seulement
partiellement un système, par exemple certaines parties critiques.
Les vues : Les vues sont les observables du système. Elles décrivent le système
d'un point de vue donné, qui peut être organisationnel, dynamique, temporel,
architectural, géographique, logique, etc. En combinant toutes ces vues, il est
possible de définir (ou retrouver) le système complet.
Les modèles d'élément : Les modèles d'élément sont les briques des diagrammes
UML, ces modèles sont utilisés dans plusieurs types de diagramme. Exemple
d'élément : cas d'utilisation (CU ou cadut'), classe, association, etc.
23
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Diagrammes comportementaux
24
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Diagramme de temps : depuis UML 2.3, permet de décrire les variations d'une
donnée au cours du temps.
a. Diagramme de paquetage
Bien souvent, la maîtrise d'ouvrage et les utilisateurs ne sont pas des informaticiens il
leur faut donc un moyen simple d'exprimer leurs besoins. C'est précisément le rôle des
diagrammes de cas d'utilisation qui permettent de recueillir, d'analyser et d'organiser les
besoins, et de recenser les grandes fonctionnalités d'un système. Il s'agit donc de la première
étape UML d'analyse d'un système.
25
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
fonctionnalité du système en unités cohérentes ayant un sens pour les acteurs. Les cas
d'utilisation permettent d'exprimer le besoin des utilisateurs d'un système, ils sont donc une
vision orientée utilisateur de ce besoin au contraire d'une vision informatique.
Il ne faut pas négliger cette première étape pour produire un logiciel conforme aux
attentes des utilisateurs. Pour élaborer les cas d'utilisation, il faut se fonder sur des entretiens
avec les utilisateurs.
Acteur : un acteur est l'idéalisation d'un rôle joué par une personne externe, un
processus ou une chose qui interagit avec un système.
Cas d'utilisation : un cas d'utilisation est une unité cohérente représentant une
fonctionnalité visible de l'extérieur. Il réalise un service de bout en bout, avec un
déclenchement, un déroulement et une fin, pour l'acteur qui l'initie. Un cas
d'utilisation modélise donc un service rendu par le système, sans imposer le mode
de réalisation de ce service.
c. Diagramme de séquences
d. Diagramme d’activité
26
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Les diagrammes d'activités permettent de mettre l'accent sur les traitements. Ils sont
donc particulièrement adaptés à la modélisation du cheminement de flots de contrôle et de
flots de données. Ils permettent ainsi de représenter graphiquement le comportement d'une
méthode ou le déroulement d'un cas d'utilisation.
Les diagrammes d'activités sont également utiles dans la phase de réalisation car ils
permettent une description si précise des traitements, qu'elle autorise la génération
automatique du code.
e. Diagramme de classes
27
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
statique car on ne tient pas compte du facteur temporel dans le comportement du système. Le
diagramme de classes modélise les concepts du domaine d'application ainsi que les concepts
internes créés de toutes pièces dans le cadre de l'implémentation d'une application. Chaque
langage de Programmation Orientée Objets donne un moyen spécifique d'implémenter le
paradigme objet (pointeurs ou pas, héritage multiple ou pas, etc.), mais le diagramme de
classes permet de modéliser les classes du système et leurs relations indépendamment d'un
langage de programmation particulier. Les principaux éléments de cette vue statique sont les
classes et leurs relations : association, généralisation et plusieurs types de dépendances, telles
que la réalisation et l'utilisation.
f. Diagramme de déploiement
Le diagramme de déploiement est une vue statique qui sert à représenter l'utilisation de
l'infrastructure physique par le système et la manière dont les composants du système sont
répartis ainsi que leurs relations entre eux. Les éléments utilisés par un diagramme de
déploiement sont principalement les nœuds, les composants, les associations et les artefacts.
Les caractéristiques des ressources matérielles physiques et des supports de communication
peuvent être précisées par stéréotype.
28
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
CHAPITRE 3
Étude détaillée
I. Analyse
Nous allons maintenant présenter le processus de réservation de ressources tel qu’il est
implémenté dans les sites de réservation célèbres.
Etape 1 :
29
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Etape 2 :
Après lui avoir spécifié les paramètres de la réservation, le site renvoie la liste des
véhicules qui sont disponibles à cette période. Le site propose aussi des options pour filtrer le
résultat des recherches. Le visiteur ne peut réserver qu’un seul véhicule à la fois.
30
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Etape 3 :
31
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Etape 1 :
Cette étape aussi, comme avec Booking Car, permet de spécifier les paramètres de la
réservation. Ces paramètres, bien que variant en fonction de la ressource à réserver, comporte
à chaque fois, la date de début de la réservation ainsi que la date de fin de même que les lieux
de départ et d’arrivée.
32
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Etape 2 :
33
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Etape 3 :
Après avoir effectué notre choix, nous sommes redirigés vers une page de
récapitulation de la réservation avec possibilité d’ajouter des suppléments tels qu’une voiture
et de confirmer notre réservation en payant en ligne un montant prédéfini. Cette dernière étape
du processus de réservation demande aussi des informations concernant les futurs passagers et
locataires.
34
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
1.1.3. Booking
Étape 1 :
Nous spécifions nos paramètres de réservation, c’est à dire la date de début et la date
de fin
35
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Etape 2 :
Nous recevons la liste des chambres qui sont disponibles durant cette période.
Etape 3 :
36
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
37
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Nous pouvons diviser ces fonctionnalités en quatre (4) grandes parties : la gestion des
utilisateurs, la gestion des agences, la gestion des ressources et la gestion des réservations.
38
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Acteur principal:
Utilisateur
Objectifs:
Un utilisateur anonyme donne son mot de passe et son nom d’utilisateur afin d’avoir accès à
son profil et pouvoir terminer des réservations.
Pré-Conditions:
L’utilisateur a activé son compte en cliquant sur le lien d’activation dans sa boite mail.
Post-Conditions:
Scénario nominal:
39
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
4. Le système vérifie le nom d’utilisateur et le mot de passe et aussi si le compte est actif
Ce scénario démarre entre le 4 et 5, le couple nom d’utilisateur mot de passe n’est pas
trouvé dans la base, le système renvoie un message d’erreur et le scénario reprend en 2.
Ce scénario démarre entre le 4 et 5, le couple nom d’utilisateur mot de passe n’est pas
trouvé dans la base, le système renvoie un message d’erreur et le scénario reprend en 2.
Le système génère un mot de passe et remplace celui perdu dans la base de données
Acteur principal:
40
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Utilisateur
Acteurs secondaires:
Super Administrateur
Objectifs:
Ajouter un utilisateur dans la base de données des clients de la plateforme pour qu’il puisse
accéder à son espace personnel.
Pré-Conditions:
Post-Conditions:
L’utilisateur est enregistré dans la base de données et il possède un compte client avec lequel
il peut se connecter à l’application
Scénario nominal:
7. L’utilisateur se dirige vers son email et clique sur le lien d’activation reçu
41
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Ce scénario démarre entre 4 et 5. Le système détecte des champs contenant des données
non conformes aux types attendus. Dans ce cas il renvoie le formulaire avec des messages
d’erreur. Le scénario nominal reprend en 3.
Acteur principal:
Utilisateur
Objectifs:
Pré-Conditions:
Post-Conditions:
Scénario nominal:
1. L’utilisateur se connecte
42
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
a. S’authentifier
b. S´inscrire
43
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Acteur principal:
Super administrateur
Acteur secondaire:
Administrateur agence
Objectifs:
Pré-Conditions:
Post-Conditions:
44
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Scénario nominal:
Acteur principal:
Super administrateur
Objectifs:
Pré-Conditions:
Post-Conditions:
Scénario nominal:
45
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Acteur principal:
Super administrateur
Acteur secondaire:
Administrateur agence
Objectifs:
Pré-Conditions:
Scénario nominal:
Scénario d’erreur:
46
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
a. Créer agence
b. Modifier agence
47
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
c. Supprimer agence
48
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Acteur principal :
Administrateur agence
Objectifs :
Pré-Conditions :
L’administrateur d’agence est connecté et est sur la page de gestion des agences
Post-Conditions :
Scénario nominal :
49
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
4. Le système valide les données et ajoute l’agence et le redirige vers la page de gestion des
agences
Acteur principal :
Administrateur agence
Objectifs :
Pré-Conditions :
L’Administrateur d’agence est connecté et est sur la page de gestion des agences
Post-Conditions :
Scénario nominal :
50
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Si la ressource que l’administrateur de l’agence veut supprimer est réservée par un client
le système le lui signale en lui affichant un message de confirmation, s’il confirme le
système supprime la ressource et envoie un mail de notification aux clients qui l’avaient
réservée.
Acteur principal :
Administrateur agence
Objectifs :
Pré-Conditions :
L’Administrateur d’agence est connecté et est sur la page de gestion des agences
Post-Conditions :
Scénario nominal :
4. Le système désactive la ressource sur la période et le redirige sur la page de gestion des
ressources
51
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Si la ressource que l’administrateur de l’agence veut supprimer est réservée par un client
le système le lui signale en lui affichant un message de confirmation, s’il confirme le
système désactive la ressource et envoie un mail de notification aux clients qui l’avaient
réservée.
a. Ajouter ressource
b. Supprimer ressource
c. Désactiver ressource
52
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Acteur principal :
Client
53
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Acteur secondaire :
Administrateur agence
Objectifs :
Pré-Conditions :
Post-Conditions :
Scénario nominal :
2. Le système lui affiche un formulaire lui demandant la date de début, la date de fin et
l’agence
5. Le client sélectionne une ressource et clique sur le bouton “ajouter à mon panier”
6. Le client répète les étapes 4 et 5 jusqu’à ce qu’il ajoute toutes les ressources qu’il veut
réserver à son panier
54
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
12. Le système envoie un mail au client pour lui informer que sa réservation est validée
Le système lui affiche un message lui disant qu’il ne trouve pas une ressource disponible
et le scénario reprend en 3
Acteur principal :
Client
Objectifs :
Pré-Conditions :
Post-Conditions :
Scénario nominal :
55
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
a. Réserver
56
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
57
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Acteur principal:
Super administrateur
Acteur secondaire:
Administrateur agence
Objectifs:
Pré-Conditions:
Post-Conditions:
Scénario nominal:
58
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Acteur principal :
Administrateur agence
Objectifs :
Pré-Conditions :
L’administrateur d’agence est connecté et est sur la page de la gestion des véhicules
Post-Conditions :
Un véhicule est ajouté à la liste des maintenances et ne sera pas disponible dans la période de
maintenance
Scénario nominal :
59
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
4. Le système ajoute le véhicule sur la liste des maintenances et le redirige sur la page de
gestion des véhicules
Si le véhicule que l’administrateur de l’agence veut mettre en maintenance est réservé par un
client, le système le lui signale en lui affichant un message de confirmation, s’il confirme le
système le met en maintenance et annule les réservations du véhicule pour cette période.
Acteur principal :
Administrateur agence
Objectifs :
Pré-Conditions :
L’administrateur d’agence est connecté et est sur la page de la gestion des maintenances
Post-Conditions :
La maintenance d’un véhicule est annulée et la ressource est de nouveau disponible pour la
période.
Scénario nominal :
60
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
a. Mettre en maintenance
b. Annuler maintenance
61
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Acteur principal :
Client
Acteur secondaire :
Administrateur agence
Objectifs :
Pré-Conditions :
Post-Conditions :
Scénario nominal :
62
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
2. Le système lui affiche un formulaire lui demandant la date de début, la date de fin,
l’agence de départ et l’agence d’arrivée
10. Le système envoie un mail au client pour lui informer que sa réservation est validée
Le système lui affiche un message lui disant qu’il n y a pas de véhicules disponibles pour sa
réservation et le scénario reprend en 3.
63
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
1. Le langage Python
64
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
1.1. Présentation
Python est un langage portable, dynamique, extensible, gratuit, qui permet (sans
l'imposer) une approche modulaire et orientée objet de la programmation. Python est
développé depuis 1989 par Guido van Rossum et de nombreux contributeurs bénévoles. Sa
première version est sortie en 1991.
Python est un langage qui peut s'utiliser dans de nombreux contextes et s'adapter à tout
type d'utilisation grâce à des bibliothèques spécialisées à chaque traitement. Il est cependant
particulièrement utilisé comme langage de script pour automatiser des tâches simples mais
fastidieuses comme par exemple un script qui récupérerait la météo sur Internet ou qui
s'intégrerait dans un logiciel de conception assistée par ordinateur afin d'automatiser certains
enchaînements d'actions répétitives. On l'utilise également comme langage de développement
de prototype lorsqu'on a besoin d'une application fonctionnelle avant de l'optimiser avec un
langage de plus bas niveau. Il est particulièrement répandu dans le monde scientifique, et
possède de nombreuses extensions destinées aux applications numériques.
65
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Un egg est un packaging d’un module Python incluant ses métadonnées telles que sa
version, sa documentation et les éventuelles dépendances d’autres eggs. La grande majorité
des eggs publics sont distribués sur le site pypi1.
Un package Python peut être distribué sous la forme d’une simple archive (zip ou
tar.gz). Python inclut la librairie distutils2 afin de réaliser ces distributions source, mais celle-
ci ne gère pas les dépendances entre packages. Distutils contient une extension : destribute qui
ajoute de nombreuses fonctionnalités :
entry points
$ easy_install <nom_du_paquet>
Il y a également pip3 qui lui propose un moyen alternatif à easy_install pour installer
un package.
2. Le Framework Django
2.1. Présentation
1
http://cours-plone-niveau-1.ecreall.com/integrateur/glossaire.html#term-pypi
2
http://docs.python.org/library/distutils.html
3
http://pypi.python.org/pypi/pip
66
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Le but premier de Django est de faciliter la mise en œuvre de sites web complexes
interfacés à des bases de données. Par framework, Django peut être considéré comme une
boîte à outils où chaque module peut fonctionner de façon indépendante.
Django se base sur un design pattern appelé MVT pour modèle, vue, template (dérivé
du MVC : modèle – vue – contrôleur) :
Les modèles décrivent la structure de notre Base de Données sous forme d'objets
L'intérêt de fonctionner sous ce modèle MVT est que notre code devient extrêmement
maintenable : une modification des modèles n’entraîne pas nécessairement une modification
des vues ou des templates, et vice versa car chacune des parties a un rôle défini bien différent,
voire indépendant.
67
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Brower
View
Model
DataBase
Une des principales choses que l'on peut reprocher à des langages comme PHP, c'est le
typage quasi inexistant des données : on laisse à PHP le soin de définir si telle variable est un
String ou un int par exemple.
Avec Django, il nous est imposé de typer nos attributs de modèles qui nous
permettront par la suite de générer automatiquement notre base de données (le framework
supporte plusieurs types de BDD). En guise d'exemple, nous pouvons créer une table Membre
toute simple, il nous suffit d'écrire ceci :
class Membre(models.Model):
pseudo = models.CharField(max_length=200)
mail = models.EmailField(max_length=75)
68
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
dateCreation = models.DateField(auto_now=True)
Ces quelques lignes suffisent à définir entièrement notre table Personne qui sera
automatiquement créée dans la BDD par Django. De plus, ce typage de modèle va plus loin
car il permet par la suite de vérifier que les données entrées correspondent bien au type
spécifié dans nos modèles, et ce, de manière complètement automatique : nous n'avons pas
besoin de nous soucier du code de la validation de nos formulaires !
Une particularité Django appelée les template tags permet d'étendre ce moteur de
templates en lui ajoutant d'autres fonctionnalités que nous pouvons coder nous-même, par
exemple : une balise qui permettrait de redimensionner automatiquement les images sur le
serveur ou ce genre de choses...
1
TWIG est un moteur de template PHP
69
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
codées pour les greffer sur un autre projet sans avoir forcément besoin de les adapter. Cette
pratique favorise également le partage d'applications de la part de la communauté Django :
nous pouvons trouver beaucoup d'applications réutilisables sur le net.
70
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Django en tant que framework ne permet pas, seul, l'intégration d'AJAX côté client
web. Ceci est un choix de l'équipe de développement qui préfère laisser à l'utilisateur le choix
de la librairie AJAX à combiner avec Django (Prototype, Mochikit, jQuery, dojo, ext, etc.).
Il n'y a pas d'outil intégré au framework pour gérer les migrations lors des
modifications des modèles. Mais des applications Django comme South permettent de pallier
ce manque.
Nous pouvons aussi noter une contrainte du côté de l’hébergement : Django étant codé
en Python, le fournisseur d'hébergement où vous souhaitez mettre votre projet devra installer
Python ainsi qu'un accès SSH pour pouvoir installer les modules dont vous avez besoin.
III. Conception
django.contrib est un package du Framework Django qui regroupe toutes les classes
pour la gestion des utilisateurs et droits.
71
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Nous allons passer à la description des méthodes que nous avons implémentées dans le
tableau ci-dessous.
Méthodes Description
72
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
73
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
74
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Méthodes Description
75
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
76
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
CHAPITRE 4
Mise en œuvre
1. Git
Pour conserver le code source relatif aux différentes versions de nos applications nous
avons utilisé le logiciel de gestion de versions (ou VCS en anglais, pour Version Control
System) Git : un logiciel libre créé par Linus Torvalds, le créateur du noyau Linux, et
distribué selon les termes de la licence publique générale GNU version 2.
Généralement, chaque nouvelle version d'un fichier est appelée révision et son numéro
de version est incrémenté de un (1) par rapport à la précédente.
Git dispose notamment des commandes1 parmi lesquelles nous pouvons citer :
77
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
git add : ajoute de nouveaux objets blobs dans la base des objets pour chaque
fichier modifié depuis le dernier commit. Les objets précédents restent inchangés.
git commit : intègre le haché d'un objet tree et les hachés des objets commits
parents pour créer un nouvel objet commit.
2. JQuery
jQuery est une bibliothèque JavaScript libre qui porte sur l'interaction entre JavaScript
(comprenant Ajax) et HTML, et a pour but de simplifier des commandes communes de
JavaScript. La première version date de janvier 2006.
Événements ;
Effets et animations ;
Ajax ;
78
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Plugins ;
3. PostgreSQL
Pour le stockage des données du site de réservation de véhicules nous avons utilisé le
SGBDRO PostgreSQL. Il est fondé sur une communauté mondiale de développeurs et
d'entreprises et est un outil libre disponible selon les termes d'une licence de type BSD.
d'une partie client devant être installée sur toutes les machines nécessitant
d'accéder au serveur de base de données (un client peut éventuellement
fonctionner sur le serveur lui-même).
requêtes complexes ;
clés étrangères ;
déclencheurs (triggers) ;
vues ;
79
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
4. Mezzanine
Un éditeur WYSIWIG ;
80
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Un moteur de blog ;
Une gestion des comptes d’utilisateurs et des profils avec une vérification des e-
mails ;
…
1. Le Framework
1
Un outil HTML, CSS et JavaScript développé par Twitter pour gérer les composants et interactions des UI
WEB
2
Voir la Partie Méthodologie (III.2.3)
81
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Réfactoriser le
Écriture d´un
Vérifier que le code :
premier test Implémentation
test échoue afin Vérifier que le l´améliorer tout
unitaire pour des classes du
de vérifier la test passe en gardant les
chaque classe du module
validité du test mêmes
module
fonctionnalités
Après avoir développé les quatre (4) modules du système de réservation générique
nous avons créé un générateur.
2. Le générateur
Le générateur est un egg (plugin python). Nous avons commencé par installer le egg
PasterScript qui fournit la commande « paster » avec laquelle on peut créer des squelettes de
code. Après l’installation on tape la commande
82
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
qui va nous demander par la suite le nom du projet qu’on veut générer, la version, une
description, les noms des développeurs et les emails, les mots clés utilisés pour des recherches
une fois qu’on mette notre plugin sur le site officiel des eggs, le nom de la licence, …
Le fichier le plus important c’est « setup.py » qui est le point d’entré lors de
l’installation du plugin.
import os
version = '1.0'
long_description = (
open('README.txt').read()
+ '\n' +
83
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
'Contributors\n'
'============\n'
+ '\n' +
open('CONTRIBUTORS.txt').read()
+ '\n' +
open('CHANGES.txt').read()
+ '\n')
setup(name='generateur_ml',
version=version,
long_description=long_description,
classifiers=[
],
keywords='',
author='',
author_email='',
license='gpl',
packages=find_packages('src'),
namespace_packages=['generateur_ml'],
include_package_data=True,
zip_safe=False,
install_requires=[
'setuptools',
'sysres'
84
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
],
entry_points="""
[console_scripts]
sysres = generateur_ml.main:main
sysres_ressource = generateur_ml.generateur_ressource:main
sysres_tarification = generateur_ml.generateur_tarification:main
""",
C’est dans la dernière partie du fichier (« entry points ») que nous définissons les
commandes de notre générateur (sysres, sysres_ressource et sysres_tarification) avec pour
chacune la fonction principale.
sysres nom_du_projet [-d driver_BD [-p port] [-h host] [-u username] [-w
password]]
Pour créer un nouveau site de location il faut utiliser la commande sysres en utilisant
la syntaxe ci-dessus. Il va créer un projet Django et installer automatiquement les 5
applications de notre moteur de location : sysres.gestion_client, sysres.ressource,
sysres.disponibilite, sysres.tarification et sysres.reservation.
Exemple :
85
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Exemple :
Cette commande permet de générer une ressource. Il crée une application Django en
générant un modèle de type ressource, les tests unitaires et les templates CRUD de la
ressource. Si on précise un système de tarification il l’applique sur la ressource.
Exemple :
86
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
87
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Figure 45 : Liste des véhicules disponibles pour une réservation + les filtres
Sur la deuxième étape le site nous montre les véhicules disponibles pour notre
réservation et on peut faire aussi des filtres suivant les catégories ou bien suivant le volume si
c’est un véhicule utilitaire comme le montre la figure 46.
88
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
89
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
90
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
91
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
92
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Conclusion
Dans le cadre de notre stage, nous avons réalisé un Framework pour le développement
de systèmes de réservation en ligne.
Pour la conception du Framework nous avons fait une analyse ascendante. Celle-ci
débute par l’étude des systèmes de réservation les plus utilisés dans des domaines tels que les
réservations de véhicules, de chambres d’hôtel et de billets d’avion. Dans notre approche,
nous avons noté l’exemple d’Air France, de Booking Car et de Booking qui sont les plus
connus. Ensuite, nous avons recensé les modules communs aux différents systèmes afin
d’avoir un modèle générique qui a été utilisé pour l’implémentation du Framework. Et enfin,
la mise en place des sites de réservation de véhicules et de chambres d’hôtel a été faite sous
forme d’instances du Framework.
Le Framework est en production et nous prévoyons l’ajout d’un module de gestion des
tests unitaires et d’intégration sur les versions à venir.
93
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne
Mémoire de fin de cycle
Cheikh Sidya CAMARA
Bibliographie / Wébographie
http://extremeprogramming.free.fr
https://docs.djangoproject.com
http://www.journaldunet.com
http://fr.wikipedia.org
http://www.siteduzero.com
http://mezzanine.jupo.org
http://www.omg.org
“The Definitive Guide to django, Web Development Done Right” de Adrian Holovaty
et Jacob Kaplan-Moss
94
Conception et Réalisation d´un Framework pour le Développement de Systèmes de Réservation en Ligne