Vous êtes sur la page 1sur 67

UNIVERSIT MOHAMMED V DE RABAT

Facult des Sciences

Dpartement dInformatique
Filire Licence fondamentale
en Sciences Mathmatiques et Informatique

PROJET DE FIN DTUDES

intitul :Application de gestion des notes des valuations et des dlibrations


des rsultats des examens.
Saisie des notes, dlibrations modulaire, semestrielle, annuelle et gestion de lhistorique

Prsent par : MOHAMED Boudouar - MEHDI Sakhi

soutenu le lundi 27 Juin devant le Jury

M. Said SLAOUI Professeur la Facult des Sciences - Rabat Prsident


M. Youns EL AMRANI Professeur la Facult des Sciences - Rabat Examinateur
M. Oussama REDA Professeur la Facult des Sciences - Rabat Encadrant

Anne universitaire 2015-2016


Rsum : Lobjectif principal de ce projet tutor est de raliser une application
pour la saisie des notes des tudiants et les dlibrations des rsultats des examens. En
minimisant les dplacements et les mouvements de la main. Lapplication offre un espace de
saisie des notes intuitif, simple et optimal rendant ainsi cette opration plus confortable ses
utilisateurs. En outre, lapplication permet le traitement des notes dtudiants par modules,
par semestre et par anne. Elle permet aussi les fonctionnalits ddition et de reporting
des rsultats de traitement dans leur forme basique. Un ensemble de design patterns ont
t aussi utiliss pour contourner les diffrents problmes de conception rencontrs lors de
la phase de dveloppement du systme. Linterface graphique utilisateur de Lapplication a
t ralise avec la bibliothque javaFX du langage JAVA et le gestionnaire de projets Java
Maven a t utilis pour le dploiement de lapplication..

Mots cls : IHM,JAVAFX, Design Patterns, Maven

student marks management application


Abstract : The main objective of this project consists of releasing a graphical user
interface that facilitate the entry of marks, and managing the results in an easy process.
Taking into account that this application has to be easy to use. The application has been
created using javaFX which is a Java library. It has been decided to use some design patterns
that respond to various design problems, and finally Maven as a Java project manager has
been chosen guaranteeing the deploy phase of the project.

Keywords : GUI,JAVAFX, Design Patterns, Maven


Remerciements
Nous tenons remercier profondment notre encadrant Pr. REDA Oussama pour son
encadrement judicieux ainsi que pour sa patience et son dvouement envers ses tudiants.
Nous le remercions davoir t gnreux dans le partage de ses connaissances et de ses
prcieux conseils avec toute son expertise et exprience.

Nous tenons remercier normment Pr. Said SLAOUI davoir accept de prsider le
jury de soutenance. Nous remercions galement Pr. EL AMRANI Youns davoir accept
dtre examinateur de notre rapport.

Nous tenons remercier lensemble des enseignants pour la formation de qualit quon
a eu durant les trois ans de formation la facult des sciences de Rabat et pour les efforts
qui nous ont fourni afin que ce projet de fin dtudes soit fructueux et profitable.

Merci aussi toutes nos familles, et tous les camarades, ainsi que tous ceux qui ont de
prs ou de loin contribu la ralisation de ce travail.
Table des matires

1 Introduction gnrale 3

2 Les Rgles mtier 5


2.1 Organisation de lanne universitaire . . . . . . . . . . . . . . . . . . . . . . 5
2.2 La nature des modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 La nature de lpreuve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4 Pondration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.5 Validation et acquisition du module par compensation . . . . . . . . . . . . . 6
2.6 Validation du semestre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 La modlisation 9
3.1 Analyse des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 tude Fonctionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.1 Identification des acteurs . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.2 Diagramme des cas dutilisations . . . . . . . . . . . . . . . . . . . . 10
3.2.3 Diagrammes dactivits . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.4 Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.5 Importation des Fichiers Excel . . . . . . . . . . . . . . . . . . . . . . 15
3.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4 Ralisation 21
4.1 Technologies et Frameworks utiliss . . . . . . . . . . . . . . . . . . . . . . . 21
4.1.1 JavaFX 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.1.2 Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.1.3 Lutilisation des threads . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.1.4 Apache POI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1.5 Apache Maven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1.6 Implmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5 Conclusion et perspectives 61

1
2
Chapitre 1

Introduction gnrale

Lamlioration de la gestion des notes des tudiants dune faon automatise est une n-
cessit pour faciliter le travail des utilisateurs notamment les enseignants et ladministration
qui dploient actuellement beaucoup defforts et de temps.

