Professional Documents
Culture Documents
Promotion 2008
DOSSIER DE CONCEPTION
Projet CAR
William BOHER-COY
Jonathan FAVIER
Robin HAIDER
Samuel ROLLET
Date de rdaction :
27/01/2008
_______________________________________________________________________________
Dossier de Conception
Page 1 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
Sommaire
I. Domaine dapplication............................................................................................................ 4
1. Objectifs du systme ................................................................................................................4
2. Interfaces ..................................................................................................................................5
A. Interfaces Utilisateur ...........................................................................................................5
B. Interfaces Logicielles...........................................................................................................5
C. Interfaces de communication...............................................................................................6
3. Bases de donnes externes .......................................................................................................6
4. Contraintes gnrales de conception ........................................................................................6
II. Documents de rference ........................................................................................................ 7
III. Normes, standards et outils .................................................................................................. 8
1. Mthodes de conception...........................................................................................................8
2. Environnement et outils de dveloppement .............................................................................9
3. Notations utilises ....................................................................................................................9
4. Conventions de nommage ......................................................................................................10
A. Noms des applications et des packages .............................................................................10
B. Base de donnes.................................................................................................................10
C. Application ........................................................................................................................11
5. Standards de programmation..................................................................................................12
IV. Conception generale........................................................................................................... 13
1. Langages utiliss ....................................................................................................................13
2. Diagramme de dploiement ...................................................................................................14
3. Architecture des Composants.................................................................................................15
A. Architecture 5 couches pour lapplication nationale .........................................................15
B. Architecture de lapplication mobile .................................................................................17
4. Structure des donnes globales, des fichiers et des bases de donnes ...................................19
5. Stratgie de traitement des erreurs et des exceptions .............................................................19
6. Justification des choix darchitecture, des composants et du langage ...................................21
V. Conception detaillee des composants.................................................................................. 22
1. Systme dInformation ...........................................................................................................22
A. Rgles de gestion...............................................................................................................22
B. Modle Mtier ...................................................................................................................23
2. Base de donnes .....................................................................................................................25
A. Modle Conceptuel de Donnes........................................................................................25
B. Modle Logique Relationnel .............................................................................................26
3. Application nationale (AN) ....................................................................................................28
4. Application mobile (AM).......................................................................................................36
_______________________________________________________________________________
Dossier de Conception
Page 2 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
HISTORIQUE DES REVISIONS
Rfrence
Dossier de
Conception CAR
Dossier de
Conception CAR
Dossier de
Conception CAR
Rvision
Date
00
20/11/2007
01
11/01/2008
02
27/01/2008
Auteur(s)
Equipe de
dveloppement
Equipe de
dveloppement
Equipe de
dveloppement
Nature de la rvision
Version projet initiale
Conception Gnrale AN
Conception Dtaille AN et
AM
REFERENCE INTERNET
http://jonathan.favier.free.fr/projets/Car/
_______________________________________________________________________________
Dossier de Conception
Page 3 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
I. DOMAINE DAPPLICATION
1. Objectifs du systme
Lobjectif de ce projet est de fournir un systme destin grer toutes les agences de
location de vhicules de la socit BYRON. Ce systme contient deux applications, une
application nationale (AN) installe au sige de la socit, et une application mobile (AM)
installe sur des PDA.
Lapplication nationale permet aux clients de rserver un vhicule et aux agences de grer
les locations et les rservations, le parc et la maintenance des vhicules, les contrats et les clients,
et enfin ladministration du systme. Cette application doit tre utilisable sur lintranet de la
socit ou lextrieur laide dun navigateur WEB.
Lapplication mobile installe sur des PDA (en mode connect dans lagence par liaison
WiFi ), destine aux agents responsables des parcs vhicules, permet ces derniers de grer les
parcs des vhicules des agences ainsi que les locations.
_______________________________________________________________________________
Dossier de Conception
Page 4 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
2. Interfaces
A. Interfaces Utilisateur
Le systme contient deux applications, une nationale et une mobile. Linterface de
lapplication nationale est une interface WEB (via un navigateur WEB tel que Internet Explorer
ou Firefox) contenant des formulaires et des tableaux de donnes regroups par fonctions, le tout
agenc par une navigation par onglets. Cette interface WEB permet laffichage et la saisie de
donnes. Linterface de lapplication mobile sur PDA est calque sur les applications par dfaut
du PDA. Il sagit galement de formulaires et de listes de donnes, plus un accs rapide la
synchronisation de donnes. Cette interface prend en compte les contraintes du PDA :
technologie disponible, taille de lcran, rsolution. Pour plus dinformations sur ces interfaces,
se rfrer directement la charte graphique du projet CAR.
Ces deux applications comportent leur point dentre une authentification par mot de
passe de lemploy (ou du client pour lAN) qui va utiliser les services proposs. En fonction de
la nature de lutilisateur, des droits ou des restrictions seront configurs sur les applications.
B. Interfaces Logicielles
Les interfaces logicielles mentionnes ici sont des interfaces internes au systme.
Interface avec la base de donnes centrale : les deux applications du systme CAR
doivent interagir avec la base de donnes centrale (Oracle, installe sur le serveur de base
de donnes) au moyen de pilotes ddis, de manire synchronise. Cette base de donnes
rassemble toutes les donnes manipules par lapplication nationale.
Interface avec chaque base de donnes mobile : lapplication mobile installe sur le
PDA doit interagir avec la base de donnes embarque qui laccompagne (Oracle Lite),
grce un pilote ddi.
Interface de synchronisation entre les PDA et le serveur central : tous les PDA
contiennent un composant de synchronisation de donnes avec le serveur de base de
donnes (et inversement).
_______________________________________________________________________________
Dossier de Conception
Page 5 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
C. Interfaces de communication
Les interfaces de communication mentionnes ici sont des interfaces internes au systme.
Interface entre le PDA et le serveur central : le PDA et le serveur central, lors des
synchronisations, communiquent grce une liaison WIFI (ou une liaison USB filaire
pendant la phase de dveloppement uniquement).
Interface entre le client WEB et lapplication nationale : pour accder aux donnes et
aux services prsents par lapplication nationale, une connexion TCP/IP est ncessaire.
Larchitecture J2EE doit tre utilise pour lapplication nationale, avec lutilisation des
composants Hibernate et Spring.
La base de donnes doit tre de type Oracle pour lapplication nationale, et la base de
donnes de la partie mobile Oracle Lite. Ces bases de donnes doivent tre
synchronises intervalle rgulier.
Le modle du PDA est impos/fourni par le matre douvrage.
La phase de conception nest dmarre quaprs validation du modle mtier (et du
modle conceptuel des donnes) par le matre douvrage.
Les rgles de document applicables ACAI dfinies comme rfrences dans le cahier
des charges doivent tre respectes tout au long de la conception.
Les deux applications devront tre en franais.
Les connexions aux applications du systme CAR doivent tre scurises par mot de
passe. Chaque catgorie dutilisateurs disposera de droits spcifiques.
_______________________________________________________________________________
Dossier de Conception
Page 6 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
Le Cahier Des Charges dans sa version finale : il contient les spcifications initiales des
exigences du matre douvrage. Rfrence : CAR-CDC-AVIS-V01
Le Modle Mtier : il correspond au modle conceptuel des donnes, et est accompagn
des rgles de gestions, des contraintes dhistorisation et de cohrence des donnes.
Rfrence : CAR-MM-AVIS-V01
La Charte Graphique : elle a t tablie spcialement pour le projet CAR.
Rfrence : CAR-CG-AVIS-V01
Les Maquettes des crans et leurs Cinmatiques.
Rfrence : Partie clients : http://jonathan.favier.free.fr/projets/Car/AN/
Administration : http://jonathan.favier.free.fr/projets/Car/AN/connexion.html
Le Dossier Dveloppeur : il contient les instructions techniques de mise en place de
lenvironnement de dveloppement et de larchitecture.
Rfrence : CAR-DD-AVIS-V01
Les Rgles ACAI : elles sont t imposes par le matre douvrage dans le CDC.
o ACAI-GuideErgonomie-150
o ACAI-GuidePersistance-150
o ACAI-GuideRalisation-150
o ACAI-ModleErgonomie-150
Rfrence : http://www.informatique.dgpa.equipement.gouv.fr/
Les documents suivants ont t utiliss pour amliorer les concepts introduits dans ce dossier :
_______________________________________________________________________________
Dossier de Conception
Page 7 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
_______________________________________________________________________________
Dossier de Conception
Page 8 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
3. Notations utilises
La terminologie utilise dans le projet CAR est disponible dans le Cahier Des Charges. Les
acronymes qui sont les plus couramment utiliss sont AN (application nationale CAR) et
AM (application mobile pour PDA). Les conventions suivantes seront utilises pour les schmas
de modlisation : normes UML 1.5 et conventions MERISE.
_______________________________________________________________________________
Dossier de Conception
Page 9 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
4. Conventions de nommage
Ces conventions concernent les rpertoires et dossiers, des entits spcifiques dans les
applications du systme CAR (classes, variables, packages, entits de fichiers de configuration) et
dans la base de donnes (tables, champs). Ces conventions respectent les conventions de codage
prcises en annexe dans le document ACAI-GuidePersistance-150.
B. Base de donnes
Les tables de la base de donnes sont issues de deux catgories de donnes dans le MCD
: les entits (employs, clients, etc.) et les associations (rattachement dun vhicule une agence,
mise disposition dun vhicule par un employ, etc.). Chaque entit possde un libell lisible
qui permet de la distinguer clairement (table EMPLOYE au lieu de EMP par exemple). Ce libell
peut contenir des chiffres, mais ne peut pas contenir d'articles dans le nom (ex : LE_CLIENT), ni
de verbes (VEHICULE_RATTACHER_A).
Rfrence : PA52 du Document ACAI-GuidePersistance-150
Les associations reliant toujours deux entits au minimum, le libell des tables
correspondantes est une concatnation des deux entits, ce qui donne par exemple
VEHICULE_AGENCE pour la table correspondant lassociation rattachant un vhicule une
agence. Etant donn que plusieurs associations peuvent exister entre 2 tables, on ajoutera alors au
libell de la table le nom caractrisant cette association (RATTACHEMENT,
CORRESPONDANCE, etc.). Les noms des tables ne devront jamais dpasss 30 caractres.
Concernant les champs de la base de donnes, les noms des colonnes ont les mmes
rgles que les libells des tables. Le nom de chaque colonne d'une table commence par les 3
premires lettres du nom de la table (hors prfixe). Ceci permet d'identifier trs clairement les
colonnes de cl trangre : elles ne commencent pas par les 3 mmes lettres.
Un index sur une cl primaire est cr automatiquement et portera le nom de la cl
primaire : PK_nom de la table. Les index sur les cls trangres seront prfixs de FK. On aura
FK_nom de la rfrence.
_______________________________________________________________________________
Dossier de Conception
Page 10 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
Concernant les requtes SQL prsentes dans les fichiers sources, elles doivent tre crites
de la faon suivante : lettres majuscules pour les mots SQL (ex. : SELECT, UPDATE,
TO_CHAR) et lettres minuscules pour les noms des objets sur lequel porte la requte (noms des
tables, champs, variables, etc.). Avant chaque mot SQL, il est souhaitable d'avoir un retour la
ligne et d'aligner les lignes de la requte (avec des espaces et non des tabulations qui ne sont pas
portables pour la mise en page). De mme, les conditions des sous-requtes doivent tre dcales
par rapport la requte principale.
Rfrence : PA54 du Document ACAI-GuidePersistance-150
C. Application
Application nationale : nom des couches
Au sein de lapplication nationale, il convient de nommer chaque couche de faon
prdfinie. En effet, chaque couche est stocke dans un package diffrent :
la couche physique nest pas reprsente car il sagit de la base de donnes
la couche mapping est stocke dans les packages : car.an.hibernate et car.an.dao
la couche mtier est stocke dans le package : car.an.business
la couche application est stocke dans le package : car.an.controllers
la couche prsentation est stocke dans un dossier spar WebRoot contenant des jsp et
les ressources associes.
Application nationale : couche mapping
Au sein de la couche mapping, plusieurs conventions de nommage sont dterminer. On
distingue deux types de fichiers : les fichiers de mapping (.hbm.xml) et les classes dentits
mtiers (.java). Ces deux types de fichiers sont gnrs automatiquement partir de la base de
donnes.
Les classes de mapping dveloppes dans ce projet utilisent le mapping gnr par
Hibernate. Ces classes daccs aux donnes (Data Access Object) sont nommes suivant le
schma <NomDonneesAccedees>DAO. Des interfaces dfinissent pour chaque DAO les
mthodes offertes. Chaque classe DAO implmente linterface qui lui correspond. Ces interfaces
sont nommes suivant le schma I<NomDonneesAccedees>DAO.
Application nationale : couche mtier
Au sein de la couche mtier, plusieurs conventions de nommage sont galement mettre
en place. Tout dabord, les fichiers sont organiss par entits, les entits tant elles-mmes
organises par groupes dentits selon laxe de fonctionnalit (activit commerciale, employs,
clients etc.). Chaque entit est alors reprsente par 2 fichiers principaux (dautres fichiers
complmentaires peuvent sajouter) :
les managers, nomms <NomManager>Business
les interfaces associes, implmentes par les managers : I<NomManager>Business
_______________________________________________________________________________
Dossier de Conception
Page 11 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
Application nationale : couche application
La couche application est constitue des diffrents contrleurs permettant dimplmenter
chaque service demand. Ces contrleurs sont organiss par axes de fonctionnalits ( limage de
la couche mtier). Tous les contrleurs sont nomms suivant le model <Nom>Controller
Spring
Spring dfinit des objets et leurs dpendances dans un fichier de configuration xml. Les
objets qui font rfrence aux classes cres pour reprsenter les diffrentes couches sont nommes
suivant le model suivant nomClasse pour une classe NomClasse.
5. Standards de programmation
Lquipe de dveloppement suit un ensemble de conventions de codage qui permettent
une homognisation des sources :
Les commentaires doivent tre rdigs pour chaque classe et chaque mthode en
respectant la norme JavaDoc, afin de permettre toute personne entrant dans le projet de
reconnatre lutilit, les entres et les sorties de ces entits.
Les conventions de codage Java utilises sont celles recommandes par les ACAI (cf.
Guide de conception-ralisation).
Les conventions de codage SQL sont galement celles recommandes par les ACAI (cf.
Guide de la persistance).
Les conventions approuves par le W3C sont galement appliques dans le cadre du
dveloppement WEB (HTML et CSS).
_______________________________________________________________________________
Dossier de Conception
Page 12 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
SQL pour les scripts de cration de la base de donnes (cration de tables et insertions de
tuples dans la BD) ainsi que pour les requtes spcifiques de lAM.
PL/SQL pour les dclencheurs.
HQL (langage requtes de Hibernate, similaire SQL) pour les requtes spcifiques
dans lAN.
Java 1.5 pour le dveloppement de lapplication nationale, Java 1.4 pour lapplication
mobile.
JSP pour le dveloppement des vues dans lAN.
XHTML, CSS et Javascript pour le contenu des vues JSP dans lAN.
XML pour les fichiers de configuration Spring, Hibernate et Tomcat.
_______________________________________________________________________________
Dossier de Conception
Page 13 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
2. Diagramme de dploiement
Voici un diagramme de dploiement rsumant les diffrents composants qui font partie du
systme Car.
_______________________________________________________________________________
Dossier de Conception
Page 14 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
Prsentation
Application
Mtier
Mapping
Donnes
Couche Donnes : cette couche contient les donnes physiques stockes dans la base de donnes
Oracle. Elle ne requiert pas dimplmentation Java particulire et fonctionne simplement comme
un espace de consultation massif.
Couche Mapping : cette couche contient limplmentation des accs la base de donnes afin de
la masquer la couche mtier. Cette couche est entirement gre par Hibernate.
Couche Mtier : cette couche contient les objets mtiers de lapplication. Il existe un objet par
fonctionnalit de lapplication. Ces objets implmentent les fonctionnalits spcifiques relatives
la location de voitures, et font le lien entre la couche contrleur et la couche mapping.
Couche Application : cette couche contient la partie fonctionnelle de lapplication. Elle sappuie
sur les objets mtier pour raliser les actions sollicites par lutilisateur par lintermdiaire de la
couche prsentation. Elle est en charge de vrifier la validit des requtes de la couche
prsentation. Il existe un contrleur par fonctionnalit de lapplication. Le schma utilis est le
MVC (Modle Vue Contrleur), mis en uvre en utilisant Spring MVC. Plus dinformations sont
disponibles dans le paragraphe suivant.
_______________________________________________________________________________
Dossier de Conception
Page 15 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
Couche Prsentation : cette couche reprsente les interfaces qui permettent de prsenter les
contenus gnrs par la couche prsentation, grce des vues dynamiques (JSP). Elle se charge
dafficher des contenus lutilisateur et de lui offrir des interfaces avec la couche contrleur pour
interagir avec lapplication.
Larchitecture MVC
Les couches prsentation et application sappuient sur larchitecture Modle-VueContrleur qui permet de sparer le fonctionnel de linterface. Cette architecture est ralise par
une conjonction dun contrleur et dun nombre quelconque de pages JSP (les vues) qui offrent le
rendu lutilisateur. Les donnes calcules par le contrleur et fournies aux vues pour tre
affiches sont les modles. Le contrleur sappuie sur les couches infrieures pour obtenir ces
donnes.
Utilise
Utilise
CA
R
Vue
Contrleur
Utilise
Renvoi
Cre
Utilise
Mtier
Modle
Plus prcisment, lutilisateur sollicite une action par lintermdiaire dune Vue. Cette
action est transmise au contrleur, qui en vrifie la validit et sappuie sur la couche mtier pour
leffectuer. Enfin le contrleur renvoi sur la vue correspondant la demande de lutilisateur.
_______________________________________________________________________________
Dossier de Conception
Page 16 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
Sur les applications PDA, la stratgie adopte est dutiliser un modle en couches
similaire. Cependant, la taille de lapplication nimpose pas une sparation aussi fine que
lapplication nationale. Nous appliquons donc un modle 3 couches, organis comme suit :
Couche Prsentation : cette couche effectue la prsentation des donnes lutilisateur par
lintermdiaire de formulaires et de listes de donnes interactives. Lutilisateur accde
lapplication par cet unique moyen.
Couche Mtier : de mme que pour lAN, cette couche contient dune part les objets mtier,
correspondant aux donnes mtier manipuler dans lapplication, dautre part, les services
mtiers relis ces objets (cration, recherche, suppression, modification et autres services
spcifiques). A limage de lAN, cette couche soccupe de garantir que le mtier de lapplication
est respect, que les rgles lies aux donnes sont toujours suivies. Dans cette couche, on
retrouve galement les mthodes daccs la base de donnes (prsentes dans la couche Donnes
dans lapplication nationale).
Couche Donnes : cette couche contient les donnes physiques stockes dans la base de donnes
mobile Oracle Lite.
_______________________________________________________________________________
Dossier de Conception
Page 17 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
synchronisations peuvent tre plus frquentes dans le cas de procdures de mise
disposition ou de retour de vhicules.
_______________________________________________________________________________
Dossier de Conception
Page 18 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
Dpartement Informatique
Promotion 2008
ne peu pas tre supprime mais simplement retire de la circulation. Ce genre de rgles mtiers
doivent tre vrifies par cette couche.
- couche mapping : cette couche se charge de vrifier toutes les rgles de gestion implmentes
dans la base de donnes. Cela permet de passer au crible toutes les erreurs de saisies qui seraient
soit mal gres par les couches suprieurs, soit appartenant des cas trs spcifiques derreurs.
Notamment, la gestion des transactions est primordiale. Hibernate se charge dune grande partie
de ces problmatiques, il convient toutefois de dfinir les contraintes sur la base de donnes avec
prudence et prcision.
Scurisation des accs aux donnes
Les donnes sont accessibles au travers de diffrents crans, offrant les diffrentes
fonctionnalits de lapplication. Les utilisateurs de la partie administration de lAN doivent
sidentifier pour y accder. De plus un rle est dfinit pour chacun deux. Pour chaque rle, les
fonctionnalits accessibles sont dfinies dans la base de donnes. Lapplication est dveloppe
pour prendre en compte les fonctionnalits accessibles lutilisateur courant. Pour cela elle
naffiche que les crans autoriss lutilisateur. De plus certaines portions de formulaires ou de
menus peuvent tre masques.
Pour empcher laccs aux crans non autoriss, en plus de les masquer, un contrleur
spcifique, appel intercepteur vrifie quun utilisateur peut bien y accder pour chaque requte.
Les droits daccs sont ditables par ladministrateur qui dispose de tous les droits sur tous les
crans de lapplication.
_______________________________________________________________________________
Dossier de Conception
Page 20 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
_______________________________________________________________________________
Dossier de Conception
Page 21 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
R10 : un client peut effectuer une ou plusieurs rservations. Une rservation correspond
un seul client. Une rservation effective est une location.
R11 : une rservation est faite pour une catgorie de vhicule donne.
_______________________________________________________________________________
Dossier de Conception
Page 22 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
R13 : une rservation est paye avec un mode de rglement particulier (chque, CB,
etc.).
R14 : un employ de type agent commercial met disposition un vhicule une date
donne pour une rservation donne. Un employ de type agent commercial effectue le
retour dun vhicule une date donne pour une rservation donne.
R16 : un employ est soit rattach une agence, soit directement au sige.
R17 : un vhicule est prsent dans une agence un moment donn. Une agence peut
contenir plusieurs vhicules dans son parc de vhicules.
R18 : des inspections sont effectues sur tous les vhicules. Chaque vhicule est inspect
une date donne. Une inspection est toujours effectue lors de la mise disposition
dun vhicule, et lors de son retour.
R19 : une inspection peut ne donner lieu aucun constat, ou donner lieu plusieurs.
R24 : une rservation a une agence de dpart et une agence de retour prvue. Lorsque la
rservation devient une location, la location a une agence de dpart effective, et lorsque
le retour est effectu, une agence de retour effective.
B. Modle Mtier
_______________________________________________________________________________
Dossier de Conception
Page 23 / 39
CAR-DC-AVIS-V01.doc
_______________________________________________________________________________
Dossier de Conception
Page 24 / 39
CAR-DC-AVIS-V01.doc
2. Base de donnes
A. Modle Conceptuel de Donnes
La reprsentation du systme dinformation a t ralis laide du modle mtier et de la
mthode MERISE. Cette mthode nous a permis de raliser le Modle Conceptuel de Donnes ou
MCD, qui fait le lien entre le modle mtier et le modle logique. Le MCD est un modle dit
entits-relations qui modlise lensemble des rgles de gestion et des contraintes du systme. Il
correspond globalement au modle mtier, en dtaillant le contenu des entits mtiers (attributs).
La construction du MCD a t ralis partir des spcifications du cahier des charges, du
modle mtier et des runions avec le matre douvrage. Celui-ci a t gnr grce au logiciel
WinDesign, qui permet de transformer le MCD en MLR et de gnrer le script de la base de
donnes correspondant.
_______________________________________________________________________________
Dossier de Conception
Page 25 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
Lhistorisation consiste garder une traabilit de ltat dune entit ou dune relation
travers les modifications et suppressions intervenues dans le temps. Elle est reprsente par le
formalisme MERISE dans le MCD (voir prcdemment pour les relations entre les agences et les
vhicules par exemple). Lhistorisation des dates darrive et de dpart des vhicules dans les
agences, ainsi que des dates de mise disposition et de retour des vhicules a t traduite par 2
tables, EMPLOYE_VEHICULE (pour la mise disposition et le retour) et
VEHICULE_AGENCE (pour les dates de dpart et de retour).
_______________________________________________________________________________
Dossier de Conception
Page 26 / 39
CAR-DC-AVIS-V01.doc
_______________________________________________________________________________
Dossier de Conception
Page 27 / 39
CAR-DC-AVIS-V01.doc
Prsentation
Application
Mtier
Mapping
Donnes
Les couches Prsentation et Contrleur ont t dveloppes en utilisant le paradigme MVC :
Utilise
Utilise
CA
R
Vue
Contrleur
Utilise
Renvoi
Cre
Utilise
Mtier
Modle
Pour mettre en uvre cette architecture nous avons utilis :
- Oracle 10g XE pour la couche Donnes ;
- Apache Commons DBCP pour le pool de connections ;
- Hibernate pour le mapping de la base de donnes ;
- Spring IOC pour les liens entre les diffrentes couches ;
- Spring MVC pour la mise en place du MVC ;
- JSTL (JavaServer Pages Standard Tag Library) pour laffichage des donnes dans les JSP.
Spring permet de rduire la dpendance entre les diffrentes couches et diminue la quantit de
code ncessaire par lintermdiaire de fichiers de configuration.
_______________________________________________________________________________
Dossier de Conception
Page 28 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
Spring IOC
Spring IOC permet de rduire la dpendance entre les couches de lapplication. Il sagit en
fait de sparer lappel la couche infrieure de son implmentation. Linversion de contrle
permet de mettre en place cette sparation. Les lments des couches Mapping et Mtiers
sont dfinis par des interfaces puis implments dans des classes distinctes. La couche suprieure
ne connat que lexistence des interfaces dont elle utilise les mthodes prdfinies. Ainsi le
changement dimplmentation dune couche naffecte pas la couche suprieure.
Linstanciation des objets de chaque couche est prise en charge par Spring. Un fichier de
configuration XML dfinit les dpendances effectives entre les couches. Grce ce fichier,
Spring peut savoir quels objets instancier et comment les mettre en relation.
Hibernate
Les DAO vont utiliser des primitives fournies par Hibernate pour faire appel la base de
donnes. Notamment, le langage HQL doit tre utilis pour crer des requtes. Le framework
Spring fournit une encapsulation permettant de faire appel aux mthodes Hibernate plus
simplement. En effet il permet de mettre en uvre linversion de contrle entre les DAO,
Hibernate et le driver JDBC. Pour cela il faut utiliser un Pool de connections pour simplifier
laccs la base de donnes (ici, Apache Commons DBCP).
Spring MVC
Spring MVC permet de mettre en uvre facilement le paradigme MVC en limitant les
dpendances entres Modles, Vues et Contrleurs. Spring offre des types de base pour
implmenter les contrleurs et les modles. De plus, il permet de mettre en uvre un contrleur
central qui se charge de dispatcher les requtes de la couche Prsentation sur le contrleur
appropri. Enfin les oprations dites gnriques inhrentes au modle MVC sont ralises par
le framework.
Couche Physique
La couche physique ncessite Oracle 10 XE pour sa mise en place. Elle a t modlise
par un Modle Mtier puis par un Modle Logique Relationnelle en utilisant WinDesign. Ces
diagrammes sont prsents plus haut. Le script de cration de la base est produit par WinDesign.
Il doit ensuite tre excut dans la base de donnes. Un jeu de donnes de test est aussi mis en
place sous forme dun script charg de remplir la base avec des donnes cohrentes pour tester
lapplication.
Lors de la phase de dveloppement, la base de donnes est situe sur une machine
distante, chaque dveloppeur y accde par Internet. Cela implique des temps de latence
importants entre chaque traitement et accs la base de donnes, et donc un ralentissement global
de lapplication. La communication avec la couche physique se fait au moyen dun driver
JDBC fournit par Oracle.
_______________________________________________________________________________
Dossier de Conception
Page 29 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
Couche Mapping
Cette couche est compose de trois catgories de fichiers : les fichiers de mapping Hibernate, les
objets mtiers et les DAO (Data Access Object). Nous allons prsenter les trois types de fichiers
et expliquer comment nous devons les grer vis--vis des services attendus pour cette couche. Les
fichiers de mapping et les objets mtiers sont gnrs automatiquement par le plugin Hibernate
que nous avons install dans notre environnement de dveloppement.
A. Les fichiers de mapping
Ces fichiers contiennent des informations XML permettant Hibernate de faire la liaison entre un
objet mtier et son quivalent dans la base de donnes. Par exemple, le fichier indique quelle
colonne de table correspond telle proprit dune classe mappe.
Il convient de paramtrer Hibernate pour quil prenne en charge lincrmentation automatique
des identifiants des tables.
B. Les objets mtiers de mapping
Ces objets sont des classes java, totalement calques sur les objets prsents en base de donnes.
Ils sont couramment appels les POJOs (Plain Old Java Objects). Ils sont gnrs
automatiquement partir des fichiers mapping.
C. Les DAO
Ces objets sont chargs de faire le lien avec la couche mtier en lui offrant toutes les mthodes
ncessaires pour utiliser les donnes dans la couche physique. Ils masquent la technologie utilise
(ici Hibernate) la couche mtier. Ainsi un changement de technologie pour la couche physique
nentrainerait pas de modification des couches autre que celle du Mapping. Il existe un DAO par
type de donnes de la base de donnes. Ces DAO permettent :
-
Pour respecter les contraintes de Spring MVC, chaque DAO est dfinit par lintermdiaire dune
interface qui dfinit lensemble de ses mthodes. Limplmentation fait appel Hibernate pour
accder la couche physique. Les requtes sont crites en HQL (Hibernate Query Language).
Couche Mtier
La couche mtier a comme rle primordial de proposer un ensemble de services
gnriques sur les donnes, tout en faisant respecter les rgles mtier et les contraintes inhrentes
au domaine dactivit.
_______________________________________________________________________________
Dossier de Conception
Page 30 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
Il existe un objet mtier pour chaque fonctionnalit de lapplication. Les oprations les
plus frquentes sont les oprations CRUD : Create, Read, Update, Delete (Crer, Lire, Modifier,
Supprimer). Ces oprations sont primordiales et doivent tre lensemble minimal de mthodes
fournies par toutes les entits. Elles font simplement le lien entre la couche Mapping et la couche
Application.
Ces oprations peuvent tre bien plus que de simples CRUD, en intgrant par exemple de
la logique mtier spcifique au domaine de la location de voiture. Dautres oprations spcifiques
au mtier sont aussi prsentes quand cela est ncessaire.
Couche Application
Cette couche a pour rle dimplmenter les cas dutilisations qui seront prsents aux
futurs bnficiaires du systme. Larchitecture de la couche se base sur le modle MVC expliqu
plus tt. Un contrleur est mis en place pour chaque fonction de lapplication. De plus, un
intercepteur se charge de contrler les accs, et un dispatcheur de renvoyer les requtes sur le
contrleur appropri. Les contrleurs sont en charge de :
-
CA
R
Requte
Utilise
Intercepteur
Dispatcheur
Vues
Utilise
Mtier
Contrleurs
Renvoi
Utilise
Cre
Modle
A. Scurisation par un intercepteur
Comme prsent prcdemment, cette couche intgre un Intercepteur charg de contrler
que lutilisateur bien accs aux crans quil demande. Pour ce faire, lintercepteur empche
laccs toutes les pages sauf celle didentification, tant que lutilisateur nest pas authentifi. A
lauthentification, le contrleur charg de vrifier lidentit de lutilisateur cre une session. Il
place dans cette session lensemble des informations ncessaires pour quil puisse ensuite
naviguer dans les diffrents crans : identit, fonction, et droits daccs associs.
_______________________________________________________________________________
Dossier de Conception
Page 31 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
A chaque demande de page par lutilisateur, lintercepteur reoit cette demande et
contrle que lutilisateur bien accs cette page. Si la rponse est positive, il laisse le
programme sexcuter ; sinon, il redirige lutilisateur sur la page daccueil en lui indiquant quil
ne peut accder la ressource quil a demand.
B. Dispatcher
Un objet spcifique est charg de diriger les requtes sur le contrleur appropri. Cet objet
est un dispatcheur fournit par Spring, et configur pour diriger chaque requte sur le contrleur
associ.
_______________________________________________________________________________
Dossier de Conception
Page 32 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
Logo
Menu
Sous-Menu
Titre
Sous-Titre
Contenu de
la page
Prsentation:
Agences
...
Client
...
Employ
...
Maintenance
...
Agences
Clients
Employ
Vehicules
Droits
Partenaire
Mapping:
Agences
...
...
Physique
Agences
...
...
Maintenance
Rservation
Employ
...
...
Maintenance
...
...
Employ
...
...
Maintenance
...
...
Rpartition HTML/CSS/JavaScript
_______________________________________________________________________________
Dossier de Conception
Page 33 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
Il est important de bien faire la distinction, dans toutes les pages web qui sont
dveloppes, entre le ct fonctionnel et le ct graphique. LHTML remplit le ct fonctionnel,
i.e. que du contenu, sans se soucier de la forme. Lutilisation des conteneurs de type div se
prte cette sparation du contenu, linverse des tableaux. En effet, un tableau utilis pour la
disposition dlments na aucune signification fonctionnelle, seulement esthtique. Ce nest pas
le rle de lHTML. Les tableaux sont utiliss uniquement pour laffichage de listes de donnes.
Le CSS remplit le ct graphique : disposition des lments, couleurs, tailles. La feuille
de style est commune toutes les pages du site, afin de garder une unit et de pouvoir modifier le
design du site trs rapidement. Le JavaScript nest utilis que pour laide la saisie. Il
nintervient pas dans la validation des donnes saisies : calendrier pour les dates par exemple. En
effet lutilisateur peut choisir de dsactiver le JavaScript dans son navigateur. La validation des
donnes est donc entirement dlgue la couche contrleur.
Compatibilit Firefox/Internet Explorer
La problmatique de compatibilit entre les deux navigateurs les plus utiliss par les
internautes doit tre prise en compte trs tt, car ce sont surtout les styles CSS qui doivent tre
crits avec ces contraintes. En effet, certains styles ne sont reconnus que par lun ou lautre des
navigateurs. La feuille de style a t dfinie ds ltablissement des maquettes des crans. Elle
peut donc tre utilise tout au long du dveloppement pour tre teste.
Authentification utilisateur
Lapplication CAR comporte une interface de gestion destine grer les diffrents
processus de lentreprise. Cette partie de lapplication nest pas destine tre accessible par une
personne extrieure. Lauthentification des employs est donc ncessaire.
Les connexions utilisateurs sont effectues par identification classique : login et mot de
passe. Ces informations sont stockes dans la base de donnes, leur vrification est donc
immdiate lors de lauthentification de lutilisateur.
Gestion des droits dutilisateurs
Au sein de la socit, il existe plusieurs catgories demploys qui nont pas accs aux mmes
fonctionnalits. Les groupes demploys considrs sont les suivants :
- Responsable Agence
- Responsable Parc Vhicules
- Agent Commercial
- Directeur Commercial
Il est possible de dfinir des fonctionnalits au sein de lapplication. Celles-ci pourront, pour
chaque type demploy, contenir le type dautorisation daccs dfini. Par exemple, les agents
commerciaux nauront pas accs aux fonctions lies la gestion des employs. La solution est
donc de stocker une matrice fonction/types dutilisateurs qui permettra de savoir un moment
_______________________________________________________________________________
Dossier de Conception
Page 34 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
prcis quels droits sont accords tel type dutilisateur pour telle fonctionnalit (voir le CDC
pour les fonctionnalits et leurs utilisateurs potentiels).
Sessions utilisateurs
Lauthentification dun utilisateur conduit louverture dune session qui permettra
celui-ci de naviguer sur tout le site sans devoir sidentifier chaque page. La technologie
employe pour la ralisation du site (JSP) permet de dfinir une session utilisateur contenant un
nombre quelconque de variables de sessions, dfinies et existantes pendant toute la dure de la
session.
Il est important de conserver le login (ou le nom associ) de lemploy connect, pour des
raisons de traabilit. Les droits allous cet utilisateur doivent tre conservs. On conserve donc
les droits associs au type dutilisateur auquel appartient lemploy. Lors de la connexion de
lutilisateur, une entit contenant les droits de celui-ci sera donc initialise pour la session
ouverte.
Gestion interne de lauthentification
Il convient de dtailler les diffrents composants qui rentrent en jeu lors dune
authentification utilisateur. Lors de la soumission du formulaire didentification par lutilisateur,
une premire vrification est effectue, permettant de sassurer que ni le champ de mot de passe,
ni le champ de login ne sont vides. Ensuite, les donnes sont compares avec les donnes
stockes en base :
- vrifier que le mot de passe correspond bien lutilisateur ;
- dans le cas o le mot de passe est erron, rediriger vers le formulaire avec une notification
derreur ;
- dans le cas o le mot de passe est correct, charger les droits de lutilisateur et rediriger
vers la page daccueil de lapplication.
Expiration de session et reconnexion
Toute session de connexion possde un time out , qui correspond la dure pendant
laquelle une session sans activit reste connecte. Au-del de ce temps, lutilisateur doit saisir ses
informations de connexion nouveau.
_______________________________________________________________________________
Dossier de Conception
Page 35 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
Dpartement Informatique
Promotion 2008
lments de synchronisation associs. Un projet finalis dans Database Workbench doit tre
dploy sur le Mobile Server afin dtre pris en compte lors des synchronisations suivantes.
La dernire machine implique dans le processus de synchronisation est lunit mobile.
En plus de lapplication CAR et de la base de donnes embarque Oracle Lite, deux applications
doivent tre installes et configures. La premire, Oracle Device Manager, est loutil qui permet
dassocier le PDA un compte Mobile Server. Cest avec cet outil que pourront en outre tre
dclenches dventuelles mises jour et synchronisations automatises. Oracle MSync permet
quant lui de dclencher manuellement une synchronisation. Cest avec cet outil que le
responsable de parc dagences pourra rcuprer ltat courant du parc de vhicules et faire
remonter les actions quil aura effectues face au client. Une fois lapplication configure, deux
clics suffisent pour dclencher une synchronisation. Ce fonctionnement est pratique car il ne
ncessite pas une connexion permanente Internet et permet de profiter de la proximit de points
daccs sans fil.
LApplication Mobile
Lapplication mobile se prsente sous la forme dun client lourd en Java, excut sur la
plateforme dexcution libre Mysaifu. Le code de cette application se limite une compatibilit
avec Java 1.4, version la plus avance supporte par la JVM. Lapplication se dcompose en trois
couches qui communiquent entre elles laide dappels de mthodes Java.
La couche Prsentation
La couche prsentation correspond linterface entre lapplication (le traitement mtier)
et lutilisateur. LAPI Swing ncessitant des ressources trop importantes au regard de ce que
supporte un PDA, lIHM nutilise que les bibliothques AWT.
LIHM de lapplication est contrle par une classe principale qui se charge dafficher
lcran demand. Les diffrents crans sont implments sous la forme de calques dont lordre est
gr par la classe principale. Chaque calque a la possibilit dappeler un autre calque, dans la
mesure o lutilisateur authentifi dans le systme a le droit de visualiser les donnes associes.
Lappel dun calque par un autre peut saccompagner du passage dun objet mtier (cf.
paragraphe ddi).
_______________________________________________________________________________
Dossier de Conception
Page 37 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
Lensemble des crans est charg au dmarrage de lapplication mobile afin de rendre
plus confortable la navigation entre les diffrents panneaux.
La couche Mtier
Cette couche se compose de classes faisant lintermdiaire entre la base de donnes et la
couche prsentation. Ces classes extraient les donnes demandes par lutilisateur et les dlivrent
lIHM. Celle-ci est alors susceptible de renvoyer de nouvelles donnes la couche mtier suite
une saisie ou une autre opration de lutilisateur. La couche mtier sera alors responsable du
contrle de ces donnes et de leur enregistrement dans la base Oracle Lite embarque sur le PDA.
Est associ la couche mtier un ensemble de classes dcrivant les entits manipules
dans lapplication, linstar de ce que gnre Hibernate dans lapplication nationale. Ces classes
mtier permettent dajouter une valeur smantique aux informations changes et facilitent
limplmentation de rgles de contrle de ces informations.
Lorsquune erreur est rencontre par une classe de la couche mtier, celle-ci est transmise
la couche prsentation qui laffiche sur lIHM et modifie ventuellement son comportement en
consquence (par exemple le refus de la validation dun formulaire mal renseign).
_______________________________________________________________________________
Dossier de Conception
Page 38 / 39
CAR-DC-AVIS-V01.doc
Dpartement Informatique
Promotion 2008
La couche Donnes
La couche physique ncessite Oracle Lite 10.3 pour sa mise en place. Le modle mtier
quimplmente cette couche physique est commun aux applications AN et AM. Le script de
cration de base est gr de manire transparente par le Mobile Server qui se charge de crer la
base lors de la synchronisation si celle-ci nexiste pas.
La base de donnes laquelle accde lapplication mobile est situe sur le PDA, ce qui
permet dobtenir des temps de latences trs courts (lagrment dutilisation de lapplication est
cependant conditionn par la puissance du processeur embarqu). La communication avec la
couche physique se fait au moyen dun driver JDBC fournit par Oracle.
_______________________________________________________________________________
Dossier de Conception
Page 39 / 39
CAR-DC-AVIS-V01.doc