Vous êtes sur la page 1sur 45

Agence de voyage ISAEG

Page 1 sur 45 Mai 2014


Agence de voyage ISAEG

Chapitre1 : Présentation générale du projet

1.1 Introduction
Durant ce chapitre, nous concentrera sur la présentation des établissements universitaire tunisien, définir
notre mission, décrire le processus métier de notre projet.
Ainsi, on cernera les faiblesses systèmes remarquées à travers la rubrique problématiques.

1.2 Présentation et analyse de l’existant :


1 .2.1 Les agences de voyages
Une agence de voyages est une entreprise qui propose et vend des offres de voyages à ses clients.
Elle joue le rôle d'intermédiaire entre les consommateurs et les différents prestataires de services
présents sur le marché du tourisme : Tour-opérateurs, compagnies aériennes, hôteliers, loueurs de
voiture, assurances voyage, etc.
Les agences de voyages, de par leur proximité avec le client, ont également un rôle de conseil : elles
avertissement et informent les consommateurs des formalités à accomplir avant tout voyage ou
séjour à l'étranger, conseillent et établissent une offre personnalisée en fonction des attentes et
désirs du client.
Généralement, les agences de voyages proposent à la vente les offres composées par les tour-
opérateurs. Elles constituent donc un intermédiaire entre le tour opérateur et le consommateur,
lequel ne traite alors qu'avec l'agence de voyages. Les agences de voyages sont alors
traditionnellement rémunérées par une commission sur les prestations vendues.
Néanmoins, il est de plus en plus fréquent que les agences de voyages composent elles-mêmes les
offres qu'elles proposent ensuite à leur clients, en regroupant les services qui leur sont présentés par
les différents prestataires du marché du tourisme. Elles s'affranchissent alors du concours des tour-
opérateurs pour offrir de façon autonome des « packages » ou encore « forfaits touristiques »
rassemblant différentes prestations.
Dès lors, la rémunération des agences de voyages ne vient plus seulement des tours opérateurs dont
elles vendent les « packages » mais de leur propre rémunération sur les services fournis par les
prestataires partenaires ainsi que de leurs clients voyageurs qui sous forme d'honoraires de conseil
et de réservation.
Ainsi, alors que les tour-opérateurs s'aventurent de plus en plus sur le terrain d'activité des agences
de voyages en proposant leurs offres directement sur internet, les agences de voyages ont également
tendance à empiéter sur le domaine des tour-opérateurs en proposant leurs propres. forfaits négociés
directement avec les prestataires de services.
Page 2 sur 45 Mai 2014
Agence de voyage ISAEG

1.2.2 Les services d’une agence de voyage


Une agence de voyage peut accomplir plusieurs services .Parmi ces services on peut trouver
Les forfaits touristiques (transport et hébergement), les vols secs (transport uniquement), Les
séjours à la carte, les réservations de chambres d'hôtel et le location de voiture.

2 Présentation et analyse de l’existant 


2 .1 Présentation du milieu de l’application « le Web »
Dans les années 90, un nouveau concept de l’Internet est apparu : WWW (Word Wide Web). C’est
le service qui assure l’accès à l’Internet. Il permet d’accéder et de naviguer à travers la toile. Le web
c’est un ensemble structuré de pages HTML (Hypertexte Markup Langage), liées entre elles pour
permettre au navigateur de passer facilement d’une page à l’autre. Le HTML est un langage qui
permet d’écrire des hyper documents d’une façon descriptive à l’aide d’un marqueur le protocole le
plus utilisé pour ce type de communication et le protocole HTTP (Hypertexte Transfert Protocole).
Le navigateur est désigné par une adresse URL (Uniform Ressource Location).C’est une adresse
qui contient à la fois le nom du service demandé et le nom du document. Le système est placé sur
un serveur connecté au web. Toutes les informations seront accessibles via une simple connexion à
l’Internet. Tant sur le plan technique, que sur le plan architectural, il existe actuellement deux types
de site WEB : le site web dynamique et le site web statique. La différence entre ces deux types,
c’est la présence, ou l’absence d’une base des données. Le Web est un système client-serveur dont
le fonctionnement s'apparente à des relations client-fournisseur. L'ordinateur personnel, doté de son
logiciel de navigation (Internet Explorer , Firefox ...), joue le rôle du client. Les ordinateurs distants
sur lesquels sont hébergés les sites web sont des serveurs.

Figure 1 : Schéma descriptif du milieu web

Page 3 sur 45 Mai 2014


Agence de voyage ISAEG

Lorsque l'on saisit l'adresse d'un site web - appelée URL - dans un navigateur ou que l'on clique sur
un lien hypertexte, le navigateur envoie une requête au serveur qui va la traiter et lui renvoyer via
Internet les données demandées (page web, image, vidéo...). Le navigateur interprète les données
reçues et les affiche à l'écran. Un site web est un ensemble de pages organisées en structure
hiérarchique, disponible sur un serveur. Il peut être construit avec des pages statiques, des pages
dynamiques ou un assemblage des deux.

2.2 Serveur http

Un serveur HTTP (ou service web) est un logiciel utilisé pour servir des ressources HTTP.
Un client HTTP est un logiciel utilisé pour manipuler ces ressources. Un serveur web est un hôte
sur lequel fonctionne un serveur HTTP (ou  service web). Un serveur web peut héberger les
ressources qu’il dessert, peut les récupérer sur des hôtes distants, délivrer ces ressources telles
quels, on parlera alors de ressources statiques), ou bien les modifier en fonction de différents
critères, on parlera alors de ressources dynamiques .Il est courant sur les services de grosse taille
que les ressources soient réparties sur différents serveurs web et éventuellement différents types de
serveurs HTTP, certains ayant de meilleurs performances pour les fichiers statiques, d'autre plus de
souplesse pour délivrer des fichiers dynamiques. Un serveur web peut être un hôte spécialisé, une
partie d'une infrastructure spécialisée ou bien encore un hôte plus généraliste. On appelle site web,
l'ensemble des ressources HTTP associées à un nom de domaine et un ou plusieurs noms d'hôtes.
Une adresse web est une URL de page web, généralement écrite sous une forme simplifiée limitée à
un nom d’hôte. Une adresse de site web est en fait l’adresse d’une page du site prévue pour
accueillir les visiteurs.

2.3 Client http

Un client HTTP est un outil permettant d'utiliser les ressources fournies par un serveur HTTP. Il est
chargé en relation avec différents services, de faire traduire le nom d'hôte en adresse IP par un DNS,
de rentrer en contact avec le serveur HTTP, et de lui fournir différentes informations telles que le
nom du site, et la ressource désirée, ainsi que ses capacités (gestion de différents types de ressource,
capacité d'affichage, possibilité de compression de données, etc.) ou sa volonté (choix des langues,
protection de la vie privée) dans l'utilisation des données fournies. Un navigateur web est un type de
logiciel client HTTP à interface homme-machine et conçu pour accéder aux ressources du web. Sa
fonction de base est de permettre la consultation des documents HTML disponibles sur les serveurs
HTTP. Le support d’autres types de ressources et d’autres protocoles de communication dépend du

Page 4 sur 45 Mai 2014


Agence de voyage ISAEG