En effet, ceci nous a incit chercher des solutions permettant dune part la gestion des
donnes dune faon simple et fiable et de gain du temps en remplaant le traitement de ces
donnes par les outils bureautiques usuels (Microsoft Excel,LibreOffice Calc. . . ).
Dautre part offrir lutilisateur des interfaces graphiques pour la saisie des notes
travers des outils simples(curseur,liste, texte) pour avantages de minimiser les dplacements
entre le clavier et la souris, limination des risques derreurs typographiques, limination
des bugs rsultants des entres non valides et finalement prendre en compte le confort de
traitement pour lutilisateur.

Le rapport prsent a pour objectif de prsenter la ralisation de lapplication qui met en


place un gestionnaire volu des notes qui offre des interfaces graphiques faciles tous les
utilisateurs.

Dans un premier chapitre, nous avons commenc par une tude sur les rgles mtier ta-
blies par notre facult, ensuite nous procdons la phase danalyse et de conception dans le
deuxime chapitre en identifiant les diffrents besoins ce qui nous mne vers ltude fonction-
nelle et technique qui a pour objectif de dfinir les acteurs et les fonctionnalits principales.
Enfin le troisime chapitre nous introduisons les diffrentes outils de programmation utiliss
ainsi quune vue globale sur la ralisation de lapplication.

3
4
Chapitre 2

Les Rgles mtier

Introduction
Dans ce chapitre, nous allons commencer par une prsentation globale du rglement
dvaluation tablie par la facult des sciences de Rabat(Voir annexe extrait CNPN), en
prsentant les diffrentes rgles des valuations et lorganisation de lanne universitaire .

2.1 Organisation de lanne universitaire


Lanne universitaire est compose de 2 semestres correspondant deux sessions :
Une session dautomne de septembre mi-fvrier.
Une session de printemps de mi-fvrier fin juillet.
Le cycle de Licence est organis en 6 semestres. Chacun de ces semestres comporte 6
modules, lexception les deux premiers semestres qui comportent 7.

2.2 La nature des modules


Le module est lunit fondamentale du systme de formation. Il peut tre dispens sous
forme dune ou de plusieurs formes suivantes :
Cours thoriques.
Travaux dirigs(TD).
Projet ou stage
Activits pratiques(TP)

2.3 La nature de lpreuve


Lvaluation des connaissances est ainsi propre chaque module. Jusqu prsent elle
peut tre dispens sous forme dune des formes suivantes
Contrle Final et Contrle de TP.

5
Controle continu et Contrle Final.
Contrle Final.
Contrle Continu , TP et Contrle Final(CF).

2.4 Pondration
La note dun module est une moyenne pondre des diffrentes valuations du module,
do la pondration tient compte de la nature de lvaluation(contrle continu, TP et contrle
final).
Exemples :
Note des modules avec TP 0.25 et contrle final 0.75.
Note des modules sans TP : Contrle continu 0.5 et contrle final 0.5.
Note des modules avec TP et CC et CF : 0.25 pour les CC ,0.25 TP et 0.5 pour les
CF.

2.5 Validation et acquisition du module par compensa-


tion
Un module est acquis soit par validation soit par compensation.
1. Un module est valid si sa note est suprieure ou gale 10/20.
2. Un module est acquis par compensation si ltudiant valide le semestre dont fait partie
ce module.

2.6 Validation du semestre


Un semestre de cycle Licence est valid si la moyenne des notes obtenues dans les
modules composant le semestre est au moins gale 10/20 et si aucune note de lun
de ces modules nest infrieure 5/20.
Les tudiants nayant pas valid un semestre, peuvent le valider par compensation
annuelle entre les semestres de la mme anne si les deux conditions suivantes sont
satisfaites :
1. La moyenne des notes obtenues dans les deux semestres concerns est suprieure ou
gale 10/20 ;
2. Aucune note de lun des modules des semestres concerns nest infrieure 5 sur 20.

6
Les rgles mtier :

Figure 2.1 rgles mtier de traitement par module

Figure 2.2 rgles mtier de traitement par semestre

7
Figure 2.3 rgles mtier de traitement par anne

Conclusion
Ce chapitre tait consacr ltude des diffrentes rgles mtier. Dans le prochaine cha-
pitre nous allons entamer lidentification des besoins ensuite la modlisation et ltude tech-
nique et fonctionnelle de notre application.

8
Chapitre 3

La modlisation

Introduction
Ce chapitre traite tout ce qui est observation et analyse, qui sont deux phases ncessaires
pour tracer le fonctionnement gnral de lapplication, extraire les besoins de lutilisateur et
faire une tude fonctionnelle gnrale.

3.1 Analyse des besoins


Actuellement, les enseignants et ladministration utilisent des outils bureautique dans
tous ce qui concerne la gestion des notes des tudiants. Ces logiciels prsentent de nombreux
inconvnients, a titre dexemple les dplacements incommodes entre le clavier et la souris et
les erreurs typographiques.
Tous cela nous a amen dvelopper un gestionnaire volu qui remplace dune faon
automatise le travail des utilisateurs qui dploient beaucoup defforts et perdent du temps.

