Académique Documents
Professionnel Documents
Culture Documents
Je ddie ce travail :
Avec tout mon amour et mon affection, je vous souhaite une vie pleine
de bonheur et de russite et je vous remercie pour votre soutien durant toutes
les priodes difficiles.
Sachez que vous mtes trs chres et que je vous suis trs reconnaissant
pour tout lamour et le soutien dont vous faites preuve mon gard.
Anouar Mechti
guideront toujours.
toute ma famille,
Pour tout le soutien que vous mavez offert je vous dis MERCI.
Otman IGHOULASSEN
Nous remercions tout dabord Dieu tout puissant de nous avoir permis de mener
terme ce projet qui prsente pour nous le point de dpart de notre carrire.
Ainsi, nous tenons remercier nos encadrants Mr. Khalil ATALLA, Mr.
Abdelfattah Idri et Mr. Abdelhay MRABET pour leurs directives prcieuses et leurs
conseils pertinents qui ont t dun appui considrable au cours de ce projet.
Nous saisissons aussi loccasion pour remercier tous les membres du jury, M.
Abdellah EL HADRI et M. Karim BOUZOUBAA qui nous ont fait lhonneur
daccepter de juger ce travail.
Que tous ceux et celles qui ont contribu de prs ou de loin laccomplissement de
ce travail trouvent lexpression de nos remerciements les plus chaleureux.
Pour mener bien notre travail, nous avons dcoup le projet en quatre tapes. Au
dbut, nous avons dfini le contexte gnral du projet, et on a adopt comme dmarche de
conduite de projet, la mthode RUP (Rational Unified Process), qui est une mthode de
dveloppement logicielle itrative base sur le langage UML. Ensuite, on est pass la
phase de lanalyse et la spcification des besoins. Dans ltape suivante, nous avons abord
la phase de conception pour bien structurer la couche mtier de notre application. Enfin, la
dernire tape tait la ralisation et la mise en uvre des modules de notre systme laide
des Frameworks techniques Java/JEE sous lenvironnement de dveloppement Netbeans.
Le prsent rapport synthtise le travail que nous avons ralis durant la priode de
notre stage, et se compose de quatre chapitres qui retracent les diffrentes tapes de notre
projet.
Initially, we defined the general context of the project, and we adopted the Rational
Unified Process (RUP) methodology as an approach to project management, which is an
iterative software development methodology based on UML. Then we went to the phase of
analysis and specification requirements. In the next step, we addressed the design phase to
properly structure the business layer of our application. The final step of our project was
the implementation of the modules of our system using Java/JEE technical frameworks
under the Netbeans development tool.
This report presents the work that we perform during our internship, and consist of
five chapters that trace the various stages of our project.
.VisualSoft
.
.UML
.Java/JEE
Abrviation Signification
AJAX Asynchronous JavaScript + XML
API Application Programming Interface
CRUD Create Retrieve Update Delete
DAO Data Access Object
DET Dpartement de lenseignement traditionnel
DR Dlgation rgionale
DP Dlgation provinciale
EET tablissement de lenseignement traditionnel
HTML HyperText Mark-Up Language
IDE Integrated Development Environment
IHM Interface Homme Machine
JDBC Java Database Connectivity
JEE Java Entreprise Edition
JPQL Java Persistance Query Language
JSF Java Server Faces
JSTL Java Standard Tag Library
MHAI Ministre des Habous et des Affaires Islamiques
MVC Model View Controller
ORM Object-Relational Mapping
POJO Plain Old Java Object
RUP Rational Unified Process
SGBD Systme de Gestion de Base de Donnes
SQL Structured Query Language
UML Unified Modeling Language
XML Extensible Markup Language
4. Conclusion................................................................................................................. 10
3. Conclusion................................................................................................................. 30
4. Conclusion................................................................................................................. 44
7. Conclusion................................................................................................................. 54
Conclusion gnrale .......................................................................................................... 55
Bibliographie ..................................................................................................................... 56
Webographie..................................................................................................................... 56
Annexe A : Outils utiliss ................................................................................................... 57
Annexe B : Le cycle de vie phases multiples dune page JSF .............................................. 59
Annexe C : Les maquettes .................................................................................................. 62
Annexe D : Diagramme de classes global ............................................................................ 64
Introduction gnrale
La stratgie du dveloppement conomique et social qui est adopte par le
gouvernement marocain depuis le dbut de ce troisime millnaire s'articule autour de
plusieurs axes, notamment la rforme et la modernisation de ladministration publique, et
cela travers la promotion de lutilisation des technologies de linformation et de la
communication dans les diffrents dpartements ministriels.
Nous nous penchons ensuite dans le quatrime et dernier chapitre sur ltude
technique et la mise en uvre de notre projet. En effet, on va dcrire dans un premier
temps larchitecture technique, les outils, et les Frameworks utiliss pour le
dveloppement. Ensuite, nous allons expliquer la dmarche de dveloppement et illustrer
certaines fonctionnalits assures par notre application travers quelques crans.
1
Projet de fin dtudes 2011/2012
Chapitre 1 : Contexte gnral du projet
2
Projet de fin dtudes 2011/2012
Chapitre 1 : Contexte gnral du projet
Nous avons effectu notre stage de fin dtudes au sein de la filiale Visual Soft.
Cest une socit de services en ingnierie informatiques (SSII) cre en 1997, et qui a pour
principal objectif de fournir, aux entreprises et organismes divers, des produits et des
services professionnels de haute qualit.
Visual Soft entretient une culture dentreprise centre sur la qualit et sur le
contentement et la satisfaction du client. Se faisant, elle sengage entretenir avec sa
clientle des rapports srieux et permanents fonds sur des qualits de comptence et de
professionnalisme.
Pour rpondre au mieux aux exigences de ses clients, et mener bien sa mission,
Visual Soft runit plusieurs domaines de comptences :
3
Projet de fin dtudes 2011/2012
Chapitre 1 : Contexte gnral du projet
IT Group
Morocco
I.T. Business IT
VisualSoft RSI
Consulting Apps acadmie
4
Projet de fin dtudes 2011/2012
Chapitre 1 : Contexte gnral du projet
5
Projet de fin dtudes 2011/2012
Chapitre 1 : Contexte gnral du projet
6
Projet de fin dtudes 2011/2012
Chapitre 1 : Contexte gnral du projet
7
Projet de fin dtudes 2011/2012
Chapitre 1 : Contexte gnral du projet
La consolidation des donnes dans une seule base de donnes nationale pour
notamment suivre le parcours des lves et tudiants ;
La reprise de l'existant ;
Llaboration des statistiques, des ditions et des consultations multicritres ;
Larchivage des donnes.
3.1. Motivation
Au dpart, Visual Soft ne savait pas toutes les exigences du projet et comment les
spcifier de faon prcise. Nous avons donc senti que nous serons confronts des
changements continuels, et donc il nous a fallu suivre une dmarche itrative. Aussi, il
fallait prsenter des livrables, et donc la dmarche devrait tre incrmentale (c'est--dire
qu la fin de chaque itration, une version excutable est livre). Et enfin, la
mthode choisie devrait tre construite sur UML et surtout conduite par les cas
dutilisation.
Pour toutes ces raisons, nous avons opt pour la mthode RUP (Rational Unified
Process) qui est un processus de conception/dveloppement de logiciel dfini par
Rational Software, unifi, c'est--dire construit sur UML, itratif, incrmental, centr
sur larchitecture et conduit par les cas dutilisation.
8
Projet de fin dtudes 2011/2012
Chapitre 1 : Contexte gnral du projet
Ensuite, nous sommes passs la dfinition des exigences qui a pour but de dfinir
une vision du produit, et de traduire cette vision en cas d'utilisation
Nous avons ensuite implment lapplication, tout en procdant par des tests
unitaires afin dvaluer le niveau de qualit atteint, pour enfin les dployer.
9
Projet de fin dtudes 2011/2012
Chapitre 1 : Contexte gnral du projet
Phase Objectifs
4. Conclusion
Dans ce chapitre, nous avons commenc par une prsentation de lorganisme
daccueil. Nous sommes ensuite passs la description du contexte, les motivations
les objectifs du projet, ainsi que la mission de notre stage. On a ensuite prsent le
processus de dveloppement RUP, que nous avons adopt pour conduire notre travail.
10
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
Ce chapitre traite les deux phases les plus cruciales de tout cycle de
dveloppement, savoir la capture des besoins fonctionnels et lanalyse. La premire
partie de ce chapitre prsente la phase de spcification des besoins fonctionnels et
techniques pour identifier les fonctionnalits auxquels le systme doit rpondre. Les
rsultats de la phase de spcification seront la base de la phase danalyse traite dans
la deuxime partie.
11
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
12
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
rural), statut (public ou priv), description des locaux (salles de classes, salle de bureaux,
internats, rfectoires, cuisines, magasins, bibliothques)).
Elle doit aussi permettre la dfinition des postes des cadres administratifs, des
enseignants et des agents, ainsi que leurs fonctions et occupations, elle doit aussi permettre
de gnrer et dimprimer des rapports, autorisations et des statistiques.
Linterface doit tre conviviale, facile manipuler par des utilisateurs simples (non
informaticiens).
Bilinguisme :
Le systme doit prendre en charge les donnes en arabe et en franais
simultanment, au moins pour les noms dlves et personnel, pour toutes les
nomenclatures de base.
Administration :
Le systme doit permettre aux administrateurs de grer les utilisateurs et groupes,
leurs rles et fonctions par module, et galement de surveiller et grer la liste des
utilisateurs en ligne.
Scurit et intgrit :
La solution doit avoir une interface dauthentification unique.
Tous les modules font partie de la mme solution avec le principe de saisie unique.
Laccs aux fonctions du systme et aux donnes sera permis seulement base
dauthentifications par nom dutilisateur et mot de passe.
Les utilisateurs, les groupes dutilisateurs et les fonctions doivent tre grs par
les administrateurs laide des interfaces appropries.
13
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
2. Analyse du contexte
Lanalyse du contexte a pour objectif lidentification des diffrents acteurs qui
interagiront avec le systme. Ces acteurs seront regroups par la suite sous forme de rles
dont chacun englobe un ensemble dentits. Le regroupement sera effectu en se basant sur
les interactions.
Au niveau central :
La Direction de lEnseignement Traditionnel : Gestionnaires
Au niveau rgional et provincial :
Les dlgations rgionales du MHAI : Gestionnaires
Les dlgations provinciales du MHAI : Gestionnaires
Les tablissements de lEnseignement Traditionnel : Gestionnaires, Enseignants,
tudiants.
Les acteurs que nous avons identifis partir de la description des fonctionnalits
ci-dessus sont les suivants :
Gestionnaires :
Gestionnaire DET : les diffrentes oprations de gestion sur les tablissements au
niveau national (cration, modification, fermeture, )
Gestionnaire DR : les diffrentes oprations de gestion au niveau rgional,
notamment la gestion des transferts des tudiants et des enseignants, et
lattribution de bourses.
Gestionnaire DP : les diffrentes oprations de gestion au niveau rgional, la
gestion des transferts, la gestion des candidatures libres aux examens.
Gestionnaire EET : gestion des inscriptions des tudiants, des absences et retards.
Utilisateurs externes :
14
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
uc Actors
Utilisateur
externe
GESTINNAIRE
Administrateur
Enseignant
lv e/tudiant
Gestionnaire Gestionnaire Gestionnaire
Gestionnaire
DP DR EET
DET
15
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
Utilisateur externe
Gestionnaire
admnistrateur
internaute
Dans cette section nous allons prsenter les cas dutilisation concernant les
modules de :
16
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
17
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
Inscrire lv e
extend
include
Grer abscence et
retard
Gestionnaire
EET include
(from Actors) include
include
Grer parcours
scolaire
include
S'authentifier
include
Transfrer lv e
Gestionnaire include
DP
(from Actors)
include
Grer candidature
libre
Attribuer bourse
Gestionnaire
DR
(from Actors)
18
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
19
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
uc Gstion d'tablissement
Grer tablissement
Crer tablissement
Modifier
tablissement
include
include
S'authentifier
Grer demande et/ou
include
Gestionnaire DET autorisation
(from Actors)
include
Gnrer statistiques et
tableau de bord
Figure
FigureII-5:
10: Cas
Casdutilisation
dutilisationCrer
Grertablissement
tablissement
20
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
21
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
Crer Cycle
extend
Grer Cycle
d'enseignement Modifier cycle
extend
extend
Fermer cycle
Gestionnaire DET
Grer Niv eau
(from Actors) include
include
s'authentifier
22
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
Pr conditions - Sauthentifier
Scnario nominal - choisi un tablissement, et lui attribue un
cycle.
Scenario secondaire - Le gestionnaire modifie une information
errone concernant un cycle
- Consultation des cycles autoriss dans un
tablissement
23
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
Crer enseignant
Crer Agent
Affecter Employ
include
include
include
Grer remplacement
include
Gestionnaire EET
Grer Abscence et
retard des employs
24
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
Nous allons prsenter dans cette section les diagrammes dactivits concernant le
processus dinscription dun tudiant, et celui de la gestion dabsence au sein dun
tablissement denseignement.
25
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
Dbut
[ Demande refuse ]
Fin
[ Demande accepte ]
Affecter tablissement
Affecter classe
Enregistrer et quitter
Fin
d'inscription
26
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
En effet, une fois les besoins du systme formaliss travers les diagrammes de cas
dutilisation, il faut ensuite modliser les interactions entre le systme et les diffrents
acteurs travers la succession squentielle des actions.
Dans cette section nous allons prsenter des exemples de diagrammes de squences
de notre systme. Diagramme de squence dajout dun tablissement :
sd Gstion d'tablissement
Systme
Gestionnaire DET
Demande d'authentification()
Formulaire d'authentification()
Authentification(login, password)
Vrification()
Menu gestionnaire DET()
Formulaire rempli()
Enregistrement()
(from Actors)
27
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
sd Interaction
<<Systme>>
Gestionnaire EET
{Conditions d'inscription
remplies}
{Gestionnaire
authetifi}
alt Crer lv e
Demander formulaire de cration()
[1re inscription]
Formulaire de cration()
Formulaire rempli()
Enregistrement()
{Nouv el lv e
cr}
Accus de cration()
Formulaire vide()
Formulaire rempli()
Validation et enregistrement()
{Nouv el lv e
inscrit}
nouvel lve/tudiant inscrit()
(from Actors)
28
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
Systme
GESTINNAIRE
Formulaire vide()
Formulaire rempli()
Vrification et enregistrement()
{Nouv el emply
aj out}
(from Actors)
29
Projet de fin dtudes 2011/2012
Chapitre 2 : tude fonctionnelle
3. Conclusion
Dans ce chapitre nous avons captur les besoins fonctionnels de notre systme et
dans la phase danalyse nous avons dcrit les rgles mtiers en se basant sur des
diagrammes des cas dutilisation et de squence.
30
Projet de fin dtudes 2011/2012
Chapitre 3 : Conception
Chapitre 3 : Conception
Dans un premier temps nous avons ralis les diagrammes dinteractions qui
sont particulirement utiles au concepteur pour reprsenter graphiquement ses
dcisions dallocation de responsabilits aux classes, ensuite, et laide de ces
diagrammes, nous avons pu laborer des diagrammes de classes partiels pour en arriver
au diagramme de classes final.
31
Projet de fin dtudes 2011/2012
Chapitre 3 : Conception
III.CHAPITRE 3 : CONCEPTION
1. Diagramme de paquetage
La figure suivante (Figure III-1) montre les packages de notre systme:
use
32
Projet de fin dtudes 2011/2012
Chapitre 3 : Conception
Les classes qui permettent les interactions entre le site web et ses utilisateurs sont
qualifies de dialogues . Cest typiquement les crans proposs lutilisateur : les
formulaires de saisie, les rsultats de recherche, etc.
33
Projet de fin dtudes 2011/2012
Chapitre 3 : Conception
Celles qui reprsentent les rgles mtier sont qualifies d entits . Elles
proviennent directement du modle du domaine, mais sont confirmes et compltes cas
dutilisation par cas dutilisation.
sd Diagramme d''interactions
Gestionnaire EET dialogue:<Ajouter control : entity :<Eleve> entity : entity :<Personne> entity :<Adresse>
eleve> <ajouterEleve> <Parent_eleve>
formulaire()
formulaire()
formulaire rempli()
Ajouter eleve()
ajouter personne(eleve)
ajouter_adresse_eleve(adresse)
affecter parent()
crer parent()
accus()
Confirmation()
(from Actors)
Pour ajouter un nouvel lve, on passe par une interface graphique qui reprsente la
couche prsentation. Aprs avoir valid les informations qui seront envoys, nous passons
par le contrleur qui va grer laccs aux ressources de notre systme, pour enfin arriver
aux entits, et plus prcisment la couche model.
Daprs ce diagramme nous avons pu identifier des entits quon va modliser dans le
diagramme de classes partiel ci-dessous.
34
Projet de fin dtudes 2011/2012
Chapitre 3 : Conception
Adresse
- adresse: string
- ville: string
- codePostal: long
- adresseAr: string
- pays: string = Maroc
+ getAdresse() : string
+ Adresse()
Personne
- nom: string
- prenom: string Personne
- email: string
Elev eTuteur
- dateNaissance: Date
- lieuNaissance: string Personne - fonction: string
- telDomicile: string
Elev eParent
- nomAr: string + getNom() : string
- prenomAr: string - fonction: string + Personne()
- genre: boolean
- CIN: string + getNom() : string
- Image: Image + Personne()
- telMobile: string 0..1
+ getNom() : string
+ Personne() 0..2
Personne
Elev e
- CNE: long
- boursier: boolean
- noInternat: string
- abandon: boolean
- id: int
+ getNom() : string
+ Personne()
35
Projet de fin dtudes 2011/2012
Chapitre 3 : Conception
Lentit Adresse est un objet complexe qui contient plusieurs attributs (ville,
rue, numro, pays) qui le dfinissent, de ce fait, ladresse est modliser non pas par un
simple attribut de la classe personne mais dune classe qui est en relation dagrgation
avec celle-ci.
Gestionnaire EET dialogue:<inscrire> control :<inscrire> entity :<eleve> entity :<classe> entity :
<AnneScolaire>
formulaire d'inscription()
formulaire rempli()
verifier_Syntaxe()
erreurSyntaxe()
formulaireCorrig()
verifierSyntaxe()
affecterEleve(eleve)
eleveAffect()
affecterClasse(classe)
classeAffecte()
affecterAnneScolaire(AnneeScolaire)
anneScolaireAffecte()
createConfirmation()
Confirmation()
(from Actors)
Daprs ce diagramme dinteractions nous avons pu identifier les entits qui nous
serons utiles pour concevoir le diagramme de classes partiel suivant.
36
Projet de fin dtudes 2011/2012
Chapitre 3 : Conception
Classe
- designation: string
- capaciteAcceuil: int
- nombreEleves: int 1
1..*
0..* Personne
Personne
Elev e
- CNE: long
- boursier: boolean
AnneeScolaire - noInternat: string
- abandon: boolean
- dateDebut: date - id: int
- dateFin: date Inscription
- designation: string 0..*
0..* + getNom() : string
- cloturee: boolean + Personne()
37
Projet de fin dtudes 2011/2012
Chapitre 3 : Conception
Personne
Personne
Elev e Note Matiere AnneeScolaire
- CNE: long 1 0..* - note: float - designation: string
- dateDebut: date
- boursier: boolean - appreciation: string 1..* 1 - coefficient: float
- dateFin: date
- noInternat: string - designation: string
- abandon: boolean
1..* - cloturee: boolean
- id: int
+ getNom() : string
+ Personne()
Parcours_scolaire
Bulletin Periode
38
Projet de fin dtudes 2011/2012
Chapitre 3 : Conception
Adresse
Personne
- adresse: string Personne AbscenceElev e
- ville: string Elev eParent
Elev eTuteur - dateDebut: Date
- codePostal: long - fonction: string
- fonction: string - dateFin: Date
- adresseAr: string
- justifiee: boolean
- pays: string = Maroc + getNom() : string - remarque: String
+ Personne() + getNom() : string
+ getAdresse() : string + Personne()
+ Adresse()
0..2 0..1
0..1
MotifAbscence
Personne - motif: string
- image: image
- nom: string
- prenom: string
Personne
- email: string
- dateNaissance: Date Elev e SeanceCours
- lieuNaissance: string
- CNE: long - dateDebut: date
- telDomicile: string 0..* 0..* - 1..*
- boursier: boolean duree: date
- nomAr: string
- noInternat: string - typeSeance: string
- prenomAr: string
- abandon: boolean
- genre: boolean
- id: int
- CIN: string
- Image: Image
+ getNom() : string
- telMobile: string
+ Personne()
Note
+ getNom() : string 1 0..*
+ Personne() - note: float
1..* 1..* -
0..* appreciation: string
1..*
1
Matiere
Enseignant
enseigne - designation: string
- echelle: string 0..* 0..* - coefficient: float 1
- echelon: string
+ Personne()
0..*
AnneeScolaire
Etablissement Classe
Inscription
1 - dateDebut: date
- nom: string - designation: string
- noAutorisation: string capaciteAcceuil: int 0..* 0..* - dateFin: date
1..* - - designation: string
- statut: boolean - nombreEleves: int
- cloturee: boolean
- capacite: int
Parcours_scolaire
- semestre: string
- note: float
- classement: int
1..*
Bulletin Periode
39
Projet de fin dtudes 2011/2012
Chapitre 3 : Conception
Etablissement Classe
Cycle Niv eau
- nom: string - designation: string
- noAutorisation: string - designation: String - designation: string
1..* 1..* 1..* 1..* - capaciteAcceuil: int
- statut: boolean - nombreEleves: int
- capacite: int
40
Projet de fin dtudes 2011/2012
Chapitre 3 : Conception
Etablissement
- nom: string
- noAutorisation: string
- statut: boolean
- capacite: int
Local
1
Cuisine
1..*
Local Local
Local - designation: string Internat
Magasin - responsable: Employe [0..*] - designation: string
- disponibilite: boolean - capaciteAccueil: int
- genre: boolean
- exploitable: boolean
Local
Bibliotheque
1..*
Salle
Salle SalleDeCours
SalleDeBureau
- capaciteAccueil: int
- proprietaire: Personne[0..*] - nbrePaillasses: int
- note: string - disponibilite: boolean
- note: string
41
Projet de fin dtudes 2011/2012
Chapitre 3 : Conception
Diplome
- designation: string
- dateObtention: date
- lieuObtention: string
- mention: string
- note: string
0..*
Personne
Personne
Employe
- salaire: float
- dateEmbauche: date
- situationFamiliale: string
- decede: boolean
- nbreEnfant: int
+ getNom() : string
+ Personne()
Employe
Cadre_administratif Employe
Employe
- fonction: string Agent
Enseignant
- grade: string
- fonction: string
- echelle: string
- echelon: string + getNom() : string
+ getNom() : string
+ Personne()
+ Personne()
+ getNom() : string
+ Personne()
1..* 1 1
Etablissement
- nom: string
- noAutorisation: string
- statut: boolean
- capacite: int
42
Projet de fin dtudes 2011/2012
Chapitre 3 : Conception
Diplome
Adresse
- designation: string
- adresse: string - dateObtention: date
- ville: string - lieuObtention: string
- codePostal: long - mention: string
- adresseAr: string - note: string
- pays: string = Maroc
0..*
+ getAdresse() : string
+ Adresse()
Personne
Employe
- salaire: float
- dateEmbauche: date
Personne
- situationFamiliale: string
- nom: string - decede: boolean
- prenom: string - nbreEnfant: int
- email: string
- dateNaissance: Date + getNom() : string
- lieuNaissance: string + Personne()
- telDomicile: string Employe
- nomAr: string Enseignant Employe
- prenomAr: string Employe
Agent
- genre: boolean - echelle: string Cadre_administratif
- CIN: string - echelon: string - fonction: string
- Image: Image - fonction: string
- telMobile: string + getNom() : string - grade: string + getNom() : string
+ Personne() + Personne()
+ getNom() : string + getNom() : string
+ Personne() + Personne()
Local
Etablissement
Cuisine
- nom: string
1..* - noAutorisation: string 1
- statut: boolean
- capacite: int
1..* 1..* Cycle
1
Local - designation: String
- designation: string
- responsable: Employe [0..*] 1..*
- disponibilite: boolean
Local
Magasin
1..*
Local
Internat Niv eau
- designation: string - designation: string
- capaciteAccueil: int
Local - genre: boolean
Salle - exploitable: boolean
Salle Salle
SalleDeBureau SalleDeCours
43
Projet de fin dtudes 2011/2012
Chapitre 3 : Conception
4. Conclusion
Nous avons prsent dans ce chapitre une vue conceptuelle de la solution mettre
en place. Ainsi nous avons prsent les diagrammes dinteractions dUML pour mieux
comprendre les fonctionnalits offertes et qui nous taient utiles pour laborer le
diagramme de classes global.
44
Projet de fin dtudes 2011/2012
Chapitre 4 : Mise en uvre
45
Projet de fin dtudes 2011/2012
Chapitre 4 : Mise en uvre
46
Projet de fin dtudes 2011/2012
Chapitre 4 : Mise en uvre
Cette architecture propose un cadre pour crer des composants distribus (cest--
dire dploys sur des serveurs distants) crit en langage de programmation Java hbergs
au sein d'un serveur applicatif (conteneur EJB) permettant de reprsenter des donnes (EJB
dit entit), de proposer des services avec ou sans conservation d'tat entre les appels (EJB
dit session), ou encore d'accomplir des tches de manire asynchrone (EJB dit message).
Tous les EJB peuvent voluer dans un contexte transactionnel.
La gestion de persistance,
Un langage de requtage volu : Java Persistance Query Language (JPQL),
Un mcanisme de mapping objet/relationnel ORM partir de mtadonnes
(fichiers XML ou annotations),
Une API typage fort pour le requtage.
47
Projet de fin dtudes 2011/2012
Chapitre 4 : Mise en uvre
4. Architecture technique
Larchitecture technique prsente les diffrents outils utiliss dans le
dveloppement de chaque partie du projet. La figure suivante prsente larchitecture
technique de notre application :
La couche prsentation est constitue dun ensemble de composants JSF. Les JSF
Managed Beans sont utiliss pour faire le lien entre la couche prsentation et la couche
mtier. Ils permettent ainsi de rcuprer les donnes saisies par les utilisateurs, les valider
et les transmettre la couche mtier.
48
Projet de fin dtudes 2011/2012
Chapitre 4 : Mise en uvre
5. Dmarche de dveloppement
Afin de mieux organiser la phase de mise en uvre, nous avons veill procder
par tapes. Ainsi, nous avons procd de la manire suivante pendant la phase de
dveloppement:
Gnralement, une classe entit correspond une table, elle porte le mme nom
(aux majuscules/minuscules prs), et ses attributs correspondent aux colonnes de la table.
Les instances de cette classe entit seront des objets correspondant des lignes dans cette
table.
Cration des Stateless Session Bean pour la gestion des classes entits :
La gestion des diffrentes classes entits sera centralise dans les Stateless Session
Bean. On va donc crer au niveau de chaque Stateless Session Bean une "faade" pour les
oprations lmentaires sur les entits (cration, suppression, recherche, modification),
ainsi que les diffrentes mthodes mtiers agissant sur les classes entits.
Dans cette tape nous avons dvelopp les interfaces graphiques suivant le modle
quon a tabli dans la partie conception. Cette tape concerne linteraction entre le systme
et les requtes de lutilisateur travers les interfaces Homme-Machine que nous avons
dvelopp en utilisant les pages JSF (Facelet), chacune de ces interfaces est associe
une classe Managed Bean.
Une page JSF contient des balises qui dcrivent les composants qui reprsenteront
la page sur le serveur. Elle Contient aussi des parties en EL, et utilise souvent une (ou
plusieurs) bibliothque de composants, mais ne contient pas de traitements (pas de code
49
Projet de fin dtudes 2011/2012
Chapitre 4 : Mise en uvre
Java ou autre code comme dans les pages JSP pour crer les pages affiches
lutilisateur).
Un Managed Bean (dit aussi Backing Bean) assure les diffrents traitements lis
directement linterface utilisateur, et fait appels des EJB ou des classes Java ordinaires
pour effectuer les traitements qui ne sont pas lis directement linterface utilisateur.
Les Managed Beans associs aux pages JSF, font donc la liaison entre les
composants JSF de linterface, les valeurs affiches ou saisies dans les pages JSF et le
code Java qui effectue les traitements mtier.
6. Interfaces de lapplication
Durant cette section, nous prsentons un scnario dutilisation de lapplication par
quelques interfaces.
6.1. Authentification
Pour pouvoir accder au menu principal de lapplication, il est impratif de
sauthentifier, et cela en renseignant un identifiant et un mot de passe.
50
Projet de fin dtudes 2011/2012
Chapitre 4 : Mise en uvre
On voit bien dans ce menu les diffrents modules de gestion que nous avons
dvelopps. Lutilisateur pour accder un module na qu cliquer sur licne
correspondante.
51
Projet de fin dtudes 2011/2012
Chapitre 4 : Mise en uvre
52
Projet de fin dtudes 2011/2012
Chapitre 4 : Mise en uvre
53
Projet de fin dtudes 2011/2012
Chapitre 4 : Mise en uvre
7. Conclusion
Ce chapitre avait pour but de dcrire lenvironnement technique et les diffrentes
tapes de la mise en uvre de lapplication.
54
Projet de fin dtudes 2011/2012
Conclusion gnrale
Conclusion gnrale
Notre projet de fin dtudes que nous avons effectu au sein de VisualSoft,
consistait en ltude, lanalyse, la conception et la ralisation des modules de gestion des
tablissements, des lves, et des enseignants. Ces modules font partie du projet lanc par
le ministre des Habous et des affaires islamiques pour la mise en uvre dune solution
intgre de gestion de la scolarit dans les niveaux prscolaire, primaire, collgial,
secondaire et terminal de lenseignement traditionnel marocain.
Ce projet sest droul selon quatre phases. Dans la premire phase, nous tions
amens faire une tude fonctionnelle dont le but est de spcifier et danalyser les besoins.
Dans la deuxime phase nous nous sommes penchs sur la conception de notre systme
afin de bien structurer la couche mtier de lapplication. La troisime phase a t
consacre ltude technique o lon a dtaill larchitecture technique et les outils et les
Frameworks utiliss dans le dveloppement. Finalement, la quatrime phase a t
consacre la ralisation et la mise en uvre des diffrents modules de notre systme.
Lapproche de conduite de projet RUP quon a mis en uvre prend en compte les
changements continuels qui peuvent survenir lors de la ralisation, et cela pour que le
rsultat obtenu soit en accord avec les besoins rels des utilisateurs. Cette approche
combine avec lutilisation des Frameworks de dveloppement, permet de rduire
considrablement le cot ralisation et de la maintenance applicative, et aussi davoir une
architecture de lapplication qui se veut flexible et extensible, ce qui facilitera son
intgration avec les autres modules futurs dvelopper.
Enfin, ce stage fut une exprience trs enrichissante pour nous sur les deux plans
personnels et professionnels. En effet, il a t loccasion de dcouvrir le dynamisme et
lenthousiasme qui caractrisent lquipe de VisualSoft. Les runions rgulires effectues
avec les encadrants VisualSoft nous ont permis de mettre en uvre les concepts de
gestion de projets acquis lEMI.
55
Projet de fin dtudes 2011/2012
Bibliographie, Webographie
Bibliographie
Jrme LAFOSSE, Dveloppement n-tiers avec Java EE , dition ENI, collection
Epsilon (7 mars 2011).
Webographie
[MVC] Model View Controller, disponible sur :
https://sites.google.com/site/floriangrisoni/informatique/design-pattern-
mvc
[JEE] Java Enterprise Edition, disponible sur :
http://www.jmdoudoux.fr/java/dej/chap-j2ee-javaee.htm#j2ee-javaee-1
[NetBeans] Getting Started with Java EE 6 Applications, disponible sur:
http://netbeans.org/kb/docs/javaee/javaee-gettingstarted.html
[JSF 2] JSF 2 Templating with Facelets example, disponible sur:
http://www.mkyong.com/jsf2/jsf-2-templating-with-facelets-example/
[EJB 3] EJB3 Introduction, disponible sur :
http://www.datadisk.co.uk/html_docs/ejb/ejb3_introduction.htm
Tutoriel : TP1 2011 EJB 3.1/JPA/JSF2, MIAGE Nice, diponible sur :
EJB3.1/JPA/J http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/Cours_composants
SF2 _distribu%C3%A9s_pour_l'entreprise_%2f%2f_EJB_2009/TP1_2011_EJ
B_3.1%2f%2fJPA%2f%2fJSF2
[EclipseLink] Tutorial : the basic steps of developing, packaging, and deploying a Web
application using the EclipseLink, disponible sur:
http://wiki.eclipse.org/EclipseLink/Examples/JPA/JSFTutorial
56
Projet de fin dtudes 2011/2012
Annexe A : outils utiliss
57
Projet de fin dtudes 2011/2012
Annexe A : outils utiliss
58
Projet de fin dtudes 2011/2012
Annexe B : Le cycle de vie phases multiples dune page JSF
Aprs une prsentation rapide de la notion de cycle de vie phases multiples dune
page JSF, cette annexe dcrit chacune des phases en question. Elle apporte des informations
purement thoriques, expliquant comment une application JSF assure la prise en charge de la
gestion des vnements ainsi que la conversion et la validation des donnes.
Principe :
Le cycle de vie dune page JSF est partitionn en plusieurs phases, dans le but de
pouvoir rpondre efficacement aux attentes lies cette technologie: capture dvnements au
niveau des composants graphiques, validation ou conversion de composants, liaison entre
composants dinterface et objets sexcutant ct serveur. Deux types de requtes doivent tre
distingus :
la requte initiale au cours de laquelle linternaute accde pour la premire fois la page
JSF,
la requte dite postback correspondant le plus souvent la validation dun formulaire pr
cdemment charg dans le navigateur du client.
59
Projet de fin dtudes 2011/2012
Annexe B : Le cycle de vie phases multiples dune page JSF
Ds quun internaute tente datteindre une page JSF, la phase de restitution de vue est
excute. Son but est dassocier une vue la page visite. Lapplication web cre une vue
vierge dans le cas dune requte initiale; elle restitue la vue prcdemment associe la page
dans le cas dune requte postback. Tous les gestionnaires dvnements ainsi que les
validateurs requis par les composants graphiques de la page sont lis la vue. Un arbre de
composants est constitu. La vue est ensuite sauvegarde dans lobjet prdfini FacesContext.
lissue de la phase prcdente, une vue est associe la page JSF visite. Cette vue
dispose obligatoirement dun arbre de composants. Ces composants sont alors parcourus
successivement pour invoquer leur mthode decode(). Celle-ci est charge danalyser la
requte pour attribuer au composant la valeur qui doit lui tre affecte.
la fin de cette phase, tous les composants associs la vue disposent dune nouvelle
valeur. Les messages
etlesvnementsventuelssontenattentedetraitementparlobjetFacesContext.
Dans cette tape, lapplication JSF effectue toutes les validations attendues pour
chacun des composants de larbre associ la vue.
Pour cela, les attributs de composant dfinissant les rgles de validation sont
examines, puis compars la valeur du composant. Lorsque cette valeur est effectivement
incorrecte, un message derreur est ajout lobjet FacesContext et le cycle de vie se poursuit
directement par la phase de traduction de la rponse: la page web est alors restitue
linternaute, accompagne du message derreur issu du processus de validation.
60
Projet de fin dtudes 2011/2012
Annexe B : Le cycle de vie phases multiples dune page JSF
61
Projet de fin dtudes 2011/2012
Annexe C : Les maquettes
La maquette est dveloppe rapidement afin de provoquer des retours de la part des
utilisateurs. Elle permet ainsi damliorer la relation dveloppeur-client. La plupart du temps,
la maquette est considre comme jetable, cest--dire que la technologie informatique
employe pour la raliser nest pas forcment assez robuste et volutive pour tre intgre
telle quelle. Pensez lanalogie de la maquette davion qui est trs utile en soufflerie, mais
qui ne peut pas voler !
Dans un premier temps, les besoins ont t modliss au moyen des cas dutilisation
UML. Ils seront maintenant reprsents de faon plus concrte par une maquette dIHM
(Interface Homme-Machine) destine faire ragir les futurs utilisateurs. Les figures
(Maquette de la page "Ajouter un lve") (Maquette de la page "rechercher lve") montrent
les maquettes que nous avons ralis.
On a essay de respecter les rgles et les standards dIHM des pages web savoir :
une entte qui se compose dun logo cliquable renvoyant au menu principal, un menu
horizontal, un menu vertical, on a aussi reprsent des informations sur lutilisateur avec la
possibilit de se dconnect partir de nimporte quelle page de notre application, un fil
dAriane (Breadcrumb) [une aide la navigation sous forme de signalisation de la
localisation de linternaute dans une page dun site web. Leur but est de donner aux
utilisateurs un moyen de garder une trace de leur emplacement l'intrieur dun site web], et
un pied de page.
62
Projet de fin dtudes 2011/2012
Annexe C : Les maquettes
63
Projet de fin dtudes 2011/2012
class Diagramme de classes V2
Adresse
MotifAbscence
- adresse: string
Elev eTuteur - motif: string
- ville: string
- codePostal: long - image: image
1 - fonction: string
- adresseAr: string
- pays: string = Maroc 0..*
1
+ getAdresse() : string
+ Adresse() Elev eParent
AbscenceElev e
1 - fonction: string
Possde - dateDebut: Date
- dateFin: Date
- justifiee: boolean
0..2 - remarque: String
Personne
1..*
- nom: string
- prenom: string
Elev e 1..* SeanceCours
- email: string
- dateNaissance: Date - CNE: long - dateDebut: date
- lieuNaissance: string - boursier: boolean 0..* 0..* - duree: date
- telDomicile: string - noInternat: string - typeSeance: string
Annexe D : Diagramme de classes global
Parcours_scolaire
Enseignant 1 1
- echelle: string
- echelon: string 0..* Classe
0..*
- designation: string 0..*
enseigne
- capaciteAcceuil: int
0..* - nombreEleves: int Bulletin
- appreciation: string
- /noteFinale: float
1..* 0..* 0..*
1
0..1 AnneeScolaire
0..* 0..*
1
- dateDebut: date
Matiere - dateFin: date
- designation: string
- designation: string 1
1 - cloturee: boolean
- coefficient: float
Niv eau 1
Cycle
- designation: string
- designation: String Periode
1 1..* 0..3
- designation: string
Etablissement 0..* 1..5 - dateDebut: date
- nom: string - dateFin: date
- noAutorisation: string - cloturee: boolean
- statut: boolean Local Magasin
Employe - capacite: int
0..* 0..* 1 0..*
- designation: string
- salaire: float
- responsable: Employe [0..*]
- dateEmbauche: date
- disponibilite: boolean
- situationFamiliale: string
- decede: boolean Cuisine
- nbreEnfant: int Internat Chambre
- designation: string - designation: string
- capaciteAccueil: int 1 1..*
- genre: boolean
- exploitable: boolean
Salle SalleDeCours Diplome
Cadre_administratif Agent
- designation: string SalleDeBureau
Refectoire - capaciteAccueil: int - designation: string
- fonction: string - fonction: string
Bibliotheque - proprietaire: Personne[0..*] - nbrePaillasses: int - dateObtention: date
- grade: string
- note: string - disponibilite: boolean - lieuObtention: string
- note: string - mention: string
- note: string
0..*