Vous êtes sur la page 1sur 3

IUT Bordeaux 1 - Département Informatique Java/Algorithmique

AS 2012–2013

Projet Programmation Orientée Objet


Hotel Booking

Ce projet a pour but de prendre en main les concepts de la programmation-objet


par la conception d’un système de réservation pour un hôtel ou aussi nommé Hotel
Booking (abbr. HB ). Il permettra, dans un premier temps, de mettre en place les
notions de conception (diagrammes de classes, cas d’utilisation). Dans un second
temps, la phase de conception sera validée par le développement en Java de l’appli-
cation.

Objectifs :
– concevoir une architecture la plus complète possible,
– développer l’application (graphique ou non) répondant aux exigences imposées
par la phase conception,
– mettre en application toutes les notions vues en cours.

L’application HB doit permettre à un réceptionniste de prendre des réservations


d’une ou plusieurs chambres par un client, un groupe, ou encore une société. Par
conséquent, une chambre n’est pas obligatoirement réservée par une personne morale.
Une chambre réservée possède un type particulier, parmi lesquels :
– single ou simple : chambre équipée d’un grand lit ou de deux lits séparés. Le
terme "single" désigne le tarif pour une seule et unique personne occupant la
chambre,
– twin ou jumeaux : chambre équipée de deux lits séparés, pouvant donc accueillir
deux personnes,
– double : chambre équipée d’un grand lit, pouvant accueillir deux personnes.
– suite : accommodation composée de plusieurs pièces (p. ex. chambre et salon),
de meubles supplémentaires, . . .
Une réservation est, pour la plupart du temps, réalisée par téléphone. Elle doit
être confirmée par un numéro de carte de crédit, un fax ou un courriel. Dans le
cas d’une annulation tardive, il possible d’utiliser le numéro de carte pour régler la
chambre. C’est, en quelque sorte, une garantie pour la direction de l’hôtel. Enfin, il
est possible, pour un client, de prendre le petit-déjeuner à volonté le matin.
Parallèlement, l’hôtel a des horaires d’ouverture et de fermeture. En dehors des
heures d’ouverture, il est possible de louer une chambre d’hôtel par l’intermédiaire
d’un distributeur situé à l’extérieur. Ce distributeur permet aussi à un client de
récupérer sa clé dans le cas d’une arrivée tardive.
Un hôtel comprend un nombre limité de chambres. Il est possible que quelques
chambres soient parfois hors service ou attribuées à des membres du personnel de la

1
réception pour y effectuer des astreintes.
Certains hôtels offrent la possibilité de réserver des salles de séminaires pour des
meetings, conférences ou des réunions à thème (tupperware, weight watchers,. . .).
Ces réservations sont liées ou indépendantes aux chambres d’hôtel réservées. Il est
possible d’y ajouter (ou non) des accessoires particuliers (vidéoprojecteur, paper-
board )
Notons que les hôtels que nous considérons n’ont pas de restaurant.

Deadline et remise :
1. Date de remise (stricte) : 20 janvier 2013 (minuit),
2. Créez une archive de nom login1 -login2 -loginn (3 membres par groupe max.),
3. Déposez cette archive de le dossier /net/Remise/AS-Java_Algo.

Contenu de l’archive :
– rapport explicatif en PDF regroupant les réponses aux questions de conception,
les choix effectués, les problèmes rencontrés, les éventuelles solutions,
– code source commenté (javadoc), compilable et exécutable du code,
– si besoin, ne pas oublier les divers fichiers (images, scripts ou explications d’ins-
tallation, Makefile, dons d’argent, numéros de CB . . .).

Remarque : Le choix du langage de programmation Java est imposé. Prenez


votre temps et du recul lors de la conception et du développement. Faites les bons
choix et préférez rendre une application "simple" mais fonctionnelle plutôt qu’une
application complexe, mais inutilisable...
Questions : thomas.morsellino@linagora.com (ou sur le groupe social)

1 Conception et Modélisation de l’Application HB


Dans cette partie, vous allez mettre en application les notions vues au cours
des TD de modélisation, de conception avancée et de Java/Algorithmique. L’idée,
ici, n’est pas de faire un état de l’art des différents outils appris (diagrammes), mais
plutôt de les utiliser à bon escient et comprendre leur intérêt dans un projet complexe
dont vous êtes les concepteurs.
1. Etablissez les diagrammes des cas d’utilisation de l’application.

2. Donnez une première ébauche du ou des diagramme(s) de classe(s). Expliquez


vos choix (p. ex. les hiérarchies utilisés, . . .).

3. Donnez les diagrammes de séquences de la réservation d’une chambre par un


client puis de l’annulation d’une réservation.

2
Remarque : Ces trois diagrammes sont parmi les plus utilisés lors de la phase
de conception. Ne pas hésiter à lire de la documentation sur internet.

2 Développement de l’Application HB
Avant de se lancer dans le développement à proprement parler, il est nécessaire de
mettre en place une batterie de tests correspondant à vos cas d’utilisation définis pré-
cédemment. Ces tests doivent être exhaustifs, mais dans un souci de gain de temps,
il est seulement demandé d’en faire quelques-uns. L’utilisation des tests permet prin-
cipalement de correspondre le plus possible à la phase de conception. Toutefois, la
conception et le développement ne sont pas hermétiques. En conséquence, ne pas
hésiter à modifier la conception lors du développement et vice-versa.

1. Développez la partie métier de l’application HB répondant à un minimum de


fonctionnalités :
– réservation/modification/annulation d’une chambre,
– réservation/modification/annulation d’une salle de séminaire,
– gestion des arrivées en dehors des heures d’ouverture,
– gestion des chambres hors service ou attribuées.

2. Développez l’interface (graphique ou non) qui permettra d’interagir avec la


partie métier et utilisant les fonctionnalités mises en place.

Problème : Nous souhaiterions pouvoir utiliser l’application pour gérer un parc


constitué d’hôtels différents.

1. Si ce n’est pas déjà fait, modifiez le(s) diagramme(s) de classe(s) établi en


première partie du projet afin de prendre en compte ce nouvel aspect.

2. Changez votre code partie métier (et l’interface).

Pour les plus avancés : agrémentez votre projet de nouvelles fonctionnalités


(sauvegardes journalières, sécurisation, gestions des habitués, . . .).

Vous aimerez peut-être aussi