3.2 tude Fonctionnelle


3.2.1 Identification des acteurs
Lapplication est destin pour :
Les enseignants.
Les chef de filires.
Ladministration.

9
3.2.2 Diagramme des cas dutilisations
Avant daborder les cas dutilisations de notre application, en gnrale lapplication per-
met le traitement des notes par modules ce qui facilite le travail des enseignants dune part
, ainsi que par semestre et par anne. Elle permet aussi les fonctionnalits dition et de
reporting des rsultats de traitement dans leur forme basique afin doffrir a ladministration
et les chefs de filires un outil qui remplace le traitement normale.
Aprs avoir captur tous les besoins fonctionnels attendus de notre application, nous
procdons au diagramme des cas dutilisations qui permet de dcrire les interactions entre
les utilisateurs (cits en haut) et les diffrentes fonctionnalits.

Figure 3.1 Diagramme des cas dutilisation de lapplication

Lutilisateur :
Commence le traitement par choisir le mode de la dlibration cest--dire le mode
de dlibration annuelle, semestrielle, ou bien par module.

10
Saisit les notes dun module afin de calculer les moyennes des tudiants aprs lim-
portation de fichier Excel qui contient la liste des tudiants inscrit dans le module.
Peut effectuez des statistiques sur les rsultats obtenues.
Peut effectuer la dlibration entre les units dun semestre aprs limportation des
fichiers des modules avec leurs historiques.
Peut effectuer la dlibration entre les units des deux semestres cest dire une dli-
bration annuelle aprs limportation des fichiers des modules avec leurs historiques.
Exporte les rsultats compltes de chaque dlibration sous un fichier Excel.
Peut effectuer des filtres sur les rsultats des tudiants en fonction de code, nom, pr-
nom, et la moyenne gnrale(infrieur,suprieur ou gale)ou la mention de validation
(valid, non valid, par compensation).
Exporte les rsultats des filtres sous format Excel.

3.2.3 Diagrammes dactivits


Afin de prsenter les diffrents cas dutilisations, nous proposons dutiliser les diagrammes
dactivits pour avoir une vision sur lensemble des actions.
La premire tche consiste choisir le mode suivre. Cest une tape trs importante
pour dterminer le traitement suivre.

11
Traitement des modules : Aprs le choix du mode convenable et exact, linterface
graphique propose lutilisateur dimporter le fichier Excel des tudiants, afin de saisir les
notes travers linterface graphique en utilisant les diffrents modes de saisie qui optimise les
mouvements de la main conduisant une opration de saisie confortable pour les utilisateurs.
par curseur(page 37, figure 4.12 ).
par liste( page 38, figure 4.13).
par texte( page 39,figure 4.14).

Figure 3.2 Diagramme dactivit de traitement par Module

12
Traitement des semestres :
Comme nous avons annonc dans le rglement, la dlibration semestrielle consiste
calculer la moyenne gnrale entre les units.
Aprs le choix du mode dlibration semestrielle, la premire tape consiste importer
les fichiers des modules aprs le rattrapage.

Figure 3.3 Diagramme dactivit de traitement par semestre

13
Traitement par Anne :
La dlibration annuelle consiste a calculer la moyenne entre les units des deux semestres.
La premire tape consiste importer les notes en se servant des fichiers Excel des modules
des deux semestres.

Figure 3.4 Diagramme dactivit de traitement par anne

3.2.4 Diagramme de classes

Pour implmenter les rgles mtier prsentes dans le chapitre prcdent,nous proposons
le diagramme de classes suivant :

14
Figure 3.5 Diagramme de classes

3.2.5 Importation des Fichiers Excel

La tache de limportation des fichiers est trs importante pour le droulement normale de
lapplication , pour vit tous cas derreurs nous proposons dutiliser les formats suivantes.

3.2.5.1 Importation des Fichiers des Modules

Examens de session Normale :


Le traitement des notes des modules au session normale, est bas sur un fichier contient
la liste des tudiants inscrits dans le module.

format propos :

15
Figure 3.6 Format de Fichier des Modules : session Normale

Examens de session de Rattrapage :


Le traitement au session du rattrapage est diffrent de celui de la session normale, car il
est ncessaire dimporter le fichier de la session normale qui contient la liste des tudiants
inscrits dans le module avec leur notes, afin de faire le calcule qui concerne les rattrapages
annonc dans le rglement.

Les Formats Proposs :

Mode Contrle Final et Contrle de TP .

Figure 3.7 Format de Fichier CF et TP :pour la session Rattrapage

Mode Contrle continu et Contrle Final.