type de navigateur. Un robot d'indexation est, dans le domaine du web, un type de logiciel client
HTTP, utilisé pour indexer les différentes ressources de sites web. Un agrégateur est, dans le
domaine du web, un type de logiciel client HTTP, permettant de regrouper les fils de syndication de
différents sites web. Un aspirateur de site web est un client HTTP permettant de récupérer
l'intégralité d'un site web, pour le consulter ensuite hors-ligne ou en conserver une archive.

3 Critique de l’existant 
Aucun système de gestion n'est parfait. Tous ont leurs avantages et leurs inconvénients, dont les
observateurs attentifs devraient être conscients. Dans cette section, nous donnons les arguments
présentés par les tenants et les critiques des divers systèmes. Il importe de se souvenir que ces
arguments sont parfois polémiques; il est donc utile de s'efforcer d'évaluer chacun des systèmes en
toute objectivité. Il s'agit de déterminer si un système de gestion des agence de voyages permet ou
non d'atteindre certains objectifs recherchés. Bien que cela soit éminemment souhaitable, il est
quasiment impossible de trouver un système qui réponde à tous les critères demandées. Ceux-ci
donnent cependant une perspective objective pouvant faciliter la comparaison et l'évaluation des
applications web. Pour modéliser et réaliser le système de gestion de d’une agence de voyages, il
nous était obligatoire d’assembler les informations vitales auprès des professionnels du domaine.
Ultérieurement, nous avons organisé les informations rassemblées ce qui nous a amené à cerner les
défaillances suivantes :
 Difficulté de réserver et emmètre des billets de transport.
 Difficulté de percevoir des informations sur les services annexes (hôtels ...).
 Difficulté de connaitre le lieu de l’entreprise.

4 Expression des besoins :


4.1 Présentation de l’application
Notre projet consiste à développer une application de réservations en ligne des hôtels, des vols et
des moyen de transport, Cette fonctionnalités doit être lisible a partir une application web, soit
d’une opération de réservation, consultation des informations, soit d’une opération de contact...
En outre, l’informatisation permet à l’agence de voyages d’éliminer dizaine de problèmes autour de
l’opération de réservation. En respectant la législation quant au contenu, aux mentions obligatoires
et concernant la conservation et l'archivage.

Page 5 sur 45 Mai 2014


Agence de voyage ISAEG

4.2 Objectifs à atteindre


Le présent projet répond à l’objectif de l’utilisation de l’Internet, le web comme outil efficace
d’ouverture sur le monde extérieur. L’objectif de ce projet est de concevoir et réaliser portail web
intitulé «Création et implémentation d’une application web pour une agence de voyages » qui
consiste à la réalisation d’un site web de gestion de la réservation et pour la consultation et les
demande de réservation, dont le but est d’améliorer la qualité des services en facilitant la circulation
et la communication d’une information cohérente et fiable de données.
Le système dont on veut se gratifier, doit être efficace, évolutif, ergonomique et offrant les
informations indispensables à temps réel.
Ces objectifs servent à améliorer certaines tâches manuelles, elle permet aussi :
 Faciliter la consultation des données des vols, des hôtels et des agences de locations de voitures.
 superviser et coordonner l’administration des réservations.
 gérer l’inscription des clients lors d’une réservation.

5 Cahier des charges


L’utilité d’un système logiciel est déterminée par ses exigences fonctionnelles et ses
caractéristiques non- fonctionnelles, ainsi que ses contraintes. A titre de rappel :
Une exigence fonctionnelle est une exigence définissant une fonction du système à développer. Ce
que le système doit faire.
Une exigence non-fonctionnelle est une exigence qui caractérise une propriété (qualité) désirée du
système telle que sa performance, sa robustesse, sa convivialité, sa maintenabilité ,etc. ;
Une contrainte est une restriction sur une ou plusieurs valeurs d’une partie du système ou de tout le
système.
5.1 Caractéristiques fonctionnels au futur système
Les Caractéristiques fonctionnels sont :
La mise à jour d’une liste des vols, hôtels et voiture;
La mise à jour de la liste des utilisateurs.
Passer une réservation en toute liberté, sécurité.
Identification sécurisé a l’interface de réservation.
5.2 Les contraintes (Données à prendre en compte)
La présence de l’utilisateur et la vérification de la personnalité par sont détails et ses
paramètres d’authentification.
La fermeture de session après chaque opération de réservations.

Page 6 sur 45 Mai 2014


Agence de voyage ISAEG
5.3 Caractéristique non fonctionnel au futur système
Besoin d’utilisabilité : font référence aux aspects généraux de l’interface utilisateur, en outre assurer
un aspect ergonomique aux interfaces ;
Besoins de performance :décrivent les performances d’exécution du système, généralement en
termes de temps de réponse.
Besoins de disponibilité/fiabilité : assuré que le système soit toujours bien prêt à l’emploi ;
Besoins de sécurité : peuvent définir les niveaux d’accès possibles au système pour les utilisateurs
du système.
Besoins physiques : définissent les configurations matérielles minimales essentiels au progression
du système ;
Besoins de déploiement : décrivent la façon dont l’application sera livrée à l’utilisateur final.
5.4 Gains tangibles attendus par la réalisation du projet 
Garantir un espace d’archivage et de stockage des informations, liste des utilisateurs, vols, voitures
et hôtels.
6 Modules du système :
Dans ce qui suit, on donne une description des modules (dégagés suite à l’étude de cahier de
charge) suivant l’ordre chronologique des étapes.
Gestion des comptes d’utilisateurs : la gestion des comptes utilisateurs consiste à donnerles droits
d’accès aux internautes de cette application, en effet l’administrateur de cette application, il a tous
les droits d’accès mais son travail consiste à gérer la gestion des comptes utilisateurs. Il peut
ajouter, modifier ou supprimer un compte.
Gestion des authentifications : via ce module on s’intéresse a authentification des utilisateurs, ce
dernier permettant de gérer les autorisations est très important pour une opération des votes qui à
besoin que l’utilisateur soit enregistrer avant de pouvoir commencer à sélectionner le choix.
Gestion des réservations : l’administrateur dans ce module gère la liste des réservations pour les
vols, les voitures et les hôtels(ajouter, modifier, supprimer)…
Gestion des hôtels : Dans ce module les l’administrateur gère les listes des hôtels et rempli leurs
informations et détails
Gestion des voitures : l’administrateur dans ce module gère la liste des voitures pour les (ajouter,
modifier, supprimer)…
Gestion des Vols : l’administrateur dans ce module gère la liste des vols (ajouter, modifier,
supprimer)…

Page 7 sur 45 Mai 2014


Agence de voyage ISAEG

6.1 Identification des acteurs du système :


Un acteur représente l'abstraction d'un rôle joué par des entités externes (utilisateur, dispositif
matériel ou autre système) qui interagissent directement avec le système étudié.Un acteur peut
consulter et/ou modifier directement l'état du système, en émettant et/ou en recevant des messages
éventuellement porteurs de données.
Les acteurs qui interagissent avec le système sont :
 Administrateur : acteur physique responsable à la gestion de l’application, cet acteur
est chargé de superviser l’application, gérer les différents fonctionnalités du système.
 utilisateur : c’est un acteur physique capable d’interagir avec le système, ce dernier
