Agence de Voyage ISAEG: Présentation et Services
Agence de Voyage ISAEG: Présentation et Services
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.
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.
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.
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
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.
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 .
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.
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.
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 :
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
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.
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.
[Link]. 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,
Consulter Information
Inscrption
Utilisateur Authentification
<<include>>
Demande reservation
Reservation vols
<<include>>
Reservation hôtels
Reservation voitures
Demande de payement
Consulter information
<<include>>
gérer des vols
<<include>>
Administrateur
Authentification
gérer des hôtels <<include>>
<<include>>
<<include>>
gérer des reservations
<<include>>
gérer de payement
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)…
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.
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")
Sommaire d’identification
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")
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
Exception
Exception 1 : [Champ Obligatoire]: message d’erreur ("information introuvable")
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")
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
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 ")
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.
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
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
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.
: Utilisateur
1 : Demande consultation()
6 : Requette de selection()
7 : Execution()
9 : Message d'erreur()
10 : Information selectionner()
11 : Information affiché()
: Utilisateur
1 : Demande 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()
: Utilisateur
1 : Demande consultation()
6 : Requette de selection()
7 : Execution()
9 : Message d'erreur()
10 : Information selectionner()
11 : Information affiché()
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()
: Utilisateur
1 : Demande consultation()
6 : Requette de selection()
7 : 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()
: Utilisateur
1 : Demande reservation()
6 : Requette de selection()
7 : 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()
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()
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.
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).
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.
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.
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 [Link] pack
EasyPHP est disponible sur les sites suivants : [Link] Il vous suffit dans un premier
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 :
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'[Link] 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
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.
Interface d’accueil
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.