16
Figure 3.8 Format de Fichier CC et CF :pour la session Rattrapage

Mode Contrle Final.

Figure 3.9 Format de Fichier CF seul :pour la session Rattrapage

Mode Contrle Continu ,TP et Contrle Final.

17
Figure 3.10 Format de Fichier CC, TP et CF :pour la session Rattrapage

3.2.5.2 Importation des fichiers de la dlibration par semestre

Le traitement de la dlibration semestrielle ncessite limportation des fichiers des mo-


dules aprs le rattrapage, ces derniers contenant les notes avant et aprs la session de rat-
trapage, mais le problme qui se pose est comment avoir la note dun tudiant inscrit dj
dans un module dans les annes prcdentes et dans le reste des modules cette anne ?
Solution : lapplication propose lutilisateur dimporter les fichiers de chaque module
de semestre courant et tous lhistorique des modules au annes prcdentes, ce qui facilite
le travaille manuelle de ladministration auparavant grce a une fonction gnrique qui offre
la possibilit dimporter un nombre infini des fichiers excel, afin de remplacer le traitement
travers une base des donnes.
Aprs la session de rattrapage lapplication exporte les rsultats sous un format prcis
selon le mode du module.

Les Formats Proposs :

Mode Contrle Final et Contrle de TP .

18
Figure 3.11 Format de Fichier CF et TP :aprs la Session du Rattrapage

Mode Contrle Final.

Figure 3.12 Format de Fichier CF seul :aprs la Session du Rattrapage

Mode Contrle Continu ,TP et Contrle Final.

19
Figure 3.13 Format de Fichier CC, TP et CF :aprs la session du Rattrapage

3.2.5.3 Importation des fichiers de la dlibration annuelle


Le traitement de la dlibration annuelle ncessite limportation de tous les fichiers des
modules des deux semestres(12 Modules ou 14 Modules), ces derniers contenant les moyennes
gnrales obtenus aprs la session de rattrapage.
On adopter la mme solution de la dlibration semestrielle pour rsoudre le problme
qui nous face -propos des tudiants dj inscrit dans certains modules au annes prc-
dentes, ce qui ncessite davoir un historique des modules dans le but de faire la dlibration
avec toutes informations requises.

3.3 Conclusion
Dans ce chapitre nous avons essay dextraire tous les besoins de lutilisateur, en suite nous
avons prsent une tude techniques et fonctionnels du projet. Dans le prochaine chapitre
nous allons introduire les outils utiliss et les interfaces graphiques des applications conues.

20
Chapitre 4

Ralisation

Introduction
Ce chapitre a pour objectif de dfinir la dernire phase du processus du dveloppement
de lapplication. Il comporte les outils utiliss, la ralisation et le test de lapplication. Nous
prsentons alors larchitecture de notre solution en dtaillant les diffrentes parties et leurs
fonctionnalits.

4.1 Technologies et Frameworks utiliss

4.1.1 JavaFX 8
4.1.1.1 Dfinition

JavaFX est une bibliothque graphique intgre dans le JRE et le JDK de Java, elle
permet de raliser des interfaces graphiques volues et modernes grce de nombreuses
fonctionnalits, telles que les animations, les effets, la 3D, laudio, la vido, etc. Elle a de
plus lavantage dtre dans le langage Java, qui permet de raliser des architectures avec des
paradigmes objet.

4.1.1.2 Bref historique

Avant daborder les concepts principaux de JavaFX il est ncessaire de prsenter une
chronologie des principales tapes dvolution du domaine de dveloppement des applications
avec des interfaces graphiques en java

21
Figure 4.1 Chronologie des principales tapes de dveloppement des Interfaces graphiques
en Java

4.1.1.3 Potentiel de JavaFX


1. JavaFX tant le rsultat de dveloppements rcents, il bnficie de concepts modernes.
2. La possibilit de dcoupler le design graphique pour adopter le MVC.
3. Lintgration de feuilles de style CSS renforce encore la sparation entre le design
graphique et les traitements.
4. Diffrents composants complexes(graphes 2D,3D...).

4.1.1.4 Scene Builder


JavaFX Scene Builder est un outil open source de mise en page visuelle qui permet de
concevoir rapidement des interfaces, avec modification simple et gnrer le code FXML au
format XML dont la syntaxe est conue pour dcrire la vue avec ses composants.

4.1.2 Design Patterns


4.1.2.1 Dfinition
Les design patterns reprsentent les meilleures pratiques utilises par les dveloppeurs de
logiciels orients objets expriments. Ils sont des solutions aux problmes gnraux que les
dveloppeurs de logiciels confronts au cours du dveloppement de logiciels.