aux droits d’accès au différents service de l’application c’est l’utilisateur.
 Systèmes: Acteur morale permet de gérer l’opération du vote réalisé sur le système,
et vérifier les informations concernant les réservations.
Conclusion
Cette partie est achevé avec l’objectif de la mission, nous passons par la suite au chapitre
suivant, étude préliminaire.

Page 8 sur 45 Mai 2014


Agence de voyage ISAEG

Chapitre 2 : étude préliminaire

1 Introduction
Ce présent chapitre sera consacré pour l’étude préliminaire du projet. On dégage le cahier des
charges adéquat à la solution adoptée, envisager les modules et leurs besoins fonctionnels.

2 Conception :
Après une première étude que nous avons menés, nous avons officialisé le choix d’un certain
nombre des techniques clés pour notre projet. Ces techniques se basent sur la modélisation qui
depuis longtemps une pratique indispensable au développement est mise en place.
Parmi ces techniques on peut citer la modélisation objet avec UML
Un modèle est en effet une abstraction du résultat dont le but est de documenter, de prévoir,
d’étudier, de collecter ou d’estimer des informations d’un système.
2.1 Merise :
Merise  (prononcer « Meurise » et non « Mérise ») est une méthode d'analyse, de conception et
de gestion de projet informatique. Merise a été très utilisée dans les années 1970 et 1980 pour
l'informatisation massive des organisations. Cette méthode reste adaptée pour la gestion des projets
internes aux organisations, se limitant à un domaine précis. Elle est en revanche moins adaptée
aux projets transverses aux organisations, qui gèrent le plus souvent des informations à caractère
sociétal (environnemental et social) avec des parties prenantes.
La méthode Merise d'analyse et de conception propose une démarche articulée simultanément selon
3 axes pour hiérarchiser les préoccupations et les questions auxquelles répondre lors de la conduite
d'un projet :
 Cycle de vie : phases de conception, de réalisation, de maintenance puis nouveau cycle de
projet.
 Cycle de décision : des grands choix (GO-NO GO : Étude préalable), la définition du projet
(étude détaillée) jusqu'aux petites décisions des détails de la réalisation et de la mise en œuvre
du système d'information. Chaque étape est documentée et marquée par une prise de décision .

Page 9 sur 45 Mai 2014


Agence de voyage ISAEG

Cycle d'abstraction : niveaux conceptuels, organisationnel, logique et physique/opérationnel (du


plus abstrait au plus concret) L'objectif du cycle d'abstraction est de prendre d'abord le grandes
décisions métier, pour les principales activités (Conceptuel) sans rentrer dans le détail de questions
d'ordre organisationnel ou technique.
La méthode Merise, très analytique (attention méthode systémique), distingue nettement les
données et les traitements, même si les interactions entre les deux sont profondes et s'enrichissent
mutuellement (validation des données par les traitements et réciproquement). Certains auteurs
(Merise/méga, puis Merise/2) ont également apporté la notion complémentaire de communications,
vues au sens des messages échangés. Aujourd'hui, avec les SGBD-R, l'objet, les notions de données
et de traitements sont de plus en plus imbriquées.
2.2 Définition d’UML :
UML (Unified Modeling Language) n’est pas une méthode de développement mais un langage de
modélisation graphique et textuel destiné à comprendre et décrire des besoins, spécifier et
Documenter des systèmes, esquisser des architectures logicielles, concevoir des solutions et
communiquer des points de vue. Ce langage permet de mettre en œuvre neuf diagrammes différents.
Dans la mise en œuvre d’une méthode de développement, l’un ou l’autre des diagrammes est choisi
en fonction des concepts que l’on veut représenter à une étape de développement donnée.
2.3 Pourquoi UML :
Le recours à utiliser UML est justifié par ses principaux critères :
-UML est plus expressif, plus propre et plus uniforme
-UML pourrait être appliqué à toute science fondée sur la description d’un système.
-UML permet aux projets de modéliser des choses qui n’auraient pas pu l’être avant.
-UML supprime toutes les différences non nécessaires de notation et de terminologies qui
obscurcissent les similarités de base de ces différentes approches.
2.2 Identification des acteurs du système :
Un acteur représente l'abstraction d'un rôle joué par des entités externes (utilisateur, dispositif
matériel ou autre système) qui interagissent directement avec le système étudié.Un acteur peut
consulter et/ou modifier directement l'état du système, en émettant et/ou en recevant des messages
éventuellement porteurs de données.
Les acteurs qui interagissent avec le système sont :
 Administrateur : acteur physique responsable à la gestion de l’application, cet acteur
est chargé de superviser l’application, gérer les différents fonctionnalités du système.
 utilisateur : c’est un acteur physique capable d’interagir avec le système, ce dernier
aux droits d’accès au différents service de l’application c’est l’utilisateur.

Page 10 sur 45 Mai 2014


Agence de voyage ISAEG

 Systèmes: Acteur morale permet de gérer l’opération du vote réalisé sur le système, et vérifier
les informations concernant les réservations.
Conclusion :
L’étude préliminaire s’achève avec l’élaboration du diagramme contexte. L’étude fonctionnelle est
abordée dans le chapitre suivant.

Page 11 sur 45 Mai 2014


Agence de voyage ISAEG

Introduction

En partant des analyses des besoins, ce chapitre entame la phase de conception de l’application.
L’objectif de cette phase est de concevoir le modèle de la solution informatique. En effet, on va
modéliser notre système suivant deux modèles : un modèle statique qui décrit les objets, leurs
propriétés et leurs relations. Et un modèle dynamique qui décrit les interactions entre ces objets.

1. Présentation de la méthode de conception

L'approche objet est une solution technologique incontournable. Ce n'est plus une mode, mais un
réflexe quasi-automatique dès lors qu'on cherche à concevoir des logiciels complexes qui doivent
"résister" à des évolutions incessantes. L’approche Orientée Objet en général, a pris un succès
considérable dans les différents domaines de l’informatique tels que : la programmation et les
systèmes de gestion de bases de données. Ceci est dû aux nombreux avantages que présente une
conception orientée objet. De cela, apparaît la nécessité d’une conception objet puisqu’elle permet
de :

 Avoir une conception itérative ;


 Garantir un haut niveau d’abstraction ;
 Procéder par incrément (approche ascendante) ;
 Favoriser la réutilisation et l’exploitation des composants logiciels ;
 Réduire la complexité du système en le fragmentant en plusieurs sous systèmes.

Pour bénéficier de tous ces avantages, nous avons décidé d’utiliser pour la conception de notre
application le langage standard UML (UnifiedModelingLanguage) pour modéliser le système.

1.1. UML

C’est un langage de modélisation d’objet, en anglais «UnifiedModelingLanguage», qui est né de la


fusion des méthodes objet dominantes (OMT, Booch et OOSE), puis normalisé par l'OMG en 1997.
UML est rapidement devenu un standard incontournable. UML comble une lacune importante des
technologies objet. Il permet d'exprimer et d'élaborer des modèles objets, indépendamment de tout
langage de programmation. Il a été pensé pour servir de support à une analyse basée sur les

Page 12 sur 45 Mai 2014


