Système de réservation d`un centre de tennis

publicité
Système de réservation d’un
centre de tennis
BD50 – Conception de bases de données
GL52 – Génie Logiciel
Printemps 2005
Sommaire
Sommaire ............................................................................................................................ 2
Préface................................................................................................................................. 4
1. Introduction ..................................................................................................................... 5
1.1 Buts et destinataires du document............................................................................. 5
1.2 Description du système ............................................................................................. 5
1.3 Définitions – Abréviation ......................................................................................... 5
1.4 Présentation générale du document .......................................................................... 6
2. Description générale ....................................................................................................... 7
2.1 Description générale des utilisateurs et de l’environnement .................................... 7
2.1.1 Les non-adhérents .......................................................................................... 7
2.1.2 Les adhérents ................................................................................................. 8
2.1.3 Les entraîneurs ............................................................................................... 8
2.1.4 Les administrateurs ........................................................................................ 9
2.1.5 Lexique général .............................................................................................. 9
2.1.6 Diagramme de contexte ............................................................................... 11
2.2 Modèle conceptuel fonctionnel ............................................................................... 12
2.3 Caractéristiques des utilisateurs .............................................................................. 12
2.4 Contraintes principales de développement ............................................................. 13
3. Besoins fonctionnels ..................................................................................................... 14
3.1 Cas d’utilisation ...................................................................................................... 14
3.2 Use Case “Réservation” .......................................................................................... 14
3.2.1 Cas d’utilisation ........................................................................................... 14
3.2.2 Description du cas d’utilisation ................................................................... 15
3.2.3 Digramme de séquence ................................................................................ 16
3.3 Use Case “ Tournoi ” .............................................................................................. 18
3.3.1 Cas d’utilisation ........................................................................................... 18
3.3.2 Description du cas d’utilisation ................................................................... 18
3.3.3 Digramme de séquence ................................................................................ 19
3.4 Use Case “Administrateur” ..................................................................................... 21
3.4.1 Cas d’utilisation ........................................................................................... 21
3.4.2 Description du cas d’utilisation ................................................................... 22
3.4.3 Digramme de séquence ................................................................................ 23
4. Spécifications des structures de données ...................................................................... 24
4.1 Diagramme de classes ............................................................................................. 24
4.2 Description du diagramme de classes ..................................................................... 25
5. Spécifications des interfaces externes ........................................................................... 26
5.1 Interface Matériel/Logiciel ..................................................................................... 26
5.2 Interface Logiciel/Logiciel...................................................................................... 26
5.3 Interface Homme/Logiciel ...................................................................................... 27
5.3.1 ‘Charte graphique’ ....................................................................................... 27
5.3.2 Ecran d’interface et spécifications des menus ............................................. 28
6. Besoins en performance ................................................................................................ 33
2
7. Contraintes de développement ...................................................................................... 34
7.1 Sécurité ................................................................................................................... 34
7.2 Standard .................................................................................................................. 34
7.2.1 UML............................................................................................................. 35
7.2.2 Méthode Merise ........................................................................................... 36
7.2.3 SQL .............................................................................................................. 36
7.2.4 PL/SQL ........................................................................................................ 36
8. Conception et réalisation : partie BD50 ........................................................................ 37
8.1 Modèle conceptuel de données ............................................................................... 37
8.1.1 Modèle Global ............................................................................................. 37
8.1.2 MCD - Sous-modèle Inscriptions ................................................................ 39
8.1.3 MCD - Sous-modèle Réservation ................................................................ 40
8.1.4 MCD - Sous-modèle Planning ..................................................................... 41
8.2 Modèle logique de données .................................................................................... 42
8.2.1 MLD - Sous-modèle Inscription .................................................................. 42
8.2.2 MLD - Sous-modèle Réservation ................................................................ 43
8.2.3 MLD - Sous-modèle Planning ..................................................................... 44
8.3 Description des tables ............................................................................................. 45
8.4 Modèle logique de données optimisé ...................................................................... 46
8.4.1 Suppression de tables ne comportant qu’une seule clef............................... 46
8.4.2 Redondance calculée .................................................................................... 46
8.4.3 Fusion de tables............................................................................................ 47
8.4.4 Choix d’héritages ......................................................................................... 47
8.5 Les packages ........................................................................................................... 51
8.6 Exemple de script .................................................................................................... 53
9. Conclusion .................................................................................................................... 57
10. Références ................................................................................................................... 58
9.1 Bibliographie........................................................................................................... 58
9.2 Webographie ........................................................................................................... 58
3
Préface
Au cours de notre cursus à l’Université de Technologie de Belfort – Montbéliard, nous
avons la possibilité de suivre des Unités de Valeur (UV) nous mettant face à des projets à
réaliser en intégralité.
Les UV couplées de BD50, Conception de bases de données, et GL52, Génie Logiciel,
nous permettent de gérer le projet – Système de réservation d’un centre de tennis, sujet
qui nous a été attribué.
Le présent rapport est la mise en forme de du cahier de spécifications dédié à l’UV de
GL52.
4
1. Introduction
1.1 Buts et destinataires du document
Le but de ce document est de formaliser les exigences du client afin de pouvoir répondre
au mieux à ses attentes.
En tant que base de travail, le dossier de spécification décrit les différentes
fonctionnalités que l’application devra assurer.
1.2 Description du système
Nous avons pour sujet le développement d’un système de réservation d’un centre de
tennis en ligne. Il devra permettre aux différents utilisateurs de connaître ce que propose
le centre de tennis mais également de réserver du matériel et autres services.
Ce système devra être capable d’assurer une consultation conviviale et sécurisée,
accessible à tout utilisateur connecté à Internet. Pour rendre le système plus efficient, un
système de connexion au site sera proposé aux membres du club, permettant d’accéder à
de nouvelles fonctionnalités.
Pour le centre de tennis, le système permettra de mieux suivre le déroulement des
réservations à l’aide de certaines fonctionnalités aidant à la gestion.
D’un point de vue technique, un SGBDR de type Oracle contiendra les informations de
l’agence immobilière et le site sera développé à l’aide du langage PL/SQL.
1.3 Définitions – Abréviation
Nous faisons un abus de langage puisque dans tout le prochain document nous
considérons qu’un joueur peut être un adhèrent, un non adhèrent et un entraîneur ; mais
aussi que les membres sont les adhérents, les entraîneurs.
Pour toute le reste de la description du projet, nous allons utiliser les termes propres aux
joueurs de tennis ; ceux-ci étant entrés dans le langage courant, nous ne les définirons
pas.
SGBDR : Système de Gestion de Base de Données
5
1.4 Présentation générale du document
Le document de spécification présente d’abord le sujet d’un point de vue général et le
décrit en langage naturel. Puis il décrit précisément toutes les fonctionnalités du système.
Ensuite, le système est replacé dans ses contraintes environnementales et techniques.
6
2. Description générale
2.1 Description générale des utilisateurs et de l’environnement
L'application client/serveur d’un système de réservation d’un centre de tennis permet une
interaction via Internet entre un centre de tennis physique et ses membres.
Le système de réservation d’un centre de tennis doit permettre à des clients de louer un
court de tennis sur des plages horaires, de prendre des cours avec des entraîneurs, de
louer du matériel de jeu et de réserver le ‘club house’ en cas de manifestation.
Les utilisateurs de cette application sont donc de plusieurs types, tels que définis dans les
quatre parties suivantes. De plus, un lexique général est décrit après les utilisateurs.
Ces quatre types d'utilisateurs représentent les agents de notre système. Les interactions
entre ces acteurs et le système sont décrites dans le diagramme de contexte figurant à la
page 11.
2.1.1 Les non-adhérents
Tout d'abord, il y a les non-adhérents qui sont des utilisateurs quelconques, naviguant sur
Internet, et qui vont visiter le site du centre de tennis.
Un non-adhèrent peut ainsi consulter les offres que le centre de tennis a mis en ligne, se
renseigner sur l'agence physique (coordonnées, emplacement, etc.). Il peut louer un court,
du matériel (sous caution). La réservation ne pourra se faire que lorsque la réservation
précédente, si il y a, est passée. Les autres possibilités du centre de tennis ne seront
accessibles qu’après inscription au centre de tennis. De plus, pour effectuer la réservation
en ligne, le numéro de carte bancaire est demandé, stocké en mémoire mais la carte ne
sera pas débitée ; le paiement se fera directement chez la secrétaire le jour de ladite
réservation. Dans la mesure où les non adhérents sont membres de la FFT, ils peuvent en
entrant leur numéro de membre, s’inscrire aux tournois de la FFT. De plus, ils peuvent
par le site faire une demande de réservation du ‘Club House’.
Ces fonctionnalités sont destinées à toute personne ayant accès au site, et consistent
essentiellement en la réservation d’un court de tennis.
Fonctionnalités requises :
Consulter les informations mises en ligne
Réserver un court, du matériel
S’inscrire à un tournoi
Faire une demande de réservation du ‘Club House'
7
2.1.2 Les adhérents
Une fois cotisant, l’utilisateur est alors considéré comme un adhèrent du centre de tennis,
et possède un login et un mot de passe afin de s'identifier sur le site. Il pourra alors
accéder à son espace personnel. Cet espace comporte plusieurs rubriques : ainsi, il peut
accéder et modifier les données (données personnelles, cotisations, type d’inscription,
palmarès…) le concernant, accéder à leur historique, réserver un terrain, du matériel
(sous caution), s’inscrire à un cours ou tournoi.
Il ne peut réserver qu’une plage horaire dans une même journée, mais peut en réserver
une autre seulement si la précédente est expirée.
Ces fonctionnalités sont destinées aux utilisateurs étant au préalable adhérents. L'acteur
adhèrent est considéré comme une extension de l'acteur non-adhèrent et peut donc
également utiliser les fonctionnalités de celui-ci.
Fonctionnalités requises :
Se loguer/déloguer
Modifier ses données personnelles
Consulter ses cotisations, type d’inscription, palmarès
Réserver un cours
2.1.3 Les entraîneurs
Au sein du centre de tennis, les entraîneurs utiliseront le système afin de gérer leurs cours
en priorité. Ils posséderont un login et un mot de passe pour s'identifier, de la même
façon que les adhérents.
L’entraîneur gère, en plus, de son cours (planning annuel, plages horaires, type de cours,
niveau…) et il réserve du matériel pour leur cours. Il peut proposer, via le système, des
tournois et stages.
Partie du site possédant un accès limité, ce système est destiné aux entraîneurs employés
par le centre de tennis. L'acteur entraîneur est considéré, par ailleurs, comme une
extension de l'acteur adhèrent et peut donc également utiliser les fonctionnalités de celuici.
Fonctionnalités requises :
Gérer son planning (annuel, hebdomadaire)
Gérer les cours
Réserver des terrains et matériels pour les cours
Proposer stage et/ou tournoi
8
2.1.4 Les administrateurs
Il existe également un autre type d'utilisateur de l'application : c'est l'administrateur, dans
notre cas, nous considérons que ce sont des administrateurs : le directeur et la ou les
secrétaires du club.
L’administrateur peut créer, modifier, supprimer des adhérents ou entraîneurs (avec
login, mot de passe, etc.), et peut consulter tous les options proposées sur le site. De plus,
il peut gérer (ajouter, modifier, supprimer) le matériel, les terrains, les cours, les stages,
les tournois.
Extension de tous nos agents, l’administrateur permet de contrôler le travail des différents
entraîneurs et d’obtenir des informations de gestion.
Fonctionnalités requises :
Créer, modifier, supprimer des agents
Créer, modifier, supprimer des événements
(stage, tournoi, cours)
Gérer le matériel et terrains
Consulter tous les événements, les réservations et autres demandes.
2.1.5 Lexique général
Nous allons maintenant décrire les différents termes et leurs propriétés que nous allons
utiliser tout au long de ce projet.
Le matériel
Le matériel à louer se divise en deux groupes : les balles et les raquettes, qui peuvent être
dans un état libre, réservé, utilisé. Les raquettes ont un état supplémentaire qui est la
maintenance. Le prêt se fait en quantité limitée et sous caution en précisant la date,
l’heure et la durée de prêt. La caution et le paiement (pour les non-adhérents) pour le
matériel se fait directement lors du retrait de celui-ci.
Le ‘Club House’
Le ‘club house’ peut être l’objet d’une demande de réservation par les utilisateurs du
système. Demande qui devra être argumentée et envoyée (par le système) par email à la
secrétaire. Cette dernière réservera alors le ‘Club House’, mais uniquement après
validation du responsable du centre de tennis.
9
Les cours
Les cours peuvent être en commun ou peuvent être également des cours particuliers. Ils
sont réservés aux membres du club. Dans le cadre des institutions, la demande de
réservation se fait par l’envoi d’un email via le système à la secrétaire qui valide (ou non)
la réservation dans le système.
Un planning annuel des cours est mis en place en fonction de la disponibilité des
entraîneurs ; les terrains utilisés pour ces cours ne sont donc pas disponibles à ces plages
horaires fixes.
Pour les adhérents dont le quota est dépassé ou dont l’inscription ne comprend pas les
cours, la réservation se fait comme d’habitude mais une facture sera envoyée
mensuellement.
Les stages
Les stages sont des événements exceptionnels, organisés par les entraîneurs et la direction
du club. Ils sont accessibles pour tous, adhérents ou non. Les dates et les quotas des
stages sont affichés en ligne, mais l’inscription et le paiement se font via la secrétaire,
pour des raisons de sûreté au niveau bancaire pour le club.
Les tournois
Les tournois peuvent être de 2 types : internes au club et en association avec la Fédération
Française de Tennis.
Pour s’inscrire et participer aux tournois internes, il faut être membre du club. Les
tournois sont organisés suivant la catégorie d’ages, quel que soit le niveau de l’adhérent.
En ce qui concerne les tournois de la FFT, il faut bien sur être adhérent à la FFT (donc
pas nécessairement adhérent au club). Les inscriptions ne peuvent se faire que si la
catégorie d’ages et de niveau sont respectés.
Les inscriptions
Il en existe trois types : le premier donne un accès gratuit à l’adhèrent aux terrains et au
prêt de matériel (ce dernier est toutefois sous caution).
La deuxième formule englobe le premier type mais donne un accès, suivant le quota
voulu, aux cours dispensés par le club.
Une troisième formule permet d’ajouter à l’inscription la cotisation de la FFT.
Les inscriptions et réservations peuvent être annulées ou modifiées. Le paiement se fait
lors des inscriptions et réservations ; le centre de tennis laisse la possibilité à la personne
de modifier ses vœux avec remboursement de la somme si l’annulation ou la
modification se fait un jour avant l’échéance.
10
2.1.6 Diagramme de contexte
Nous allons présenter le diagramme de contexte général pour présenter les actions
générales liant les différents types d’utilisateurs présentés ci-dessus et le système.
Nous considérons que les options mises à disposition pour chaque utilisateur se transmet
à l’utilisateur dont les capacités lui sont supérieures.
Figure №1 : Diagramme de contexte du système de réservation d’un centre de tennis.
11
2.2 Modèle conceptuel fonctionnel
On peut découper le système de ‘réservation d’un centre de tennis’ en groupements de
fonctionnalités, réunies dans une catégorie spécifique.
Ainsi, on peut considérer que l'on a trois grands groupes de fonctionnalités :
- les fonctions de gestion des réservations
- les fonctions de gestion des membres
- les fonctions internes au système.
Figure №2 : Modèle Conceptuel Fonctionnel
Il existe également des fonctionnalités diverses qui ne peuvent entrer dans ces catégories,
mais dont l'extrême simplicité nous permet de ne pas les spécifier de manière complexe
(par exemple : s'identifier sur le site, se déconnecter, etc…)
2.3 Caractéristiques des utilisateurs
Les utilisateurs de l'application Client/Serveur du Système de réservation du centre de
tennis sont les acteurs définis dans l'environnement et le contexte d'utilisation de
l'application.
Ceux-ci sont de quatre types :
- Utilisateur non enregistré : c'est l'utilisateur standard qui navigue sur Internet, ou
non-adhèrent.
- Utilisateur enregistré : c'est l'internaute qui connaît le site et est inscrit au club de
tennis. A partir de ce moment il peut réaliser des opérations spécifiques au
membre et gérer ainsi son propre compte.
- Utilisateur de la partie administrative : c'est un utilisateur enregistré qui possède
des droits sur la partie administrative du site, qui lui permettent de modifier le
contenu du site (dans notre cas, la création de cours). Cet utilisateur est un
entraîneur du centre de tennis.
- Utilisateur administrateur du site : c'est le directeur du centre de tennis ou sa
secrétaire. Il peut créer des nouveaux comptes pour les agents, il peut ajouter des
terrains, …
12
L'ensemble de ces utilisateurs ne maîtrise pas forcément l'outil informatique. On
considère que les utilisateurs sont non informaticiens. Les adhérents et non-adhérents
auront accès au site de la manière la plus simple et ergonomique possible.
Pour les employés du centre de tennis, il faut également réaliser une application
compréhensible sans avoir de connaissances autres que basiques en informatique. Dans le
cas des employés, une formation sur le logiciel est à prévoir, mais même sans celle-ci, le
logiciel doit être suffisamment facile à prendre en main, afin qu'il puisse être utilisé de
manière simple et intuitive.
En ce qui concerne la fréquence d'utilisation, les non-adhérents seront des utilisateurs très
occasionnels. Les adhérents, eux, sont susceptibles d'utiliser l'application de manière plus
ou moins fréquente (réservation hebdomadaire d’un terrain, ou joueur journalier).
Pour les entraîneurs, cette application est conçue pour une utilisation journalière du
logiciel, qui leur permet de gérer l'ensemble de leur planning et des cours qu’ils
dispensent.
C'est un outil de gestion à part entière qui permet d'obtenir beaucoup d'informations, très
importantes pour les entraîneurs ou pour l’administrateur. La connexion à l'application se
fera donc au minimum une par jour.
2.4 Contraintes principales de développement
L’application utilisera une base de données Oracle (v.9i) et le langage utilisé pour réaliser
les pages du site sera PL/SQL, couplé à HTML.
Le document de Spécification fera l’objet d’une réunion de validation avec monsieur
Koukam.
Le MCD de la base de données devra être validé avec monsieur Fischer.
13
3. Besoins fonctionnels
3.1 Cas d’utilisation
Les cas d'utilisation décrits ci-après représentent les fonctionnalités principales de notre
système. En effet, certaines fonctionnalités ne nécessitent pas de représentation ou d'être
détaillées, de par leur simplicité.
Ainsi, on ne décrit pas les cas d'utilisation tels que :
- se connecter / se déconnecter
- envoyer un message (mail ou formulaire)
…
Nous avons donc regroupé les principaux cas d'utilisation suivant les différents
utilisateurs du système, définis ci-après.
3.2 Use Case “Réservation”
3.2.1 Cas d’utilisation
‘utilise’
‘utilise’
Figure №3 : Use Case « Réservation »
14
3.2.2 Description du cas d’utilisation
Effectuer une réservation
Acteurs déclencheurs : Non-adhèrent, Adhèrent, Entraîneurs ou Administrateur
Entrées : Critères de réservations choisis par l’acteur déclencheur
Sorties : Validation ou échec de la réservation
Le demandeur remplit un formulaire lui permettant de préciser les critères de sa
réservation. Il valide ensuite sa requête et le site lui renvoie si sa demande est validée ou
non.
Valider une réservation
Acteurs déclencheurs : Administrateur
Entrées : modifications : données d’une réservation.
Sorties : la réservation est validée, modifiée voir même supprimée
Dans le cas où un utilisateur envoie une requête spécifique sur une demande de
réservation spéciale, il doit en faire part à l’administrateur. C’est lui qui s’occupe de la
validation, modification ou suppression de cette demande.
15
3.2.3 Digramme de séquence
Le diagramme de séquence représente l’enchaînement logique des fonctionnalités,
propres à la réservation, que peuvent effectuer l’adhèrent et l’administrateur et leurs
interactions avec le système.
Nous avons deux types de réservations qui découlent de cet Use Case : la réservation de
matériel, de terrain (ou de cours pour les adhérents) qui ne nécessite pas de validation
spécifique de l’administrateur et la réservation de cours (pour les organismes) ou du Club
House, qui elle, a besoin de l’aval de l’administrateur pour être effective.
Nous présenterons un diagramme de séquence pour chaque cas.
Figure №4 : Diagramme de séquence « Réservation »,
cas avec seule interaction du système
16
Figure №5 : Diagramme de séquence « Réservation »,
cas avec validation de l’administrateur
17
3.3 Use Case “ Tournoi ”
3.3.1 Cas d’utilisation
‘utilise’
Figure №6 : Use Case « Tournoi »
3.3.2 Description du cas d’utilisation
Effectuer une Inscription
Acteurs déclencheurs : Non-adhèrent, Adhèrent, Entraîneurs
Entrées : Critères d’inscription au tournoi sélectionné
Sorties : Validation ou échec de l’inscription
Le demandeur remplit un formulaire lui permettant de préciser les informations
nécessaires à son inscription. Il valide ensuite sa requête et le site lui renvoie si sa
demande est validée ou non.
18
3.3.3 Digramme de séquence
Le diagramme de séquence représente l’enchaînement logique des fonctionnalités,
propres aux tournois, que peut effectuer l’adhèrent et son interaction avec le système.
Nous avons deux types d’inscription aux tournois qui découlent de cet Use Case : il
existe deux types de tournois les tournois de la FFT (Fédération Française de Tennis) et
les tournois internes au Club. Pour participer à ces derniers, il faut être membre du Club
tandis que pour les tournois FFT si l’utilisateur possède un numéro FFT, il peut s’inscrire
à ce type de tournoi.
Nous présenterons un diagramme de séquence pour chaque cas.
Figure №7 : Diagramme de Séquence « Tournoi »,
cas des tournois internes
19
Figure №8 : Diagramme de séquence « Tournoi »,
cas des tournois FFT
20
3.4 Use Case “Administrateur”
3.4.1 Cas d’utilisation
Figure №9 : Use Case « Administrateur »
21
3.4.2 Description du cas d’utilisation
Créer une manifestation
Acteurs déclencheurs : Administrateur
Entrées : Proposition de manifestation par l’entraîneur ou l’acteur déclencheur
Sorties : Création ou non de la manifestation avec insertion dans le planning
L’entraîneur (ou l’administrateur dans certain cas) remplit un formulaire lui permettant
de préciser les critères de sa proposition de manifestation. Il valide ensuite sa requête et
celle-ci est envoyée à l’administrateur qui valide ou non la proposition avant de la créer
dans le système. Nous ne détaillerons pas le cas où l’administrateur modifie ou supprime
la manifestation puisque le principe est le même.
Ajout de matériel
Acteurs déclencheurs : Administrateur
Entrées : Sorties : ajout dans le système de matériel supplémentaire. (matériel ou terrain)
L’administrateur remplit un formulaire ajoutant du matériel (voir un terrain). Il valide
ensuite sa requête pour que le système l’affiche pour les utilisateurs.
Modifier du matériel
Acteurs déclencheurs : Administrateur
Entrées : Changement d’état du matériel
Sorties : Modification de l’état, voir même suppression, du matériel.
Dans le cas où le matériel est détérioré (ou réparé), l’administrateur modifie le formulaire
du matériel concerné. Il valide ensuite sa requête pour que le système mette à jour les
données.
Ajout d’un membre
Acteurs déclencheurs : Administrateur
Entrées : Sorties : ajout dans le système d’un membre supplémentaire.
L’administrateur remplit un formulaire ajoutant un membre. Il valide ensuite sa requête
pour que le nouveau membre puisse désormais se connecter.
Modification/Suppression d’un membre
Acteurs déclencheurs : Administrateur
Entrées : Modification des données concernant un membre
Sorties : Modification des données, voir même suppression, du membre.
Dans le cas où un utilisateur demande à l’administrateur de modifier ses données,
l’administrateur modifie le formulaire de la personne concernée. Par ailleurs, si un
membre quitte le club, l’administrateur supprime ce membre de la base. Dans les deux
cas, la requête est validée pour être ensuite envoyée au système qui mettra la base de
données à jour.
22
3.4.3 Digramme de séquence
Le diagramme de séquence représente l’enchaînement logique des fonctionnalités,
propres à la réservation, que peuvent effectuer l’adhèrent et l’administrateur et leurs
interactions avec le système.
De ce Use Case, nous pouvons déduire la consultation et la modification des données
personnelles des membres qui se déroulent de la même manière, et que nous détaillerons
pas.
Figure №10 : Diagramme de séquence « Administration »
23
4. Spécifications des structures de données
4.1 Diagramme de classes
Le diagramme de classe va nous permettre de représenter les différentes classes, de
manière à faire apparaître pour chaque classe ses attributs et ses opérations spécifiques.
Chaque classe sera davantage décrite par la suite.
Figure №11 : Diagramme des classes du système de réservation du centre de tennis
24
4.2 Description du diagramme de classes
INSCRIPTION : Classe dans laquelle se trouve toutes les informations concernant
l’inscription.
INSTITUTION : Classe dans laquelle se trouve toutes les informations concernant une
institution.
PERSONNE : Classe dans laquelle se trouve toutes les informations de base d’un
utilisateur, soit informations d’un non adhèrent.
ADHERENT : Classe qui hérite des informations de la classe Personne, contenant des
informations supplémentaires propres à l’adhèrent.
ENTRAINEUR : Classe qui hérite des informations de la classe Adhèrent et contenant
des informations supplémentaires propres à l’entraîneur.
ADMINISTRATEUR : Classe qui hérite des informations de la classe Personne et qui
contient des actions propres à l’administrateur.
RESERVATION : Classe qui contient les informations nécessaires à une réservation.
MANIFESTATION : Classe qui contient les informations concernant une manifestation
dont le type de la manifestation.
MATCH : Classe qui contient les informations sur les différents matchs d’une
manifestation. La classe Manifestation, si le type est tournoi, est composée de matchs.
COURT : Classe qui contient les informations des différents terrains du centre de tennis.
MATERIEL : Classe qui contient les quantités et les types de matériel que propose le
club de tennis.
CLUB HOUSE : Classe qui contient les informations spécifiques au Club House.
25
5. Spécifications des interfaces externes
5.1 Interface Matériel/Logiciel
Configuration minimale :
Pentium 500
Carte graphique 12 Mo
4 Go de disque dur (installer Oracle au complet : 3 Go)
Configuration optimale :
PC de bureau, Processeur Athlon XP 2600+
Carte graphique 64 MO
+ de 10 Go de disque dur
Caractéristiques des interfaces système / dispositifs particuliers :
Notre système ne nécessite aucune adaptation particulière et peut être utilisé sans ajouter
de dispositif particulier.
Il fonctionne avec un ordinateur de type bureautique classique.
5.2 Interface Logiciel/Logiciel
Le système de Réservation d’un centre de tennis utilise les ressources du SGBDR Oracle
9i.
Nous utilisons le langage PL/SQL pour l'accès à la base de données (utilisation du
logiciel SQL+, ProcedureBuilder, Jdevelopper, etc.)
Protocole d'échange et type de liaison :
L'application nécessite d'être stockée sur un serveur d'applications, relié à d'autres
ordinateurs par l'intermédiaire d'un réseau. Nous considérons que ce réseau est câblé avec
des liaisons de type RJ45, et que l'on utilise comme seul protocole le protocole TCP/IP.
Enfin, l'utilisation d'un navigateur permet l'utilisation de notre logiciel : le plus répandu
est Internet Explorer (version 5.5 ou +). Nous avons utilisé ce browser pour les tests de
notre application.
26
5.3 Interface Homme/Logiciel
5.3.1 ‘Charte graphique’
Nous avons décidé de créer un site suivant les couleurs qui rappellent aux utilisateurs les
couleurs du tennis.
Pour toutes les pages, nous avons insérer une image fixe d’un joueur de tennis, que nous
avons récupérer sur internet. Et pour tout ce qui concerne les objets que nous avons codés
nous avons utilisé des couleurs ‘orange’ et ‘jaune’.
Pour ce qui est de la typographie, nous avons choisi d’utiliser la police « Times new
roman» ; c’est une police qui facilite la lisibilité des textes à l’écran et est très utilisée
pour tous les textes à lire sur écran.
Toute notre mise en page est gérée par la feuille de style Charte graphique CT_style.css.
Figure №12 : Gabarit, présentant la schématisation des pages du site, définissant les
emplacements principaux ainsi que leur type de contenu
27
5.3.2 Ecran d’interface et spécifications des menus
Nous avons défini les interfaces principales qui seront utilisées pour notre application.
Nous avons travaillé sur l'ergonomie et la lisibilité des pages, de manière à ce que
l'utilisation du logiciel soit agréable et simplifiée pour nos utilisateurs.
Ainsi, les deux premières interfaces (Figures 13 et 14) présentent les pages auxquelles
accède l'utilisateur qui ne fait pas partie de la base de données du centre de tennis.
Les pages suivantes (Figures 15 à 20) représentent des fonctionnalités supplémentaires
accessibles pour les joueurs et membres du centre de tennis ou des administrateurs du
site.
Ces interfaces sont présentées dans les pages suivantes.
Figure №13 : Accueil
28
Figure №14 : Inscription d’un nouvel utilisateur
Figure №15 : Authentification des utilisateurs
29
Figure №16 : Liste des réservations disponibles
Figure №17 : Liste des cours disponibles
30
Figure №18 : Description détaillée d’un stage
Figure №19 : Liste des entraîneurs
31
Figure №20 : Gestion du matériel
32
6. Besoins en performance
Notre application étant de type site Internet, nous n'avons pas beaucoup d'informations à
fournir sur les besoins en performance du projet.
En effet, la plupart des caractéristiques influant sur les performances reposent sur le
serveur où sera hébergé l'application qui, la plupart du temps, est soumis aux
caractéristiques de l'hébergeur.
Nous allons donc simplement pouvoir influer sur le nombre de nos fichiers et leur taille,
ainsi que dans le développement en lui-même.
En effet, les performances de l'application sont intimement liées à la qualité de la
conception et de l'implémentation.
Au niveau conceptuel, l'importance de la structure de la base de données se vérifie lors de
son utilisation : plus elle est conçue avec soin, plus elle sera facile d'accès et les appels
réalisés vers la base de données seront optimisés de manière à ne pas surcharger la
connexion à la base.
Ainsi, l'optimisation des tables de la base de données et la mise en place d'index
judicieusement choisis permettent une optimisation des performances.
Au niveau implémentation, le développement du code de manière intelligente permet
d'obtenir des performances meilleures.
La manière dont les fichiers seront répartis dans l'arborescence, avec un contenu réfléchi
pour être optimisé, influe également sur les performances.
Ci-après nous vous présentons l'arborescence de notre application.
Figure №21 : Arborescences des données
33
7. Contraintes de développement
7.1 Sécurité
Afin d'être utilisé en entreprise ou dans un organisme où des informations circulent, une
application doit prendre en compte le problème de la sécurité.
En effet, il est nécessaire de protéger l'accès aux données qui peuvent être considérées
comme sensibles.
Au sein de notre projet, nous avons étudié cet aspect "sécurité" uniquement au niveau de
l'application, puisque la sécurité "physique" (au niveau du réseau ou des utilisateurs par
exemple) ne nous incombe pas.
La mise en place de mots de passe permet de séparer les personnes qui peuvent avoir
accès à l'application et les autres personnes.
Parmi les personnes qui possèderont un mot de passe permettant d'avoir accès à
l'application, nous avons instauré des "types" d'utilisateurs, qui n'auront pas accès aux
mêmes fonctionnalités : les utilisateurs ‘adhérent’ n'auront par exemple pas accès aux
commandes permettant de modifier la base de données des manifestations par exemple.
Ainsi, nous mettons en place un contrôle des accès aux données par une restriction sur
l'utilisation de certaines commandes pour certains utilisateurs.
7.2 Standard
Lors du développement de notre projet, nous avons utilisé des méthodes, outils et
langages de développement, qui sont le plus souvent assujettis à des standards.
En ce qui concerne les technologies du Web, le W3C (World Wide Web Consortium)
fixe les normes à respecter : il nous concerne puisque nous utilisons des pages codées en
HTML.
Nous avons décrit ci-après différentes méthodes (UML, Merise) et différents langages
(PL/SQL) utilisés dans notre projet.
34
7.2.1 UML
UML (Unified Modeling Language) est une notation permettant de modéliser un
problème de façon standard. Ce langage est né de la fusion de plusieurs méthodes
existant auparavant, et est devenu désormais la référence en terme de modélisation objet.
- Les années 1970 - Les premières méthodes d'analyse apparaissent.
- Les années 1980 - Annonce l'approche systémique (modélisation des données et
modélisation des traitements : Merise, Axial, IE...).
- Entre 1990-1995 - Emergence d'une multitude de méthodes objet : Booch, ClasseRelation, Fusion, HOOD, OMT, OOA, OOD, OOM, OOSE...
- 1995 marquera les premiers consensus - OMT (James Rumbaugh) / OOD (Grady
Booch) / OOSE (Ivar Jacobson).
- Les années 1995-1997 - Unification et normalisation des méthodes : naissance
d'UML.
A partir de 1997, UML est devenue une norme de l'OMG, ce qui lui a permis de
s'imposer en tant que méthode de développement objet et être reconnue et utilisée par de
nombreuses entreprises.
La modélisation consiste à créer une représentation simplifiée d'un problème: le modèle.
Elle comporte deux composantes:
- L'analyse, c'est-à-dire l'étude du problème
- La conception, soit la mise au point d'une solution au problème
Le modèle constitue ainsi une représentation possible du système pour un point de vue
donné.
UML fournit une panoplie d'outils permettant de représenter l'ensemble des éléments du
monde objet (classes, objets, ...) ainsi que les liens qui les relie.
Etant donné qu'une seule représentation est trop subjective, UML permet de représenter
diverses projections d'une même représentation grâce aux vues. Une vue est constituée
d'un ou plusieurs diagrammes.
On distingue deux types de vues:
- Les vues statiques, c'est-à-dire représentant le système physiquement
o diagrammes d'objets
o diagrammes de classes
o diagrammes de cas d'utilisation
o diagrammes de composants
o diagrammes de déploiement
- Les vues dynamiques, montrant le fonctionnement du système
o diagrammes de séquence
o diagrammes de collaboration
o diagrammes d'états-transitions
o diagrammes d'activités
35
7.2.2 Méthode Merise
MERISE est une méthode de conception, de développement et de réalisation de projets
informatiques qui date de 1978-1979. Le but de cette méthode est d'arriver à concevoir un
système d'information. La méthode MERISE est basée sur la séparation des données et
des traitements à effectuer en plusieurs modèles conceptuels et physiques.
La séparation des données et des traitements assure une longévité au modèle. En effet,
l'agencement des données n'a pas à être souvent remanié, tandis que les traitements le
sont plus fréquemment.
7.2.3 SQL
SQL (Structured Query Language) est un langage de définition de données, de
manipulation de données, et de contrôle de données. C'est surtout un langage
d'interrogation de bases de données. Très répandu, il permet de manipuler assez
facilement les bases de données relationnelles. Il permet d'ajouter des données, de les
supprimer, parfois par tables entières, de les sélectionner (Select) dans des tables (From),
selon toutes sortes de critères (Order by, Group by, Where...).
7.2.4 PL/SQL
Le langage PL/SQL est un langage L4G (langage de quatrième génération), fournissant
une interface procédurale au SGBD Oracle. Le langage PL/SQL intègre parfaitement le
langage SQL en lui apportant une dimension procédurale.
En effet, le langage SQL est un langage déclaratif non procédural permettant d'exprimer
des requêtes dans un langage relativement simple. En contrepartie il n'intègre aucune
structure de contrôle permettant par exemple d'exécuter une boucle itérative.
Ainsi le langage PL/SQL permet de manipuler de façon complexe les données contenues
dans une base Oracle en transmettant un bloc de programmation au SGBD au lieu
d'envoyer une requête SQL. De cette façon les traitements sont directement réalisés par le
système de gestion de bases de données. Cela a pour effet notamment de réduire le
nombre d'échanges à travers le réseau et donc d'optimiser les performances des
applications
36
8. Conception et réalisation : partie BD50
8.1 Modèle conceptuel de données
Nous avons utilisé la méthode Merise pour représenter le système de réservation d’un
centre de tennis, au travers d'un Modèle Conceptuel de Données ou MCD. Il définit de
manière globale les données et fonctions que nous allons utiliser au sein de la base de
données qui sera associée à notre logiciel.
Le MCD correspondant à notre application peut se diviser en sous-modèles, spécifiques à
différentes parties de ce projet.
Ainsi, nous avons découpé le MCD en trois sous-modèles :
- Inscriptions
- Réservation
- Planning
8.1.1 Modèle Global
Le modèle global, réalisé à partir des sous-modèles précédemment cités, représente le
modèle Entité-Association du projet ‘Système de réservation d’un centre de tennis’.
C'est un modèle qui utilise les méthodes de conception de la méthode Merise. Il définit
l'ensemble des données et leurs fonctions au travers de ses entités (noms) qui sont reliées
par des associations (verbes).
Il nous permet également de définir à un niveau conceptuel les types des données que
nous allons utiliser dans notre base de données (nombres, chaînes de caractère, etc.)
De par sa complexité, nous allons vous présenter les modèles dans le reste du dossier
dans notre découpage en trois sous-modèles.
37
Figure № 22 : MCD ‘Système de réservation d’un centre de tennis’
38
8.1.2 MCD - Sous-modèle Inscriptions
Figure № 23 : MCD ‘Gestion des Inscriptions’
39
8.1.3 MCD - Sous-modèle Réservation
Figure № 24 : MCD ‘Gestion des Réservations’
40
8.1.4 MCD - Sous-modèle Planning
Figure № 25: MCD ‘Gestion du Planning’
41
8.2 Modèle logique de données
Toujours en utilisant la méthode Merise, nous avons défini le Modèle Logique de
Données ou MLD qui correspond au MCD précédemment décrit.
Aussi appelé Modèle Relationnel, celui-ci est beaucoup plus proche de la structure de la
base de données que nous allons utiliser lors de l'implémentation.
En effet, il définit les tables qui vont constituer la base de données.
De même pour plus de lisibilité, nous avons choisi de représenté le MLR en 3 sousmodèles.
8.2.1 MLD - Sous-modèle Inscription
Figure № 26 : MLD ‘Gestion des Inscriptions’
42
8.2.2 MLD - Sous-modèle Réservation
Figure № 27 : MLD ‘Gestion des Réservations’
43
8.2.3 MLD - Sous-modèle Planning
Figure № 28 : MLD ‘Gestion du Planning’
44
8.3 Description des tables
Table
PERSONNE
INSTITUTION
INSCRIPTION
SOUSCRIREP SOUSCRIREI
PAIEMENTMENSUELPPAIEMENTMENSUELI
CLUBHOUSE
COURT
MATERIEL
RESERVATION
MANIFESTATION
OCCUPER
UTILISE
CONCERNEMATERIEL
INSCRITI - INSCRITP
ANIMER
MATCH
EQUIPEDOUBLE
Description
Données renseignant un joueur ou un entraîneur
Données renseignant une institution(école, association, club,…)
Rassemble l’ensemble des forfaits disponibles avec leur propriétés
Tables permettant de lier un joueur ou une institution adhérente à un
certain forfait, tout en gardant l’historique des souscriptions
Tables permettant de savoir si un joueur ou une institution adhérente
a payé son forfait pour un certain mois, en précisant le montant des
extras (manifestations, heures hors quotas, etc…)
Données du Club House(cette table ne contiendra donc qu’une
occurrence)
Rassemble les courts de tennis et leur propriétés (nom, surface, …)
Données des matériels disponibles et leur quantité (balles et raquettes
au minimum)
Permet de sauvegarder les réservations de court de tennis par un
joueur ou une institution, ainsi que leurs propriétés (date, heure, …)
Données de toutes les manifestations enregistrées (cours, stages ou
tournois) avec leur propriétés nécessaires (nom, organisateur, date, ..)
Permet de donner une représentation globale de toutes les
occupations de court de tennis avec leur cause, que ce soit pour une
simple réservation par un joueur ou une institution, ou pour une
utilisation par une manifestation.
Précise les matériels empruntés en même temps qu’une réservation
(raquettes et balles), ainsi que leur quantité
Précise les matériels utilisés par une manifestation (raquettes et
balles), ainsi que leur quantité
Tables permettant d’inscrire un joueur ou une institution(nombre de
personne à préciser) à une manifestation
Donne les entraîneurs affectés à une manifestation, autres que
l’organisateur
Ensemble des matchs organisés au cours d’un tournois, ainsi que leur
propriétés(participants,…) et leurs résultats
Ensemble des équipes composées par 2 joueurs
45
8.4 Modèle logique de données optimisé
Le MLD tel qu'il est représenté sur la page précédente n'est pas le diagramme abouti que
l'on va utiliser pour générer la base de données. En effet, il nécessite une optimisation qui
lui permet d'être plus proche de la réalité et plus adapté à la réelle utilisation de la base de
données : on veut obtenir une performance optimale en terme de temps de réponse de la
base de données.
Le MLD optimisé ainsi obtenu est plus généralement appelé Modèle Physique optimisé.
On traite ainsi la redondance d'information pour mettre en place une facilité de
développement et limiter les jointures lors des requêtes sur la base, afin de diminuer le
temps de réponse.
On modifie également le MLD afin de diminuer le nombre de tables, en supprimant ou
fusionnant des tables existantes, tout cela en conservant les informations et la plus grande
partie de la normalisation que nous a apporté la conception.
8.4.1 Suppression de tables ne comportant qu’une seule clef
Cette suppression concerne notamment les tables de Date et de Mois. Par exemple dans la
gestion des paiements mensuels des adhérents (sous modèle Gestion des Inscriptions),
l’entité MOIS sera supprimée, et en conséquence son index primaire associée, alors que
l’entité de paiement verra sa clef étrangère ANNEEMOIS transformée en clef primaire
simple.
Ce procédé aura permis de gagner en nombre de tables et en nombre d’index primaires,
donc en performance.
8.4.2 Redondance calculée
Les courts de tennis sont occupés soit par des manifestations soit par des réservations. 2
tables sont donc utilisées afin sauvegarder ces occupations (sous-modèle Gestion des
Réservations) : la table RESERVATION et la table OCCUPE(pour les manifestations).
Nous avons préféré rassembler toutes les réservations de courts, que ce soit par des
réservations normales ou par des manifestations, dans une seule et unique table
OCCUPER, ce qui amène à une redondance vis à vis de la table RESERVATION, mais
ce qui permet de simplifier les requêtes quant à la gestion des courts inoccupés ou non.
En conséquence, cette table disposera des 3 clefs étrangères permettant d’identifier
l’occupant du court, puisque celui-ci peut être de différents types.
46
8.4.3 Fusion de tables
Dans la gestion du planning, on peut s’apercevoir de la gestion assez lourde des matchs.
Afin de la simplifier, nous avons choisi de fusionner plusieurs tables pour éviter les
jointures, et ainsi gagner en nombre de tables.
Premièrement, on doit remarquer que beaucoup de jointures dans la gestion des matchs
sont formées en réalité de cardinalités (2,2) : ainsi, on peut éviter une table de jointure en
ajoutent tout simplement deux clefs étrangères ; c’est le cas de l’EQUIPEDOUBLE
composée de deux joueurs, d’un MATCH composé de deux joueurs ou de deux équipes.
On exécutera la même opération sur la table des SET, puisqu’un match ne contient au
maximum que 5 sets. Dans ce cas, les colonnes SET1 à SET5 seront des chaînes de
caractères ou seront stockées leur résultat. Mais ceci implique une plus grande difficulté à
connaître le vainqueur d’un match (il suffisait auparavant de compter de nombre
d’occurrences de Sets gagnés), c’est pourquoi nous avons choisi d’ajouter une
redondance à notre table MATCH : il s’agit du joueur ou de l’équipe vainqueur.
Au final, nous avons une réduction de 6 tables, et donc une gestion beaucoup plus
simplifiée des matchs.
8.4.4 Choix d’héritages
Un entraîneur ayant droit au même traitement qu’un joueur, avec seulement des
possibilités et droits supplémentaires, nous avons choisis de remonter les propriétés d’un
entraîneur dans la table PERSONNE afin d’économiser des jointures superflues, ce qui a
pour effet d’augmenter le nombre de champs d’une personne : les propriétés propres à un
entraîneur permettront alors d’identifier ce type.
47
Figure № 29 : MLD optimisé ‘Gestion des Inscriptions’
48
Figure № 30 : MLD optimisé ‘Gestion des Réservations’
49
Figure № 31 : MLD optimisé ‘Gestion du Planning’
50
8.5 Les packages
Nous avons décidé de mettre nos procédures et fonctions dans 11 packages.
CT_Authentification Contient toutes procédures et fonctions permettant à l’utilisateur
de se connecter avec un login et mot de passe
CT_Insertions
Contient toutes les procédures permettant les traitements
d’insertion
CT_Insertions_Form Contient toutes les procédures de l’interface d’insertions
CT_Updates
Contient toutes les procédures permettant les traitements de mise à
jour
CT_Updates_Form
Contient toutes les procédures de l’interface de mise à jour
CT_Delete
Contient toutes les procédures permettant les traitements de
suppression de données
CT_Gestion
Contient toutes les procédures et fonctions permettant la gestion
du système
CT_Edit
Contient toutes les procédures et fonctions permettant l’édition du
système
CT_Joueur
Contient toutes les procédures et fonctions propres à la gestion des
joueurs
CT_Institutions
Contient toutes les procédures et fonctions propres à la gestion des
institutions
CT_Court
Contient toutes les procédures et fonctions propres à la gestion des
courts
Lors de la connexion, le package CT_authentification est lancé et permet pendant toute la
navigation des utilisateurs connectés une sécurité sur le passage des données.
Toutes nos pages s’enchaînent plus ou moins de la manière suivante :
Appel d’une page du type :
CT_Gestion.gest_(nom de table)
Cette procédure appelle différents types d’autres procédures suivant l’action demandée
par l’utilisateur :
- CT_Insertion_Form.CT_insert_(nom table)
- CT_Updates_Form.CT_UPDF_(nom table)
- CT_EDIT.ED_(nom table)
- CT_DELETE_(nom table)
51
Les deux premières procédures, quant à elles appellent elles aussi d’autre procédure du
type :
- CT_Insertion.CT_ins_(nom table)
- CT_Updates.CT_UPD_(nom table)
Nous avons tenté au maximum de séparer les packages d’IHM et ceux contenant les
requêtes en relation avec la base de données.
Nous n’avons pas eu toutefois le temps d’enlever tous les liens vers notre page .css que
nous avons insérés ; de plus, nous avons eu l’idée de créer un nouveau package ‘curseur’
pour y insérer tous nos curseurs dont l’appel aurait été fait dynamiquement mais nous
n’avons pas eu non plus le temps de coder cette partie.
Figure № 32 : Architecture des packages
52
8.6 Exemple de script
Dans cette partie, nous avons inséré un imprime-écran de la partie de code qui est décrite
ci-après.
53
54
55
56
9. Conclusion
La mise en place de ce système de réservation d’un centre de tennis en ligne a été une
expérience très enrichissante pour nous. Cependant, nous avons passé beaucoup de
temps, peut-être même trop, sur la conception d’une maquette : comment réaliser ce site
d’un point de vue technique mais aussi qu’elles étaient les fonctionnalités que nous
souhaitions y voir. C’est pourquoi, nous n’avons pas eu le temps de mener à bien la partie
de codage ; ainsi nous avons dû mettre des priorités sur les parties que nous voulions
aborder telles que la réservation en elle-même ou l’authentification par exemple
contrairement à la partie esthétique que nous avons mise un peu de coté.
57
10. Références
9.1 Bibliographie
Cours de Base de données – UV BD50 – M. Christian Fischer
Université de Technologie de Belfort-Montbéliard – Semestre de Printemps 2005
Cours de Génie Logiciel – UV GL52 – M. Abder Koukam
Université de Technologie de Belfort-Montbéliard – Semestre de Printemps 2005
9.2 Webographie
http://www.oracle.com
Site du SGBDR Oracle
58
Téléchargement