22
4.1.2.2 MVC pattern
Il existe diffrentes manires de structurer le code des applications interactives, une de ces
architectures communment utilise, et qui comporte de nombreuses variantes, est connue
sous lacronyme MVC qui signifie Model - View - Controller.
Le modle(Model) se charge de la gestion des donnes (accs, transformations, cal-
culs, etc.),il enregistre (directement ou indirectement) ltat du systme et le tient
jour(Extension .Java).
La vue(View) reprsente la visualisation des donnes qui contient le modle(Extension
.Fxml).
Le contrleur(Controller) est charg de ragir aux actions de lutilisateur (clavier,
souris, gestes)(Extension .Java)
Notre application est compose de nombreuses interfaces graphiques, afin de faciliter le
traitement et utiliser les points forts de javafx , nous avons dcid de travailler avec le MVC
de telle sorte que le code soit plus lisible et plus adaptable avec le modle de gestion des
notes et a toute prochaine mise a jour probable.

4.1.2.3 Observer pattern


Observer pattern est lun des design patterns comportementales, il est utile lorsque on
sintresse par ltat dun objet et que nous souhaitons tre averti chaque fois quil y a un
changement. En modle dobservateur, lobjet qui montre ltat dun autre objet est appel
observer et lobjet quest surveill est appel Subject.

Avant daborder lintrt dutiliser observer pattern, nous dtaillons la tache qui suit
limportation des fichiers qui prpare les donnes pour le contrleur afin de les afficher
dans un composant graphique qui sappelle TableView, En effet ce dernier est lun des
contrles virtualiss en javaFX, qui ncessite dans un premier temps de dfinir une classe
modle TableClass au package(src.main.java.Models.Helpers) qui aura quelques variables
dinstance pour le code, le nom, le prnom et les notes. afin de produire une liste observable
"ObservableList " qui contient l ensemble des object de type TableClass.

Avec JavaFX il est courant dutiliser les instances de type "Property" pour tous les
champs de la classe TableCLass. Une proprit (Property) nous permet, par exemple, dtre
automatiquement averti lorsque la variable code ou toute autre variable a t modifie. Ceci
nous aide maintenir la vue synchronise avec les donnes. suite cela et en respectant les
besoins, chaque mode des modules a son propre format de fichier, ce qui ncessite de dfinir
une fonction dimportation pour chaque mode afin de produire la structure de donnes des
objet TableClass pour alimenter le Tableview.

En respectant la structure de notre modle avec le motif MVC et en adoptant le modle


de gestion des notes on propose une structure de donnes sous une classe qui contient
deux type des donnes, ObservableList<TableClass> et une liste de type LesEtudiants. Le

23
contrleur de chaque interface graphique fait appel la fonction qui convertie le fichier
Excel import vers un objet de type Properity qui contient les deux listes de mme contenu,
la premier avec des objets observables de type TableClass pour la vue de linterface et
lautre de Type Etudiant pour le modle de gestion des notes.

En suite aprs le choix de la structure de donnes, il faut chercher un outil qui nous
permet de lier les deux listes, cest--dire un outil qui synchronise la liste Observable avec la
liste des tudiants chaque changement, sachant que le traitement des notes est tablie la
liste LesEtudiants, dautre part un des avantages des proprits JavaFX est la possibilit de
pouvoir lier les proprits entre-elles. Ce mcanisme, appel "binding", permet de mettre
jour automatiquement une proprit en fonction dune autre. Par exemple lorsque la variable
code ou toute autre variable de chaque objet de type TableClass de la liste observable est
modifie, automatiquement il averti lobjet de type Etudiant qui prend le mme code afin
de changer la valeur du code dune manire qui tienne compte de la stabilit des deux listes.

En outre dans notre projet on a remplac le principe de "Data Binding" par "the
Observer design pattern", ce dernier contrairement au "Data Binding" permet le contrle
des mises a jour aprs avoir reu les notifications, en effet la mise a jour de ltat de lobjet
observer (qui est intresse par ltat dun autre objet observ nomm "subject") ne se fait
quaprs une vrification selon des critres pour le but de valider la mise a jour comme on
peut la ngliger. Suite a cela on a dvelopp un modle qui jouera le rle dune forme stan-
dard (classes + interfaces) de toute les fentres de telle sorte que le code soit plus lisible et
plus adaptable avec le modle de gestion des notes et toute prochaine mise a jour probable.

Avant de passer limplementation de la solution, "observer pattern" passe par une