Agence de voyage ISAEG
concepts objet. Dans ce contexte de programmation objet, UML semble devenir une référence en
matière de langage de description de système et d'aide à la conception

1.2. Pourquoi UML :

Le recours à utiliser UML est justifié par ses principaux critères :


-UML est plus expressif, plus propre et plus uniforme
-UML pourrait être appliqué à toute science fondée sur la description d’un système.
-UML permet aux projets de modéliser des choses qui n’auraient pas pu l’être avant.
-UML supprime toutes les différences non nécessaires de notation et de terminologies qui
obscurcissent les similarités de base de ces différentes approches.

2. Conception de l’application

Dans cette étape, on va représenter graphiquement toutes les fonctionnalités qu’on va développer à l’aide
du diagramme des cas d’utilisation et du diagramme de séquence.

2.1. La modélisation dynamique

2.1.1. Diagramme des cas d’utilisation

Les cas d'utilisation (en anglais use cases) permettent de représenter le fonctionnement du système
vis-à-vis de l'utilisateur. Il s’agit d’une vue du système dans son environnement extérieur. Chaque
cas d’utilisation peut être spécifié sous forme de séquences d’informations entrantes et sortantes,
indiquant l’aspect dynamique du système.

2.1.1.1. Un acteur

Un acteur représente l'abstraction d'un rôle joué par des entités externes (utilisateur, dispositif matériel ou
autre système) qui interagissent directement avec le système étudié.Un acteur peut consulter et/ou modifier
directement l'état du système, en émettant et/ou en recevant des messages éventuellement porteurs de
données.
Les acteurs qui interagissent avec le système sont :
 Administrateur : acteur physique responsable à la gestion de l’application, cet acteur est chargé de
superviser l’application, gérer les différents fonctionnalités du système. : les cas d’utilisation
associés sont :
 gestion des vols,
 gestion des hôtels,
 gestion de location,

Page 13 sur 45 Mai 2014


Agence de voyage ISAEG
 gestion des réservations,
 gestion des comptes,
 gestion de messagerie,
 utilisateur : c’est un acteur physique capable d’interagir avec le système, ce dernier aux
droits d’accès au différents service de l’application.
les cas d’utilisation associés sont :
 Consulter des informations,
 Inscription,
 Demande de réservation,
 Gestion de messagerie,
 Systèmes: Acteur morale permet de gérer l’opération du vote réalisé sur le système, et
vérifier les informations concernant les réservations.

2.1.1.2. Cas d’utilisation coté utilisateur

Consulter Information

Inscrption
Utilisateur Authentification

<<include>>

Demande reservation
Reservation vols

<<include>>

Reservation hôtels
Reservation voitures

Demande de payement

Figure 2 : diagramme de cas d'utilisation coté utilisateur

Page 14 sur 45 Mai 2014


Agence de voyage ISAEG

2.1.1.3. Cas d’utilisation coté Administrateur

Consulter information

<<include>>
gérer des vols

<<include>>

Administrateur
Authentification
gérer des hôtels <<include>>

<<include>>

gérer des voitures


<<include>>

<<include>>
gérer des reservations

<<include>>

gérer des utilisateurs


<<include>>

gérer des message

gérer de payement

Figure 3 : Diagramme de cas d'utilisation coté administrateur

Page 15 sur 45 Mai 2014


Agence de voyage ISAEG
2.1.2. Description des cas d’utilisations :

Dans ce qui suit, on donne une description des modules (dégagés suite à l’étude de cahier de
charges) suivant l’ordre chronologique des étapes.
- Gestion des comptes d’utilisateurs : la gestion des comptes utilisateurs consiste à
donnerles droits d’accès aux internautes de cette application, en effet l’administrateur de
cette application, il a tous les droits d’accès mais son travail consiste à gérer la gestion des
comptes utilisateurs. Il peut ajouter, modifier ou supprimer un compte.
- Gestion des authentifications : via ce module on s’intéresse a authentification des
utilisateurs, ce dernier permettant de gérer les autorisations est très important pour une
opération des votes qui à besoin que l’utilisateur soit enregistrer avant de pouvoir
commencer à sélectionner le choix.
- Gestion des réservations  : l’administrateur dans ce module gère la liste des réservations
pour les vols, les voitures et les hôtels(ajouter, modifier, supprimer)…
- Gestion des hôtels : Dans ce module les l’administrateur gère les listes des hôtels et rempli
leurs informations et détails
- Gestion des voitures : l’administrateur dans ce module gère la liste des voitures pour les
(ajouter, modifier, supprimer)…
- Gestion des Vols : l’administrateur dans ce module gère la liste des vols(ajouter, modifier,
supprimer)…

2.1.3. Raffinement des cas d’utilisation

2.1.3.1. Fiche de cas d’utilisation : « Demande inscription »

Sommaire d’identification
Titre : demande inscription.
But : profiter des fonctionnalités du système.
Résumé : remplir un formulaire, et le valider par la suite
Acteurs :client
Responsable : administrateur
Scénario
Pré-condition : - Information personnel sur le client.
Post-condition : - Inscription de client
liste des clients enregistre dans la Base de données
Scénario nominal : Ce cas d’utilisation commence lorsque un client demande la page d’inscription
auprès du l’interface du système.

Page 16 sur 45 Mai 2014


Agence de voyage ISAEG
Enchainement (a) : remplir formulaire
L’internaute doit fournir les informations suivantes :
 Coordonnées
 Date de naissance
 Les paramètres de connexion
Le système gère automatiquement la date, l’heure de la création du compte et le privilège du
client par défaut « simple client »
Exception
Exception 1 : [Champ Obligatoire]: message d’erreur ("l’un des champs est vide")

2.1.3.2. Fiche de cas d’utilisation : « consulter information »

Sommaire d’identification
Titre : consulter information.
But : profiter des fonctionnalités du système.
Résumé : demande de consulter des informations (liste vols, hôtels, voiture, liste de
réservations...)
Acteurs :clients /administrateur
Responsable : administrateur
Scénario
Pré-condition : - Information personnel sur les vols, réservations, voiture et hôtels.
Post-condition : - ajout des informations
liste des vols, hôtels, voitures et réservations enregistre dans la Base de données.
Scénario nominal : Ce cas d’utilisation commence lorsque un client ou bien un administrateur
demande la page d’information sur les liste précédente et les liste auprès du l’interface du système.
Enchainement (a) : demande information des listes précédentes.
Le système doit fournir les informations suivantes :
 Détail de l’information demandé.
Le système gère automatiquement la date, l’heure de la demande et le privilège de
l’utilisateur

Exception
Exception 1 : [Champ Obligatoire]: message d’erreur ("information introuvable")

2.1.3.3. Fiche de cas d’utilisation : « Demande Ajout »

Sommaire d’identification

Page 17 sur 45 Mai 2014


Agence de voyage ISAEG
Titre : demande Ajout.
But : profiter des fonctionnalités du système.
Résumé : remplir un formulaire, et le valider par la suite
Acteurs :client/administrateurs
Responsable : administrateur
Scénario
Pré-condition : - Information personnel sur le client.
Post-condition : - authentification du client
liste des informations enregistre dans la Base de données
Scénario nominal : Ce cas d’utilisation commence lorsque un client ou l’administrateur demande
la page d’ajout auprès du l’interface du système.
Enchainement (a) : remplir formulaire
L’internaute doit fournir les informations concernées :
Le système gère automatiquement la date, l’heure de la création du compte et le privilège de
l’internaute.
Exception
Exception 1 : [Champ Obligatoire]: message d’erreur ("l’un des champs est vide")

