Académique Documents
Professionnel Documents
Culture Documents
Université de la Manouba
Rapport
Encadré par :
Réalisé par :
LTIFI Taha
Il nous est particulièrement agréable, avant de présenter notre travail, d’exprimer toute notre
gratitude envers les personnes qui nous ont, de près ou de loin, apporté leur soutien.
Qu’il nous soit permis d’adresser nos remerciements et nos gratitudes à notre encadrant
Docteur BEN HADJ ALOUANE Nejib pour sa disponibilité, son soutien, son aide précieuse,
ses encouragements et ses conseils judicieux tout le long de ce projet.
Par ailleurs, nous remercions tous les enseignants qui ont assuré notre formation et tous ceux
qui nous ont fourni les moyens techniques et scientifiques pour accomplir ce projet dans de
bonnes circonstances.
Nous adressons un remerciement amical à tous nos collègues pour leur soutien et leurs
encouragements.
Nous tenons, aussi, à exprimer l’honneur que nous font les membres du jury pour avoir
accepté de nous prêter leur attention et évaluer notre travail.
Table des matières
Introduction générale 1
1. Etude de l’ existant 2
2. Etude Technologique 7
2.1.1 Introduction 7
2.1.2 Caractéristiques 7
2.1.3 Le framework 8
2.1.5 Membership 10
2.2.1 asp.NET 10
2.2.2 LINQ 11
2.3.1 Introduction 13
3.1.2.1 L’administrateur 19
3.1.2.2 L’agent 19
3.1.2.3 Le réceptionniste 20
3.2.3Diagrammes de séquences 24
4. Implémentation 30
Conclusion générale 42
Table des figures
C’est ainsi que la conception d’un outil permettant à la fois de gérer les réservations
ainsi que la gestion des différentes sections plus particulièrement celle des ménages
constituerait une grande avancée permettant un gain de temps et d’argent.
En effet, les réservations constituent une tâche primordiale aux résidences qui ont
donc pour objectif de diversifier les points de vente pour avoir plus de client. D’autre part,
gestion des ménages constitue aussi une activité complexe dont la gestion provoque souve
une perte de temps aux résidences.
C’est dans ce contexte que nous développerons notre application qui permettra de
remédier aux problèmes rencontrés par les gérants et les employés d’une résidence. Nou
soulèverons surtout le problème de conflit dans les réservations, celui de la gestion des
ménages, ainsi que diverses autres contraintes.
Notre projet s’étale sur quatre chapitres : Dans le premier chapitre, nous présentons
une étude de l’existant et du contexte général de notre application. Le deuxième chapitre
sera consacré à une étude des technologies utilisées lors du développement de notre
application. Le troisième chapitre présente l’analyse et la spécification ainsi que la
conception avec les diagrammes nécessaires. Enfin et dans un dernier chapitre nous
présentons le niveau de réalisation de l’application.
Chapitre 1
Etude de l’existant
Introduction
Dans ce chapitre, nous présentons le contexte général dans lequel nous développons
notre application, nous évoquons un bref historique sur les applications qui furent
développées dans le même contexte. La dernière partie de ce chapitre est consacrée à une
présentation des différentes fonctions que requiers notre application et les besoins de ces
fonctions.
La gestion des réservations est une vitalité indispensable dans le déroulement des
activités normale d’une résidence.
Notre application permettra la gestion des réservations effectuées par des agents de la
résidence.
En effet, la résidence possède un ensemble d’agents dans différents sites. Le client se
dirige donc vers l’un des endroits où se situe l’un des agents pour effectuer sa réservation.
Les GDS (Global Distribution System ou Systèmes de réservation informatique) sont des
plates-formes électroniques de gestion des réservations qui permettent aux agences de
voyages de connaître l'état du stock des différents fournisseurs de produits touristiques
(compagnies aériennes, chaîne d'hôtels, société de location de voiture, tour operateurs...) et
de réserver à distance. Ils sont de fait les premiers services de commerce électronique à
grande échelle.[5] Les GDS ont été développés à l'origine par les compagnies aériennes pour
simplifier et automatiser la gestion des réservations. La première à avoir mis en place en
1962 un système performant de ce type est "American Airlines" avec le GDS Sabre. Elle a été
rapidement suivie par les autres compagnies. Aujourd'hui, on dénombre une quinzaine de
GDS dont les plus importants sont les américains Sabre, Galileo (créé par trois compagnies
américaines et neuf européennes) et Worldspan ainsi que l'européen Amadeus créé par Air
France, Iberia et Lufthansa. Concurrencés par les fournisseurs qui proposent via Internet des
systèmes de distribution directe, les GDS développent des services associés au tourisme.[5]
Un grand nombre d’applications réalisant les mêmes fonctionnalités que la nôtre sont
présentes en téléchargement sur le web. La majorité sont des logiciels payants mais on a
toutefois pu avoir quelques versions d’évaluation parmi lesquelles :
Alors que nous retrouvons toujours les fonctionnalités de réservation et de gestion des
chambres, on notera que rares sont les logiciels présents sur le web permettant la gestion
des ménages. On ne sait toutefois pas si ces mêmes logiciels respectent la notion d’accès
concurrentiel.
Fonctions Besoins
Accessibilité partout depuis le web grâce à un accès sécurisé par
Logiciel en nom d'utilisateur et mot de passe. L'agent récupère instantanément les
ligne réservations effectuées sur le web par les autres agents, et en temps réel
Entièrement
nom, couleurs, styles, police et logo de la résidence, langue d'utilisation,
paramétrable
monnaie, taxes , pourcentage d'arrhes, jours d'arrivée, durée de séjour.
Multi langues
Français, Anglais, Espagnol
Gestion des
clients Fiche complète avec coordonnées et observations
Gestion des
chambres et des
types de chambre
Descriptif complet avec photo: Nom de la chambre, type, étage, descriptif.
Conclusion
Tout au long de ce chapitre, nous avons proposé des solutions techniques disponibles sur
le marché pour le développement des applications web. Nous avons évoqué certaines
d’entre elles, à présent nous entamerons dans le chapitre qui suit une étude des
technologies utilisées lors du développement de notre application.
Chapitre 2
Etude technologique
Introduction
Le but est de fournir un serveur web local permettant de gérer des services et évitant
d'externaliser des données privées sur un service web de stockage ou un hébergement web
tiers.
2.1.2Caractéristiques
Interopérabilité
Du fait de la nécessité de pouvoir interagir avec les anciennes applications, .NET fournit
des moyens pour accéder aux fonctionnalités en dehors de l'environnement .NET. La
possibilité d'accéder aux composants COM est fournie par les espaces de noms
System.Runtime.InteropServices et System.EnterpriseServices. L'accès aux autres
fonctionnalités est fourni grâce à P/Invoke.[1]
Indépendance du langage
La spécification du Common Type System (ou CTS) définit l'ensemble des types de
données et structures de programmation supportés par la CLR ainsi que leurs interactions. Par
conséquent, le .NET supporte l'échange des instances des types entre les programmes écrits
dans un des langages .NET.[1]
2.1.3 Le framework
On parle de Framework pour désigner l'ensemble constitué des services (API) offerts et de
l'infrastructure d'exécution. Le framework .NET comprend :
Un environnement d'exécution :
Des services
Sous forme d'un ensemble hiérarchisé de classes appelé Framework Class Library (FCL).
La FCL est ainsi une librairie orientée objet, fournissant des fonctionnalités pour les
principaux besoins actuels des développeurs. Le SDK (Software Development Kit) fournit
une implémentation de ces classes.[1]
FIG 2.1 F RAMEWORK .NET
Ada,
APL,
C#,
C++,
Cobol,
Eiffel,
Fortran,
J#,
Jscript,
Mercury,
Pascal,
Perl,
Python,
Visual Basic
2.1.5Membership
2.2.2 LINQ
2.2.2.1 Présentation de LINQ
Language Integrated Query est un composant qui ajoute des capacités d'interrogation sur
des données aux langages .NET en utilisant une syntaxe proche de celle de SQL. LINQ définit
un ensemble d’opérateurs de requêtes qui peuvent être utilisés pour effectuer des requêtes,
filtrer et projeter des données dans des collections, dans des classes énumérables, dans des
structures XML, dans des bases de données relationnelles, et dans des sources de données
tierce
LINQ implémente un accès concurrentiel optimiste, c'est-à-dire que les données ne sont
pas verrouillées lorsqu'elles sont utilisées.
Dans le cas où les données ont changé entre le cache d'Entity Framework et la source de
données, il est possible de résoudre ce conflit via 2 solutions :
Les données de la base font office de référentiel.
Les données dans le cache d'Entity Framework font office de référentiel.
Cependant, cet accès concurrentiel n'est pas activé par défaut. Tout d'abord, l'accès
concurrentiel concerne une propriété d'une entité. Une fois activée, la logique de mise à jour
ou de suppression peut générer des exceptions de type "OptimisticConcurrencyException",
lorsque les données du cache d'Entity Framework et de la base de données ne sont plus les
mêmes au moment de l'appel à la méthode "SaveChanges" du contexte. Ce cas de figure
arrive fréquemment lorsque plusieurs clients consomment et mettent à jour la même base de
données. Ainsi, soit nous utilisons comme référentiel les données locales ou bien celles de la
base de données. Ceci est décidé grâce à la méthode "Refresh" de l'objet contexte, qui prend
en paramètre une valeur de l'énumération RefreshMode et l'entité à rafraîchir.
LINQ supporte les transactions de manière automatique, tout du moins en ce qui concerne
la source de données.
Les transactions sont utiles lorsqu'il est nécessaire d'exécuter plusieurs opérations comme
si ce n'était qu'une seule. Si une opération de la transaction échoue en générant une exception,
toutes les opérations précédentes sont annulées. D'une façon générale, une transaction
respecte les 4 contraintes suivantes :
2.3.1 Introduction
L'architecture 3-tiers est composée de trois éléments, ou plus précisément de trois couches.
En effet, dans ce contexte, et dans la philosophie qui a guidé l'élaboration de cette
architecture, il est plus adéquat de parler de couche fonctionnelle où à chacune d'elle est
attachée un élément/entité logique.[3]
La couche présentation associée au client qui de fait est dit "léger" dans la mesure où
il n'assume aucune fonction .
La couche fonctionnelle liée au serveur, qui dans de nombreux cas est un serveur Web
muni d'extensions applicatives.
La couche de données liée au serveur de base de données
D'un point de vue général quelques points importants sont à souligner pour l'architecture 3-
tiers :
Le client qui n'a donc que des fonctions d'affichage ne fait que des requêtes vers le
serveur, aucun calcul n'est éffectué par le client. Les résultats de ses requêtes sont ensuite
affichées.
C'est le serveur qui va effectuer tous les calculs ou faire des requêtes vers d'autres
serveurs additionnels. Ce tiers serveur se caractérise notamment par :
Avoir été codé dans un langage présentant une forte portabilité et non
propriétaire tel que le langage C,
Être multithread et pouvant être ainsi accessible par de multiple clients
(typiquement un serveur Web),
Des requêtes clients via divers mécanismes
Les requêtes clients vers le serveur sont d'une grande flexibilité; en effet les appels
clients ne spécifient que des paramêtres et des structures de données pour les valeurs de
retour.
L'utilisateur n'est pas supposé connaître le langage SQL, qui ne sera pas implémenté
dans la partie client qui ne s'occupe le que de fonctions d'affichage. De fait des modifications
peuvent être faites au niveau du SGBD sans que cela impacte la couche client
D'un point de vue développement, la séparation qui existe entre le client, le serveur et
le SGBD permet une spécialisation des développeurs sur chaque tiers de l'architecture.
Plus de flexibilité dans l'allocation des ressources; la portabilité du tiers serveur
permet d'envisager une allocation et ou modification dynamique au gré des besoins évolutifs
au sein d'une entreprise.
Une expertise de développement à acquérir qui semble plus longue que dans le cadre
d'une architecture 2-tiers.
les coûts de développements d'une architecture 3-tiers sont plus élevés que pour du 2-
tiers. [4]
Conclusion
Nous nous sommes intéressés dans cette partie aux divers aspects technologiques et architecturaux
de notre application. Nous allons maintenant spécifier les diverses analyses et conceptions pour le
développement de notre site.
Chapitre 3
Analyse et conception
Introduction
Dans cette partie nous abordons la phase d’analyse et conception. Ainsi, nous présentons les
besoins fonctionnels se notre application en recourant au langage UML (Unified Modeling Language)
comme un moyen simple et compréhensible. Cette modélisation permettra de structurer les besoins
du projet, définir ses limites et modéliser une vue fonctionnelle de l’application. Nous enterons
ensuite la phase de conception des différents modules de notre appliaction, toujours utilisant le
langage UML.
L’application que nous développons concerne trois types d’utilisateurs : l’administrateur, l’agent
et le réceptionniste.
L’administrateur :
Les services fournis par l’application pour l’administrateur sont les suivants:
- Gestion des agences : l’administrateur peut ajouter de nouvelles agences ou en
supprimer des déjà existantes. L’ajout d’une agence implique l’entrée du nom de cette
dernière, ses coordonnées, etc.
- Gestion des agents : l’administrateur peut de même ajouter des nouveaux agents ou en
supprimer des anciens. L’ajout d’un nouvel agent implique, outre l’entrée des informations
personnelles et des coordonnées, l’affectation de cet agent à une agence.
Les agents :
- Gestion des réservations : cette partie, gérée par les agents, implique l’entrée des
dates d’entrée de la réservation, du début et fin de cette dernière. L’agent indique aussi la
chambre concernée par cette réservation ainsi que la personne qui désire effectuer une
réservation avec le nombre de personnes.
- Gestion des fiches client : les agents peuvent gérer les fiches clients en ajoutant ou
supprimant de nouveaux clients. L’ajout des clients se fait par ajout des informations
personnelles et coordonnées de ces derniers.
Les réceptionnistes
Outre les fonctionnalités offertes aux agents, les réceptionnistes ont la possibilité de :
- Sélectionner les femmes de ménage disponibles : Le réceptionniste sélectionne, pour
une journée déterminée, les femmes de ménage disponibles et susceptibles de nettoyer des
chambres.
- Obtenir une répartition des femmes de ménage : Le réceptionniste obtient, selon les
femmes de ménage disponibles et les chambres occupées, une répartition de ces femmes de
ménages sur ces chambres. Ainsi, à chaque employée sera affecté un ensemble de
chambres.
- Imprimer les répartitions des femmes de ménage : Cette impression comporte la
date, le nom de la femme de ménage concernée ainsi que la date.
Le système doit :
- Fournir une interface simple et conviviale à utiliser pour tous les utilisateurs
- Avoir un accès rapide aux données et une bonne utilisation des ressources
- Minimiser le temps de chargement d’une page afin de ne pas nuire aux utilisateurs.
- Traiter le cas où la même chambre est réservée au même temps par deux agents différents.
- Répondre au critère de dépendance du prix des chambres selon la saison.
- Attribuer les chambres aux femmes de ménage de façon optimale (chambres proches les
unes des autres).
- Répondre aux besoins fonctionnels précédemment spécifiés.
3.1.2 Diagrammes de cas d’utilisation
Le diagramme de cas d’utilisation est un modèle communicationnel. En effet, un cas
d’utilisation permet de modéliser les besoins, les points de vue des clients d’un système. Il
définit les limites du système avec une notation très simple, compréhensible, y compris le
client.
3.1.2.1 L’administrateur
La première phase pour l’administrateur consiste à s’authentifier, ensuite en accédant à
sa page, il pourra accéder au menu de gestion du personnel, des agences et de la résidence.
Dans cette partie, nous entamons la phase de conception qui permet de décrire de
manière non ambigüe le fonctionnement désiré du système afin d’en faciliter la réalisation.
Dans cette partie nous présentons quelques diagrammes de séquences pour représenter
les différents scénarios du fonctionnement de l’application. En effet, les diagrammes de
séquences décrivent les cas d’utilisation d’une manière plus détaillée. Aussi, ils décrivent les
interactions entre les différents objets de l’application.
Conclusion
Dans ce chapitre, nous avons expliqué et justifié notre analyse conceptuelle de l’application.
Après avoir analysé les divers besoins relatifs à notre application, nous avons détaillé l’architecture
des différents composants.
Chapitre 4
Implémentation
Introduction
Suite à la présentation de l’analyse des différents besoins ainsi que la conception détaillée
des différentes fonctionnalités offertes par notre application, nous achevons notre travail
par la mise en œuvre de la solution retenue. En fait, la solution n’est autre que le fruit des
études effectuées dans les chapitres précédents.
Dans cette partie, il est question de décrire l’aspect d’implémentation. Nous commençons
alors par présenter l’environnement matériel et logiciel supportant notre application.
Ensuite, nous allons passer en œuvre les différentes tâches réalisées pour terminer par un
récapitulatif des différents problèmes rencontrés tout au long de ce travail.
Gagnez en productivité : Gestion des données plus efficace avec LINQ, possibilité de
cibler la plateforme .NET de la version 2.0 au 3.5, choix du langage parmi C#, VB, C++ ou
J#.
Bénéficiez d'une meilleure gestion du cycle de vie des applications, meilleure
intégration entre les outils développeurs et designers.
Compatibilité ascendante avec Microsoft Visual Studio 2005
Version de mise à jour vers l'édition 2008 à partir d'une version 2005 existante
Accueil : Cette interface présente dans la figure 4.1, est visible par tous les employés,
éventuellement par les clients qui pourront avoir diverses informations sur la résidence.
FIG 4.1 Ecran accueil
Authentification : Cette interface permet de s’identifier. Elle dirige ensuite, selon le nom
d’utilisateur, à l’espace agent, administrateur ou réceptionniste.
Gérer les chambres : L’administrateur manipule les données de notre base de données plus
particulièrement les chambre et peut ainsi ajouter, supprimer ou mettre a jour des
chambres.
Le long de ce travail, nous nous sommes retrouvés face à divers problèmes imprédictibles que nous
avons essayé de surmonter. Nous en citons :
Conclusion
Ainsi s’achève cette partie de réalisation dans laquelle nous avons mis en relief les différentes
interfaces liées à notre application ainsi que les interactions possibles avec le système. A travers ces
diagrammes ainsi que les imprime écran, nous avons présenté les différentes facettes de notre
application.
Conclusion générale
Dans le présent rapport et dans le cadre du projet deux modules, nous avons réalisé une
application web dynamique de réservation de résidences qui intègre trois types
d’utilisateurs : les agents, les réceptionnistes et l’administrateur.
En fait les progrès vécus par l’économie mondiale rendent indisponible l’informatisation des
activités commerciales des entreprises, plus particulièrement des résidences.
Au cours de projet, nous avons réussi à concevoir et à implémenter une application web
ayant une architecture 3-tiers. Cette application est réalisée dans le but d’effectuer les
réservations et d’ordonnancer les ménages dans une résidence.
Néanmoins, notre application présente quelques lacunes, citons à titre d’exemple l’absence
de traitement de quelques erreurs générées par l’application elle-même.
Pour conclure, nous avons essayé tout long de notre travail d’assurer l’efficacité de
traitements de l’information ainsi que la portabilité des données. Mais cette application
reste extensible. En effet, nous pouvons l’améliorer afin de la rendre accessible par les
clients et leur permettre d’effectuer une réservation moyennant une caution par carte
bancaire.
Bibliographie
[1]M.S.PLATT : Découvrir Microsoft .NET « Microsoft Press »
[7]http://www.journaldunet.com/encyclopedie/definition/387/44/21/global_distribution_system_i_
gds_i.shtml (visité le 08/04/2010)
[8] http://www.materiel.net/ctl/Bureautique/43850-Visual_Studio_Professionnel_2008_MAJ_.html
(visité le 15/04/2010)