implementation dun autre design pattern nomm "The strategy pattern" qui permet de
dfinir un contrat en utilisant des interfaces, ce contrat explique le comportement des
objets concerns par lobservation(observer/subject), autrement dit ces interfaces du contrat
contient la signature des mthodes appels lor du changement dtat dobjet surveill
quant pour lobjet observateur, ce qui rend le code plus lisible et plus adaptable au futur
amliorations, en effet pour effectuer une mise a jour au niveau du code il ne faut qua
changer le contrat, par contre le "Data binding" relie des objets sans contrat ou contrle,
il fait la mise ajour automatiquement. On avait du mal a lutiliser pour effectuer des
mises a jour au niveau du structures de donnes ddies au tudiants car cela ncessite
le binding de tous ses attributs aux ceux du "TableClass" qui nest pas vident tous le
temps car ceci ncessite des oprations compliques au niveau des structures de donnes
pour maper les objets de type "Etudiant" et ceux du type "TableClass" et tablir un
lien entre leurs attributs avec le binding car leur indices en structures de donnes est en
changement permanent, part le fait que la destruction en mmoire dun objet que leur
attribut participent dans un binding va gnrer une erreur.

Dautre part le "Data Binding" contrairement au "the observer design pattern" utilise

24
des processus lgers "Threads" qui tournent tout le temps avec un cycle, ce qui alourdit
la plateforme, ou mme des fois le dpassement du "java memory heap" dans le cas ou il
existe plusieurs tudiants, donc cest une perte non justifiable des ressources.

En respectant la structure de notre modle avec le motif MVC, Observer pattern est
galement un lment important dans ce cas, o la vue doit observer des changements dans
le modle, suite nos besoins et en respectant le modle de gestion des notes en propose Le
modle suivant, quest adoptable toutes les interfaces graphiques.

le diagramme de classes UML (figure 4.2) qui montre les participants de motif dans ce cas :

Figure 4.2 Diagramme de classes de motif Observer

la mise en oeuvre dobserver pattern :


la mise en oeuvre du observer pattern passe par limplementation du strategy pattern
pour dfinir le contrat du mise a jour (update ,notifyObserver(),register()...).

25
Nous avons une interface "Subject", qui fournis des observateurs et ainsi que pour
attacher et dtacher des objets observateurs. De lautre ct, nous avons un observateur
"TableViewObserver", qui dfinit des mthodes update() utilises par la classe Etudiant
pour notifier les changements dans la classe "TableClass".

Les deux interfaces sont respectivement prolongs par "TableClass, qui stocke ltat des
objets dobservation et envoie une notification ses observateurs aprs chaque changements
dtat. Et par la classe Etudiant, qui redfinit la mthode update () pour maintenir son tat
compatible avec celui de TableClass.

4.1.3 Lutilisation des threads


Par dfaut, un programme JavaFX a un thread(processus lger). Ce thread excute le
code dans le programme de dmarrage et de fin avec la mthode Main. Chaque instruction
excute par Main(soit directement soit indirectement) est effectue par la valeur par
dfaut, ou thread principal, et ce thread se termine lorsque Main est retourne. Toutefois,
les threads auxiliaires peuvent tre crs et utiliss pour excuter le code en parallle avec
le thread principal. Ces threads sont souvent appels threads actifs.

le design pettern "Produce/consume"


On a utiliser le design pettern "Produce/consume" (Producteur/ consomateur) avec des
processus legers. Le thread charg au lancement de lapplication et le thread producteur le
thread charg a la recherche des erreurs qui se produisent au niveau de lapplication.

Deuxime utilisation
Dans notre application pas mal des objets du "java Concurrency package" on t utilis,
certain pour se dbarrasser des lments de vue quand on en a pas besoin (ce sont des
garbage cleaners qui nettoient la vue), il tournent souvent avec un cycle (ide inspir du
garbage cleaner de Java qui fait le nettoyage des objets au niveau du tas (heap memory)),
il y en a dautres qui marchent pour une dure limite durant toute leur priode de vie,
et il y en a dautre qui marchent seulement si on en a besoin sinon il revient a ltat du
sommeille pour ne pas gaspiller les ressources et pour permettre aussi une rapidit au niveau
de lapplication qutait un peu lourde dans un premier temps.

Fixage des bugs du JavaFX 8


Comme cette bibliothque est assez rcente, cest normale quelle contiennent pas mal
de bugs. Quon on a voulu de crer de zero des composants graphiques personnaliss qui
ne sont pas dfinie dans la librairie JavaFX8, on avait besoin de dfinir leur vue et leur
comportement, comme on a fait avec les cellules personnaliss des tableau, par exemple
un composant graphique slider qui apparat lor du clique sur une cellule du tableau pour
pouvoir saisir les note, mais ce composant graphique a un bug qui gnre des valeurs errones
lor du glissement de ce slider, on a jou un peu avec les threads pour pouvoir sen sortir.