2.1.3.4. Fiche de cas d’utilisation : « demande modification »

Sommaire d’identification
Titre : demande modification information.
But : profiter des fonctionnalités du système.
Résumé : demande de modifier des informations (liste vols, hôtels, voiture, liste de
réservations, des clients...)
Acteurs :administrateur
Responsable : administrateur
Scénario
Pré-condition : - Information personnel sur les vols, réservations, clients, voiture et hôtels.
Post-condition : - authentification de l’administrateur.
liste des vols, hôtels, voitures et réservations enregistre dans la Base de données.
Scénario nominal : Ce cas d’utilisation commence lorsque un client ou bien un administrateur
demande la page de modification sur les liste précédente et les liste auprès du l’interface du système.
Enchainement (a) : demande information des informations a modifié.
Le système doit fournir les informations suivantes :
 Détail de l’information demandé.
Enchainement (b) : l’utilisateur saisie les informations à modifier et confirme l’envoie du nouveau

Page 18 sur 45 Mai 2014


Agence de voyage ISAEG
formulaire
Le système gère automatiquement la date, l’heure de la demande et le privilège de
l’utilisateur

Exception
Exception 1 : [Champ Obligatoire]: message d’erreur ("information introuvable")

2.1.3.5. Fiche de cas d’utilisation : « supprimer information »

Sommaire d’identification
Titre : supprimer information.
But : profiter des fonctionnalités du système.
Résumé : remplir un formulaire, et le valider par la suite
Acteurs :administrateur
Responsable : administrateur
Scénario
Pré-condition : - Information personnel sur l’administrateur.
Post-condition : - information sur les données à supprimer.
liste des informations enregistre dans la Base de donnée
Scénario nominal : Ce cas d’utilisation commence lorsque un administrateur demande la page de
suppression auprès du l’interface du système.
Enchainement (a) : sélectionner information a supprimé
L’administrateur doit fournir les informations suivantes :
 Id de l’information
 Type de l’information
Le système gère automatiquement la date, l’heure de la suppression
Exception
Exception 1 : [Champ Obligatoire]: message d’erreur ("information introuvable")

2.1.3.6. Fiche de cas d’utilisation : « s’authentifier »

Sommaire d’identification
Titre : S’authentifier.
But : Authentifier utilisateur.
Résumé : Ajouter une nouvelle réservation, rechercher ou modifier les informations du
compte.
Acteurs :clients

Page 19 sur 45 Mai 2014


Agence de voyage ISAEG
Responsable : Administrateur
Scénario
Pré-condition : Information personnelle sur le client.
Inscription du client.
Post-condition : Information de client enregistré dans la base de données.
Scénario nominal : l’administrateur sollicite le système pour authentifier les clients.
Ce cas d’utilisation commence lorsque l’inscription du client est effectuée.
Enchainement(a) : Ajouter
Le client doit entrer les informations personnelles (login, mot de passe..) puis confirmer la
validité de l’information pour les enregistrer dans la base de données.
Enchainement(b) : Rechercher
Le client doit entrer son identifiant et en validant le système lui retourne les informations qui
lui sont associés, sinon un message d’erreur va apparaitre « client inexistant ».
Scénario alternatif : L’administrateur redemande la page du formulaire
Retour a l’enchainement (a)
Scénario d’échec : Néant

Exception
Exception 1 : Champ Obligatoire]: message d’erreur ("nom d’utilisateur ou mot de passe
incorrecte ")

2.1.3.7. Fiche de cas d’utilisation : « gérer réservations  »

Sommaire d’identification
Titre :gestion des réservations.
But : gérer les listes des réservations.
Résumé : l’ajout, modification, suppression des réservations.
Acteurs : Administrateur/client
Responsable : Administrateur
Scénario
Pré-condition : présence des clients, présence d’un hôtel, vols ou une voiture.
Post-condition : ajout d’une réservation
Modification d’une réservation
Suppression d’une réservation.
Scénario nominal : l’administrateur enregistre les informations effectué par les clients.
Ce cas d’utilisation commence lorsque l’administrateur demande les listes des réservations.

Page 20 sur 45 Mai 2014


Agence de voyage ISAEG
Enchainement(a) : Ajouter une réservation

Le client doit ajouter une réservation à la liste et le système affiche un message de


confirmation d’enregistrement.
Enchainement(b) : Modification une réservation.
L’administrateur doit afficher les informations, le système lui renvoie les informations
concernant les réservations En modifiant ces informations voulues, le système teste les
informations et les enregistre en lui envoyant le message « Modification réussie »
Enchainement(c) : Suppression d’une réservation.
L’administrateur sélectionne la réservation à supprimer. Et en confirmant la suppression le
système l’enlève de la base de données en lui envoyant le message « Suppression réussie»
Scénario alternatif : Annulation d’ajout.
Scénario d’échec : Néant.
Exception
Exception 1 : Champ Obligatoire]: message d’erreur ("réservations introuvable")
2.1.3.8. Fiche de cas d’utilisation : « gérer messages  »

Sommaire d’identification
Titre :gestion des messages.
But : gérer les listes des messages.
Résumé : l’envoie, la réception, suppression des messages.
Acteurs : Administrateur/client
Responsable : Administrateur
Scénario
Pré-condition : présence des clients
Post-condition : Envoie de message
Réception de message
Suppression d’un message.
Scénario nominal : l’administrateur recevoir les informations envoyer par les clients.
Ce cas d’utilisation commence lorsque l’utilisateur demande l’interface d’envoi du
message.
Enchainement(a) : envoyer un message

Le client doit ajouter un destinataire et envoie le message et le système affiche un message


de confirmation d’envoi.
Enchainement(b) : Réception de message.
L’administrateur doit afficher la liste des messages, le système lui renvoie les informations

Page 21 sur 45 Mai 2014


Agence de voyage ISAEG
concernant les messages reçu.

Enchainement(c) : Suppression d’un message.


L’administrateur sélectionne le message à supprimer. Et en confirmant la suppression le
système l’enlève de la base de données en lui envoyant le message « Suppression réussie»
Scénario alternatif : Annulation d’envoi.
Scénario d’échec : Néant.
Exception
Exception 1 : Champ Obligatoire]: message d’erreur ("message introuvable")
2.1.3.9. Fiche de cas d’utilisation : « gérer payements  »

Sommaire d’identification
Titre :gestion des payements.
But : gérer les listes des payements.
Résumé : acceptation, refus des payements.
Acteurs : Administrateur/clients
Responsable : Administrateur
Scénario
Pré-condition : présence des clients, présence d’une réservation.
Post-condition : effectuer un payement
Annuler payements
Scénario nominal : l’administrateur enregistre les informations effectué par les clients.
Ce cas d’utilisation commence lorsque l’administrateur demande les listes des payements.
Enchainement(a) : Ajouter un payement

Le client doit ajouter un payement à la liste et le système affiche un message de