26
4.1.3.1 Programmation vnementielle
La programmation des applications avec interfaces graphiques est gnralement base
sur un paradigme nomm programmation vnementielle, avec ce type de paradigme les
vnements (gnralement dclenchs par lutilisateur, mais aussi par le systme) qui pilotent
lapplication. Ce mode non directif convient bien la gestion des interfaces graphiques.
En programmation vnementielle, on prpare les actions(code en java) excuter en
les associant aux vnements que lon souhaite traiter et on attend que le processus de sur-
veillance nous avertisse en excutant le code prvu. Comme les composants des interfaces
graphiques sont diverses, chaque composant graphique a sont contrleur, ctait indispen-
sable dtablir une sorte communication entre ces contrleurs , a ce fait par la cration des
vnements personnaliss (des classe de type Event) , quand un contrleur veut envoyer des
objets ou bien des structures de donnes a un autre, il lui envoie un vnement qui porte
des objets afin de le captur par le contrleur destinataire, et ensuite faire le traitement
convenable.
Ainsi que un vnement peut tre captur et renvoyer par plusieurs contrleurs avant
darriver a la destination finale selon le hirarchie des fichiers(.fxml).

4.1.4 Apache POI


Apache POI est une API populaire qui permet de crer, modifier et mme si dcoder
les donnes dentre dutilisateur ou crire un fichier MS Office Excel. Est une bibliothque
open source dvelopper et distribuer par Apache Software Foundation pour le traitement des
fichiers Microsoft Office en utilisant un programme Java .

4.1.5 Apache Maven


Lutilisation de plusieurs bibliothque au sein de notre application a gnr une dfaillance
au niveau de la gestion du programme do la ncessite davoir recours Apache Maven qui
un outil pour la gestion et lautomatisation de production des projets logiciels java (pour
notre cas la fonctionnalits dont on a besoin est sa gestion des dpendances).

4.1.6 Implmentation
Lapplication en gnrale contient 8 modes pour les traitements des modules, 2 modes de
la dlibration semestrielle (6 modules et 7 modules) ainsi que 2 modes de la dlibration
annuelle(6 modules et 7 modules).
Linterface graphique principale de lapplication est sous forme dun slider qui contient
des images des modes avec la description de chacun.

Traitement des modules


Aprs le choix du mode convenable, lapplication propose lutilisateur dimporter le
fichier(Excel) qui contient la liste des tudiants inscrits dans le module. en suite linterface

27
du mode choisie saffiche pour commenc le traitement( exemple :figure 4.3).

Figure 4.3 choix des feuilles a partir de fichier Excel import

28
Mode TP et CF :

Figure 4.4 mode TP et CF

29
Mode TP, CC et CF :

Figure 4.5 Mode TP, CC et CF

30
Mode CF seul :

Figure 4.6 Mode CF seul.

31
Mode CC et CF :

Figure 4.7 Mode CC et CF.

32
Mode rattrapage de TP et CF :

Figure 4.8 mode rattrapage TP et CF

33
Mode rattrapage de CC, TP et CF :

Figure 4.9 mode rattrapage CC, TP et CF

34
Mode rattrapage de CF :

Figure 4.10 mode rattrapage CF

35
Mode rattrapage de CC, CF :

Figure 4.11 mode rattrapage CC, CF

36
La saisie des notes :

Figure 4.12 Insertion par slider

37
Figure 4.13 Insertion par une liste

38
Figure 4.14 Insertion par text

39
Affichage des statistiques en graphe :

Figure 4.15 Affichage des statistiques

40
Statistiques en graphe :

Figure 4.16 Affichage des statistiques

41
Exportation du graphe :
Lapplication offre lutilisateur le choix dexporter le graphe en format PDF/PNG/JPG.
Exemple dexportation en pdf(figure 4.17).

Figure 4.17 Exemple dexportation en PDf

42
Dautre part lapplication permet lutilisateur deffectuer des filtres sur les rsul-
tats.(figure 4.17). Ces derniers sont exportables en format Excel.

Figure 4.18 Activation du filtrage

43
Les filtres disponibles :

Figure 4.19 filtrage par nom, code ou prnom

44
Figure 4.20 filtrage par moyenne suprieur

45
Figure 4.21 filtrage par moyenne infrieur

46
Figure 4.22 filtrage par moyenne gale

47
Figure 4.23 filtrage par validation

48
Le traitement des modules se termine par lexportation du fichier en format Excel.
exemple lexportation de traitement du mode 1(figure 4.24)

Figure 4.24 Exportation des rsultats

49
Figure 4.25 Fichier export

50
la dlibration semestrielle :
Aprs le choix du mode dlibration semestrielle de 6 modules, lapplication affiche linterface
suivante(figure 4.26).

Figure 4.26 Espace de la dlibration semestrielle