confirmation de l’ajout.
Enchainement(b) : confirmation de payement.
L’administrateur doit afficher les payements, le système lui renvoie les informations En
modifiant ces informations voulues, le système teste les informations et les enregistre en lui
envoyant le message « acceptation effectuer »
Enchainement(c) : Suppression d’un payement.
L’administrateur sélectionne le payement à annuler. Et en confirmant la suppression le
système l’enlève de la base de données en lui envoyant le message « Suppression réussie»
Scénario alternatif : Annulation de payements.
Scénario d’échec : Néant.
Exception

Page 22 sur 45 Mai 2014


Agence de voyage ISAEG
Exception 1 : Champ Obligatoire]: message d’erreur ("réservations introuvable")

2.1.4. Diagrammes de séquence

Les diagrammes de séquences représentent les interactions entre le système et les acteurs, tout en
précisant l’ordonnancement chronologique des échanges des messages durant l’exécution du
système. Le diagramme de séquence est utilisé pour définir les scénarios d’un cas d’utilisation
donné.

Parmi tous les diagrammes des séquences que nous avons fait, on a choisi quelque uns pour
éclairer les diagrammes des cas d’utilisations.

2.1.4.1. Diagramme de séquence du cas d’utilisation : Demande de consultation

Interface Base de donée

: Utilisateur

1 : Demande consultation()

2 : demande critère de cnsulation()

3 : critère de consultation choisie() 4 : vérification()

Alt Echec 5 : demande vérification()

6 : Requette de selection()

7 : Execution()

Alt Echec 8 : Echec d'execution()

9 : Message d'erreur()

10 : Information selectionner()

11 : Information affiché()

Figure 4 : Diagramme de séquence du cas d’utilisation : Demande de consultation

Page 23 sur 45 Mai 2014


Agence de voyage ISAEG

2.1.4.2. Diagramme de séquence du cas d’utilisation : Demande d’ajout

Interface Base de donée

: Utilisateur

1 : Demande ajout()

2 : Affichr formulaire d'ajout()

3 : Saisie Information()

4 : Vérification()

Alt Echec
5 : Message d'erreur()

6 : Requette d'enregistrement()

7 : Execution()

Alt echec
9 : Message d'erreur() 8 : Erreur d'execution()

10 : Execution effectuer()
11 : Message de confirmation()

Figure 5:Diagramme de séquence du cas d’utilisation : Demande d’ajout

Page 24 sur 45 Mai 2014


Agence de voyage ISAEG
2.1.4.3. Diagramme de séquence du cas d’utilisation : Demande de modification

Interface Base de donée

: Utilisateur

1 : Demande consultation()

2 : demande critère de cnsulation()

3 : critère de consultation choisie() 4 : vérification()

Alt Echec 5 : demande vérification()

6 : Requette de selection()

7 : Execution()

Alt Echec 8 : Echec d'execution()

9 : Message d'erreur()

10 : Information selectionner()

11 : Information affiché()

12 : Modification des information()

13 : Vérification()

Alt Echec
14 : vérifier les informations()
15 : Requette de modification()

16 : Execution()

Alt Echec
17 : Erreur d'execution()
18 : Message d'erreur()

19 : Modification effectuer()

20 : Message de confirmation()

Figure 6:Diagramme de séquence du cas d’utilisation : Demande de modification

Page 25 sur 45 Mai 2014


Agence de voyage ISAEG

2.1.4.4. Diagramme de séquence du cas d’utilisation : Demande de suppression

Interface Base de donée

: Utilisateur

1 : Demande consultation()

2 : demande critère de cnsulation()

3 : critère de consultation choisie() 4 : vérification()

Alt Echec 5 : demande vérification()

6 : Requette de selection()

7 : Execution()

Alt Echec 8 : Echec d'execution()

9 : Message d'erreur()

10 : Information selectionner()

11 : Information affiché()

12 : demande de suppression()

13 : Vérification()

Alt Echec
14 : vérifier les informations()
15 : Requette de suppression()

16 : Execution()

Alt Echec
17 : Erreur d'execution()
18 : Message d'erreur()

19 : suppression effectuer()

20 : Message de confirmation()

Figure 7 : Diagramme de séquence du cas d’utilisation : Demande de suppression

Page 26 sur 45 Mai 2014


Agence de voyage ISAEG
2.1.4.5. Diagramme de séquence du cas d’utilisation : Demande de réservation

Interface Base de donée

: Utilisateur

1 : Demande reservation()

2 : demande critère de reservation()

3 : critère de reservation choisie() 4 : vérification()

Alt Echec 5 : demande vérification()

6 : Requette de selection()

7 : Execution()

Alt Echec 8 : Echec d'execution()

9 : Message d'erreur()

10 : Information selectionner()

11 : Information affiché()

12 : selection reservation()

13 : Vérification()

Alt Echec

14 : Erreur de selection()

15 : Requette enregistrement()

16 : Execution()

Alt Echec
17 : Erreur d'execution()
18 : Message d'erreur()

19 : Execution effectuer()

20 : Message de confirmation()

Figure 8 : Diagramme de séquence du cas d’utilisation : Demande de réservation

Page 27 sur 45 Mai 2014


Agence de voyage ISAEG

2.2. La modélisation dynamique

2.2.1. Diagramme de Classe

Message
Vols
+id_message
+id_user_send +id_vols
+id_user_recive +id_agence
+date_send +dte_depart
+objet +ville_depart
+contenue +ville_arrive
discutter +type
0..* +fichier agences

+Envoyer() +id_agence
Users
+Recevoir() +nom
1 +local
+id_users
+nom +services
+prenom Gérer 1..* +adresse Voiture
+login +id_voiture
0..* +gérer()
Client +mot_de_passe +id_agence
+privilege +matricule
+id_client 1
+authentifier() +caractéristique
+tel 0..*
+gérer() +etat
+adresse
+email Hotels
Reservé
effectuer
+id_hotels
0..* +id_agence
+nom
Administrateur +type
Reservation +ville
+id_admin
+tel +pays
1 +id_reservation
+adresse +id_agence
+email +prix
+delai
+reservé()
+consulter()
+gérer()

Figure 9 : Diagramme de classe

Conclusion 
Tout au long de ce chapitre, nous avons effectué la partie conception en montrant les différentes
facettes de notre application et nous avons abouti à une certaine conformité entre les objectifs
initialement fixés et les résultats obtenus.

Page 28 sur 45 Mai 2014


Agence de voyage ISAEG

Chapitre 3 : Implémentation et réalisation


3 .1 Introduction 
Dans les trois chapitres précédents, nous avons décrit les concepts techniques permettant
d’implémenter notre application web. Cette implémentation est l’étape qui consiste à la réalisation
des différents composants pour notre site.
Dans ce chapitre nous présenterons cette étape de réalisation. Nous décrirons aussi les ressources
logicielles utilisées dans le développement de notre projet.