51
Comme nous avons annonc lapplication propose lutilisateur dimporter les fichiers de
chaque module de semestre courant et tous lhistorique des modules au annes prcdentes,
ce qui facilite le travaille manuelle de ladministration et le chef de filire auparavant grce
a une solution qui offre la possibilit dimporter un nombre infini des fichiers Excel, afin de
remplacer le traitement travers une base des donnes.

Figure 4.27 Espace dimportation des fichiers

52
A titre dexemple aprs limportation des modules de semestre courant, on passe lim-
portation de lhistorique, en prend lhistorique de module UML des deux annes 2014/2015
et 2013/2014. la mme chose pour les autres modules il suffit juste choisir le nom de module
parmi les autres dans la liste. ensuite un espace de drag and drop saffiche afin de dposer le
fichier dans licne cre (figure 4.28).

Figure 4.28 importation de lhistorique

Aprs limportation de tous les fichiers, afin de faire la dlibration on clique sur le bouton
"CommencerDelib" pour faire les calcules en arrire plan, en suite pour retourner linterface
daffichage on clique sur le bouton"Importer fichier Excel" un tableau saffiche contient les
calcules et les rsultats de la dlibration semestrielle(figure 4.29).
Si lutilisateur na pas slectionn le fichier exact, il peut modifier son choix en cliquant
sur le bouton dimportation sans fermer lapplication et refaire le traitement ds le d-
but.(exemple figure 4.30)

53
Figure 4.29 rsultats de la dlibration semestrielle

54
Figure 4.30 mise jour de limportation

55
le fichier export de la dlibration semestrielle(figure 4.31).

Figure 4.31 Le fichier export de la dlibration semestrielle.

56
La mme chose pour la dlibration semestrielle, on peut tablir des filtres sur les rsultats
et mme si avec la possibilit de lexportation en format Excel(figure 4.32) et laffichage dun
graphe qui donne les distributions des notes de chaque module(figure 4.33).

Figure 4.32 Filtrage des rsultats de la dlibration semestrielle

57
Figure 4.33 Graphe de distribution des notes

Dlibration semestrielle 7 modules


Avant de terminer la section qui concerne la dlibration semestrielle, pour le traitement
de la dlibration des semestres dont le nombre des modules est gale 7(Semestre 1 ou
2) le mme traitement de la dlibration des 6 modules sapplique sur le traitement des 7
modules.

58
Dlibration annuelle
le traitement de la dlibration annuelle ncessite limportation de tous les fichiers des
modules des deux semestres(12 Modules ou 14 Modules), comme le cas de la dlibration par
semestre linterface de la dlibration par anne offre un espace dimportation des fichiers avec
la possibilit dimportation de lhistorique et la modification aprs le choix des fichiers(figure
4.34)

Figure 4.34 Limportation des fichiers pour la dlibration par anne

59
Affichage des rsultats par anne :

Figure 4.35 Affichage de la dlibration annuelle

60
Chapitre 5

Conclusion et perspectives

Le projet effectu a effectivement rpondu notre problmatique de dpart, qui est la


ralisation dun systme de gestion des notes volu et facile utiliser. Notre projet nous
a permis de sortir avec certaines conclusions trs pertinentes. Dans un premier temps,
limportance de suivre les tapes de gnie logiciel, la chose qui mne facilement au rsultat
dsir. Dans un second temps, notre projet nous a permis dapprendre des nouvelles
technologies qui facilitent le processus de dveloppement.

Une amlioration de lapplication peut se faire en intgrant deux fonctionnalits suppl-


mentaires que nous navons pas pu intgrer suite la contrainte du temps :
1. La possibilit dajouter une fonctionnalit dintroduire les notes partir dun pri-
phrique dentre de sons en utilisant un traitement de la reconnaissance vocale.
2. Ajouter une fonctionnalit dimpression des relevets des notes des tudiants.
Par ailleurs, ce projet nous a t bnfique en grande partie en ce qui concerne lor-
ganisation du travail et cela nous permettra de concevoir des applications puissantes dans
lavenir.

61
62
Bibliographie

[1] Oracle, Java Platform, Standard Edition (Java SE) 8, 22 mai 2014
http ://docs.oracle.com/javase/8/javase-clienttechnologies.html
[2] code.makery.ch, JavaFX 8 Tutorial - Part 1 : Scene Builder , 16 Apr 2014.
http ://code.makery.ch/library/javafx-8-tutorial/part1
[3] site web proposant des questions et rponses, http ://stackoverflow.com/
[4] Observer Design Pattern, http ://sourcemaking.com/designpatterns/observer
[5] Concurrency in JavaFX , https ://docs.oracle.com/javafx/2/threads/jfxpub-threads.htm
[6] bug de javaFx , http ://stackoverflow.com/questions/14359596/javafx-graphic-bug-with-
progressbar-and-slider

63

Vous aimerez peut-être aussi