a. Environnement matériel 
Pour la réalisation de ce projet on dispose d’un micro-ordinateur (système Intel(R) celoron(R)
CPU « 560@ 2,13 GHZ »RAM 1Go, Disque dur 120 Go, Système d’exploitation Windows XP
sweet 5,1(Microsoft Windows XP professionnel version 2002 service Pack3).

Page 29 sur 45 Mai 2014


Agence de voyage ISAEG
b. Environnement logiciel 
Pour la réalisation de notre application nous avons utilisés les outils et les langages de
programmation suivants :

 Langage de programmation : phpMysql


 Logiciel de conception : UML .
 Système de gestion de base de données : Phpmysql
 Logiciel de bureautique : office 2007

1.1. Star UML 

Page 30 sur 45 Mai 2014


Agence de voyage ISAEG
Star UML est un logiciel de modélisation UML, cédé comme open source par son éditeur, à la fin
de son exploitation commerciale, sous une licence modifiée de GNU GPL.
L'objectif [Par qui ?] de la reprise de ce projet était de se substituer à des solutions commerciales
comme IBM Rational Rose ou Borland Together.
Star UML gère la plupart des diagrammes spécifiés dans la norme UML 2.0.
Star UML est écrit en Delphi1, et dépend de composants Delphi propriétaires (non open-source), ce
qui explique peut-être pourquoi il n'est plus mis à jour.
1.2. Les langages et la méthode de programmation 
1.2.1. PHP 5 et MySQL
Le langage PHP est utilisé principalement en tant que langage de script côté serveur,ce qui veut dire
que c'est le serveur (la machine qui héberge la page web en question) qui vainterpréter le code PHP
et générer du code (constitué généralement d'XHTML ou d'HTML, deCSS, et parfois de JavaScript)
qui pourra être interprété par un navigateur.
Le PHP est un langage qui s’introduit dans les pages web par des balises PHP
<?php
echo 'Hello, World';
?>
Affichera : « Hello World » sur la page internet

1.2.2. Dreamweaver
Dreamweaver est un éditeur de site web de type « WYSIWYG » ( whatyouseeiswhatyouget - ce que
l’on voit est ce que l’on obtient).
Dreamweaver offre deux modes de conception par son menu affichage. L'utilisateur peut choisir
entre un mode création permettant d'effectuer la mise en page directement à l'aide d'outils simples,
comparables à un logiciel de traitement de texte (insertion de tableau, d'image, etc.). Il est
également possible d'afficher et d'éditer directement le code (HTML ou autre) qui compose la page.
On peut passer très facilement d'un mode d'affichage à l'autre ou opter pour un affichage mixte.
Cette dernière option est particulièrement intéressante pour les débutants, qui à terme, souhaitent se
familiariser avec le langage HTML.

Page 31 sur 45 Mai 2014


Agence de voyage ISAEG

1.2.3. HTML
L'Hypertext Markup Language , généralement abrégé HTML, est le format de données conçu pour
représenter les pages web. Il permet notamment d'implanter de l'hypertexte dans le contenu des
pages et repose sur un langage de balisage, d’où son nom. HTML permet aussi de structurer
sémantiquement et de mettre enforme le contenu des pages, d’inclure des ressources multimédias
dont des images,des formulaires de saisie, et des éléments programmables tels que des applets.
Ilpermet de créer des documents interopérables avec des équipements très variés demanière
conforme aux exigences de l’accessibilité du web. Il est souvent utiliséconjointement avec des
langages de programmation (JavaScript) et des formats deprésentation (feuilles de style en cascade).
HTML est initialement dérivé du StandardGeneralizedMarkupLanguage (SGML).
Le HTML n'est pas un langage de programmation. Il s'agit d'un langage permettant de décrire la
mise en page et la forme d'un contenu rédigé en texte simple. Une page HTML est ainsi un simple
fichier texte contenant des balises (parfois appelées marqueurs ou repères ou tags en anglais)
permettant de mettre en forme le texte, les images, etc.
1.2.4. MYSQL
MySQL est un système de gestion de base de données (SGDB). Selon le type d'application, sa
licence est libre ou propriétaire. Il fait partie des logiciels de gestion de base de données les plus
utilisés au monde, autant par le grand public (applications web principalement) que par des
professionnels, au même titre que Oracle ou Microsoft SQL Server.
MySQL AB a été acheté le 16 janvier 2008 par Sun Microsystems pour un milliard de dollars US.

Page 32 sur 45 Mai 2014


Agence de voyage ISAEG
MySQL est un serveur de bases de données relationnelles SQL développé dans un souci de
performances élevées en lecture, ce qui signifie qu'il est davantage orienté vers le service de
données déjà en place que vers celui de mises à jour fréquentes et fortement sécurisées. Il est multi-
thread et multi-utilisateurs.
C'est un logiciel libre développé sous double licence en fonction de l'utilisation qui en est faite :
dans un produit libre ou dans un produit propriétaire. Dans ce dernier cas, la licence est payante,
sinon c'est LGPL qui s'applique. Ce type de licence double est utilisé par d'autres produits.
1.2.5. EASY PHP 

EasyPHP est ainsi un pack fonctionnant sous Windows permettant d'installer en un clin d'œil les

éléments nécessaires au fonctionnement d'un site web dynamique développé en PHP.Le pack

EasyPHP est disponible sur les sites suivants : www.easyphp.org Il vous suffit dans un premier

temps de télécharger la version la plus récente de EasyPHP.

2. Presentation de la CMS Joomla


Joomla! est un système de gestion de contenu (en anglais CMS pour content management
system) libre, open source et gratuit. Il est écrit en PHP et utilise une base de
données MySQL. Joomla! inclut des fonctionnalités telles que des flux RSS, des news, une version
imprimable des pages, des blogs, des sondages, des recherches. Joomla! est sous licence GNU GPL.
Joomla!, déformation du mot swahili Jumla, veut dire : «tous ensemble», en arabe Jumla « ‫جملة‬ »
signifie «ensemble», «en bloc» ou «en tout», en moré « restons unis »1. Il est créé à partir du CMS
Open Source Mambo en août 2005, suite aux désaccords d'une majorité des développeurs open
source avec la société propriétaire du nom de Mambo. Celle-ci, pour accroître sa notoriété, voulait
utiliser ce nom pour le CMS propriétaire qu'elle développait en parallèle. La très grande majorité
des utilisateurs a rapidement suivi le mouvement.

Page 33 sur 45 Mai 2014


Agence de voyage ISAEG
Dans le concours 2009 du meilleur CMS open source organisé par la société britannique Packt (en),
Joomla! est arrivé 3e dans la catégorie Best Open Source PHP Content Management
System (derrière Drupal et WordPress) et 2e dans la catégorie nouvellement créée Hall of
Fame Award (derrière Drupal)2.

1.1. Caractéristiques
Le paquet se compose de plusieurs parties, qui sont construites pour être le plus modulaire possible,
ce qui permet des extensions et intégrations à faire facilement. Certaines extensions sont appelées
« plugins » (antérieurement connues sous le nom de "Mambots"). Les plugins sont des extensions
de fond qui donnent à Joomla de nouvelles fonctionnalités. Le WikiBot, par exemple, permet à
l'auteur de contenu Joomla d'utiliser "Wikitags" dans ses articles Joomla qui vont créer des
dynamiques d'auto-hyperliens vers des articles Wikipédia lorsqu'il est affiché. Il y a plus de 4500
extensions pour Joomla disponibles via des extensions Directory, OpenSourceMatters un site qui
fonctionne comme un répertoire officiel des extensions.

En plus des plugins, des extensions sont disponibles. Les "Composants" permettent d'effectuer des
tâches telles que la construction d'une communauté en expansion avec des fonctionnalités pour les
utilisateurs, la sauvegarde d'un site web, traduire le contenu et créer des URL qui sont plus
optimisés pour le référencement dans les moteurs de recherche. Certains « Modules » permettent
d'effectuer des tâches telles que l'affichage d'un calendrier ou un code personnalisé pour
Google AdSense etc. à insérer dans le code de base de Joomla.

Même s'il existe un nombre plus important d'extensions pour Joomla 1.0 que pour la version 1.5, de
nouvelles extensions compatibles avec cette dernière version sont désormais mises à disposition à
un rythme remarquable. Certaines des extensions de la version 1.0 peuvent être utilisées avec la
version 1.5 si Joomla est réglé sur le mode de compatibilité.

Joomla permet aux administrateurs de fixer les paramètres de configuration globaux qui affectent
tous les articles. Chaque page est conforme à ces paramètres par défaut, mais une page peut avoir
son propre réglage de chaque paramètre. Il est par exemple possible de choisir d'afficher l'article,
l'auteur, cacher l'auteur, etc.

1.2. Modèle-vue-contrôleur
Le patron modèle-vue-contrôleur (en abrégé MVC, de l'anglais model-view-controller), tout comme
les patrons modèle-vue-présentation ouPrésentation, abstraction, contrôle, est un modèle destiné à
répondre aux besoins des applications interactives en séparant les problématiques liées aux
différents composants au sein de leur architecture respective.
Ce paradigme regroupe les fonctions nécessaires en trois catégories :

Page 34 sur 45 Mai 2014


Agence de voyage ISAEG
1. un modèle (modèle de données),

2. une vue (présentation, interface utilisateur)

3. un contrôleur (logique de contrôle, gestion des événements, synchronisation)

1.2.1. Architecture
L'organisation d'une interface graphique est délicate. L'architecture MVC ne prétend pas en
éliminer tous les problèmes, mais fournit une première approche pour le faire. Offrant un cadre
normalisé pour structurer une application, elle facilite aussi le dialogue entre les concepteurs. L'idée
est de bien séparer les données, la présentation et les traitements. Il en résulte les trois parties
énumérées plus haut : le modèle, la vue et le contrôleur.

1.2.2. Le modèle
Le modèle représente le cœur (algorithmique) de l'application : traitements des données,
interactions avec la base de données, etc. Il décrit les données manipulées par l'application. Il
regroupe la gestion de ces données et est responsable de leur intégrité. La base de données sera l'un
de ses composants. Le modèle comporte des méthodes standards pour mettre à jour ces données
(insertion, suppression, changement de valeur). Il offre aussi des méthodes pour récupérer ces
données. Les résultats renvoyés par le modèle ne s'occupent pas de la présentation. Le modèle ne

contient aucun lien direct vers le contrôleur ou la vue. Sa communication avec la vue s'effectue au
travers du patron Observateur.

Le modèle peut autoriser plusieurs vues partielles des données. Si par exemple le programme
manipule une base de données pour les emplois du temps, le modèle peut avoir des méthodes pour
avoir tous les cours d'une salle, tous les cours d'une personne ou tous les cours d'un groupe de TD.

1.2.3. La vue

Ce avec quoi l'utilisateur interagit se nomme précisément la vue. Sa première tâche est de présenter
les résultats renvoyés par le modèle. Sa seconde tâche est de recevoir toute action de l'utilisateur
(hover, clic de souris, sélection d'un bouton radio, cochage d'une case, entrée de texte, de
mouvements, de voix, etc.). Ces différents événements sont envoyés au contrôleur. La vue
n'effectue pas de traitement, elle se contente d'afficher les résultats des traitements effectués par le
modèle et d'interagir avec l'utilisateur.Plusieurs vues peuvent afficher des informations partielles ou
non d'un même modèle. Par exemple si une application de conversion de base a un entier comme

Page 35 sur 45 Mai 2014


Agence de voyage ISAEG
unique donnée, ce même entier peut être affiché de multiples façons (en texte dans différentes
bases, bit par bit avec des boutons à cocher, avec des curseurs). La vue peut aussi offrir à
l'utilisateur la possibilité de changer de vue.

1.2.4. Le contrôleur
Le contrôleur prend en charge la gestion des événements de synchronisation pour mettre à jour la
vue ou le modèle et les synchroniser. Il reçoit tous les événements de l'utilisateur et enclenche les
actions à effectuer. Si une action nécessite un changement des données, le contrôleur demande la
modification des données au modèle, et ce dernier notifie la vue que les données ont changé pour
qu'elle se mette à jour. D'après le patron de conception observateur/observable, la vue est un
« observateur » du modèle qui est lui « observable ». Certains événements de l'utilisateur ne
concernent pas les données mais la vue. Dans ce cas, le contrôleur demande à la vue de se modifier.
Le contrôleur n'effectue aucun traitement, ne modifie aucune donnée. Il analyse la requête du client
et se contente d'appeler le modèle adéquat et de renvoyer la vue correspondant à la demande.

Par exemple, dans le cas d'une base de données gérant les emplois du temps des professeurs d'une
école, une action de l'utilisateur peut être l'entrée (saisie) d'un nouveau cours. Le contrôleur ajoute
ce cours au modèle et demande sa prise en compte par la vue. Une action de l'utilisateur peut aussi
être de sélectionner une nouvelle personne pour visualiser tous ses cours. Ceci ne modifie pas la

base des cours mais nécessite simplement que la vue s'adapte et offre à l'utilisateur une vision des
cours de cette personne.

Quand un même objet contrôleur reçoit les événements de tous les composants, il lui faut
déterminer quelle est l'origine de chaque événement. Ce tri des événements peut s'avérer fastidieux
et peut conduire à un code peu élégant (un énorme switch). C'est pourquoi le contrôleur est souvent
scindé en plusieurs parties dont chacune reçoit les événements d'une partie des composants.

Page 36 sur 45 Mai 2014


Agence de voyage ISAEG
Interface de l’application
Interface d’accueil

Page 37 sur 45 Mai 2014


Agence de voyage ISAEG
Liste des hôtels

Page 38 sur 45 Mai 2014


Agence de voyage ISAEG
Détail hôtel

Page 39 sur 45 Mai 2014


Agence de voyage ISAEG
Page inscription

Page 40 sur 45 Mai 2014


Agence de voyage ISAEG
Page authentification

Page 41 sur 45 Mai 2014


Agence de voyage ISAEG
Module de connexion client

Module social network

Module de recherche avancée

Page 42 sur 45 Mai 2014


Agence de voyage ISAEG

Partie administration : gestion des hotels

Partie administration gestion des réservations hôtel

Page 43 sur 45 Mai 2014


Agence de voyage ISAEG

Menu de composant hôtels

Menu de composant voiture

Page 44 sur 45 Mai 2014


Agence de voyage ISAEG

Conclusion

Dans ce chapitre, on a présenté donc les plus importantes interfaces utiles de cet application avec une
explication détaillée, ainsi les langages et les logiciels qu’on a utilisé en justifiant le choix.

Page 45 sur 45 Mai 2014

Vous aimerez peut-être aussi