Réf : MI 05/09
pour
our obtenir le
par
Composition du jury
À mon père,
À qui je dois tout et dont l’affectation, le dévouement et les encouragements ont
été pour moi le meilleur gage de réussite. Je lui dédie ce travail en témoignage de
mon grand amour et reconnaissance infinie.
À toute la famille,
source de ma motivation et mes espoirs.
Marouene.H
À mes très chers parents,
Pour tout l’amour dont vous m’avez entouré, pour tout ce que vous avez fait
pour moi. Je ferai de mon mieux pour rester un sujet de fierté à vos yeux avec
l’espoir de ne jamais vous décevoir. Que ce modeste travail, soit l’exaucement
de vos veux tant formulés et de vos prières quotidiennes.
Vous occupez une place particulière dans mon cœur. Je vous dédie ce travail
en vous souhaitant un avenir radieux, plein de bonheur et de succès.
À mon frère,
Pour ton soutient et ton encouragement. Je te souhaite une bonne vie calme,
joyeuse et pleine de succès.
Marouene.M
Nous exprimons nos sincères remerciements à monsieur Fethi ESSELMI pour
l’extrême gentillesse qu’il a bien voulu manifester à notre égard ainsi que notre
gratitude pour l’encadrement dont il nous a fait bénéficier aimablement. Nous le
remercions vivement d’avoir su nous encourager par une exaltation constante à
la circonspection de notre sujet.
Nous tenons à remercier madame Yossra BEN DALI HLAOUI pour l’honneur
qu’elle nous fait de présider le jury de ce projet de fin d’études. Qu’il nous soit
permis d’évoquer ici sa présence bienveillante aux étapes importantes de notre vie
universitaire à l’issue de nos premières recherches et découvertes sur le monde de
programmation. Nous avons grand plaisir à profiter de cette occasion très
formelle pour la remercier sincèrement.
1 Introduction........................................................................................................................ 4
2 Les approches pédagogiques ............................................................................................. 4
2.1 L’approche par objectifs ............................................................................................ 4
2.1.1 Définition............................................................................................................ 4
2.1.2 Caractéristiques .................................................................................................. 5
2.2 L’approche par compétences ..................................................................................... 6
2.2.1 Définition............................................................................................................ 6
2.2.2 Caractéristiques................................................................................................... 7
2.3 Approche par collaboration ....................................................................................... 7
2.3.1 Définition............................................................................................................ 7
2.3.2 Caractéristiques................................................................................................... 8
2.4 Conclusion ................................................................................................................ 9
3 Modèle de l’acceptation de technologie (TAM) .............................................................. 9
3.1 Introduction................................................................................................................ 9
3.2 Présentation de TAM................................................................................................. 9
3.3 Conclusion ............................................................................................................... 11
4 La logique Floue .............................................................................................................. 11
4.1 Introduction.............................................................................................................. 11
4.2 Présentation de la logique Floue.............................................................................. 11
4.3 Les composants d’un problème Floue ..................................................................... 12
5 Service Web ..................................................................................................................... 13
5.1 Définition................................................................................................................. 13
5.2 Service Web de type WS-*...................................................................................... 14
5.2.1 L’invocation...................................................................................................... 15
5.2.2 La découverte ................................................................................................... 15
5.2.3 La description ................................................................................................... 15
i
5.3 Critiques................................................................................................................... 16
5.3.1 Avantages ......................................................................................................... 16
5.3.2 Inconvénients.................................................................................................... 16
6 Conclusion......................................................................................................................... 16
1 Introduction ..................................................................................................................... 17
2 L’élaboration du questionnaire ..................................................................................... 17
2.1 Introduction.............................................................................................................. 17
2.2 Définition................................................................................................................. 17
2.3 Caractéristiques qualitatives du questionnaire......................................................... 17
2.4 Caractéristiques quantitatives du questionnaire....................................................... 18
3 Le questionnaire de détermination de l’approche pédagogique................................. 19
3.1 L’approche par objectif............................................................................................ 19
3.2 L’approche par compétence..................................................................................... 20
3.3 L’approche par collaboration................................................................................... 21
4 L’implémentation du questionnaire .............................................................................. 22
4.1 Introduction.............................................................................................................. 22
4.2 Langage de contrôle floue (FCL) ........................................................................... 22
4.3 Le package jFuzzyLogic.......................................................................................... 22
5 Application....................................................................................................................... 23
5.1 Introduction.............................................................................................................. 23
5.2 Fichier FCL.............................................................................................................. 23
5.3 Etude empirique....................................................................................................... 25
6 Conclusion........................................................................................................................ 27
1 Introduction ..................................................................................................................... 28
2 Présentation d’UML ....................................................................................................... 28
3 Conception Généralisée .................................................................................................. 29
3.1 Diagramme de classe ...................................................................................................... 29
3.2 Diagramme des cas d’utilisation..................................................................................... 31
4 Conception focalisée........................................................................................................ 33
ii
4.1 Diagramme de classe ............................................................................................... 33
4.2 Diagramme de séquence .......................................................................................... 34
4.2.1 Inscription et authentification ........................................................................... 34
4.2.2 Réponse à un questionnaire .............................................................................. 35
4.2.3 Création d’un questionnaire.............................................................................. 35
4.2.4 Interaction entre le client et le service web ...................................................... 36
5 Conception de la base de données.................................................................................. 38
6 Conclusion........................................................................................................................ 39
Chapitre 4 : Implémentation...................................................................................................... 40
1 Introduction ..................................................................................................................... 40
2 Projection de la conception sur la pratique ................................................................. 40
2.1 La phase de l’inscription.......................................................................................... 41
2.2 Validation des inscriptions ...................................................................................... 42
2.3 Authentification et connexion à l’espace personnel ................................................ 43
2.4 Elaboration d’un questionnaire................................................................................ 45
2.5 Réponse à un questionnaire ..................................................................................... 50
2.6 Gestion du compte personnel................................................................................... 51
3 Tests et vérification ......................................................................................................... 51
4 Planification du projet .................................................................................................... 53
5 Conclusion........................................................................................................................ 53
1 Introduction .................................................................................................................... 54
2 Problèmes au court du développement sous l’IDE Eclipse ........................................ 54
2.1 Création du fichier FCL de notre questionnaire ..................................................... 54
2.2 Recherche et expérimentation des variables significatives..................................... 55
2.3 Manipulation du code FCL par la programmation JAVA ...................................... 58
3 Exceptions rencontrées lors du déploiement du service Web .................................... 60
3.1 Exceptions liées à la configuration de Tomcat et Axis........................................... 60
3.2 Exception liée à l’inclusion de bibliothèques dans l’application serveur ............... 62
4 Conclusion....................................................................................................................... 64
iii
Bibliographie ....................................................................................................................................... 67
Annexe A : Conception et modélisation de la base de données de l’application ....................... 69
Annexe B : Présentation d’UML ...................................................................................................... 70
Annexe C : Environnement de travail .............................................................................................. 74
Annexe D : Codes sources ................................................................................................................. 78
iv
Figure 1 La construction d’une compétence .........................................................................6
Figure 2 Schéma du Modèle d’Acceptation de la Technologie ..........................................10
Figure 3 Schéma de fonctionnalité de la logique floue.......................................................13
Figure 4 Courbe de la variable d’entrée Quest1 .................................................................24
Figure 5 Fonction de la variable de sortie Préférence.........................................................24
Figure 6 Résultat de la Défuzzification...............................................................................25
Figure 7 Simulation de la projection...................................................................................25
Figure 8 Diagramme de Classe généralisé..........................................................................31
Figure 9 Diagramme des Cas d’Utilisation.........................................................................32
Figure 10 Diagramme de Classe d’un questionnaire ............................................................33
Figure 11 Diagramme de Séquence d’inscription et d’authentification ...............................34
Figure 12 Diagramme de Séquence de réponse à un questionnaire......................................35
Figure 13 Diagramme de séquence de création d’un questionnaire .....................................36
Figure 14 Diagramme de Séquence d’interaction utilisateur, plate forme et service Web...37
Figure 15 Page d’accueil de l’application.............................................................................41
Figure 16 Interface de l’inscription d’un utilisateur .............................................................42
Figure 17 Gestion des nouveaux abonnés.............................................................................43
Figure 18 Panneau d’authentification d’un acteur ................................................................43
Figure 19 Panneau de récupération du mot de passe oublié par E-mail ...............................44
Figure 20 Exemple de réception d’un mot de passe oublier par un courrier électronique ...45
Figure 21 Première étape de l’élaboration d’un questionnaire .............................................45
Figure 22 Deuxième étape de l’élaboration d’un questionnaire ...........................................46
Figure 23 Troisième étape de l’élaboration d’un questionnaire ...........................................47
Figure 24 Quatrième étape de l’élaboration d’un questionnaire...........................................48
Figure 25 Panneau de simulation lors de la création d’un questionnaire..............................49
Figure 26 Cinquième et dernière étape de l’élaboration d’un questionnaire ........................49
Figure 27 Liste de questionnaire disponible à un utilisateur ................................................50
Figure 28 Réponse à un questionnaire (exemple de l'approche pédagogique) .....................50
Figure 29 Espace de gestion du compte personnel d’un utilisateur......................................51
v
Figure 30 Chronogramme de planification du projet de fin d’études ...................................53
Figure 31 Edition d’un code FCL à l’aide d’un éditeur de texte ..........................................54
Figure 32 Première version des courbes des termes d’entrée d’une question .....................55
Figure 33 Deuxième version des courbes des termes d’entrée d’une question ...................56
Figure 34 Deuxième version des courbes des termes d’entrée d’une question ...................57
Figure 35 Courbe de la sortie du processus defuzzyfication avant la correction..................57
Figure 36 Courbe de la sortie du processus defuzzyfication après la correction..................58
Figure 37 Exception lancée lors du déploiement du service Web dans le serveur Tomcat..60
Figure 38 Déploiement avec succès de l’application client et serveur .................................61
Figure 39 Exception lancée lors de l’appel d’une méthode du service Web ........................62
Figure 40 Exemple d’appel du service Web après déploiement...........................................63
Figure 41 Modèle conceptuel de données.............................................................................69
Figure 42 Modèle physique de données................................................................................69
Figure 43 Organigramme des diagrammes structurels et comportementaux d’UML ..........70
Figure 44 Méthode creationNovice extraite de la classe ManipLogicFloue ........................78
Figure 45 Méthode simulation extraite de la classe ManipLogicFloue ................................79
Figure 46 Méthode creationFCL extraite de la classe ManipLogicFloue.............................80
Figure 47 Méthode determineresultat extraite de la classe ManipLogicFloue .....................81
Figure 48 Utilisation du useBean extraite de la page novice2.jsp ........................................82
Figure 49 Appel du useBean extraite de la page novice2.jsp ...............................................82
Figure 50 Les inputs extraite de la page gerer-compte-u.jsp ................................................82
Figure 51 Fonction verifinom extraite de la page gerer-compte-u.jsp..................................83
Figure 52 Fonction file extraite de la page inscription.jsp....................................................84
Figure 53 Appel à la fonction file extraite de la page inscription.jsp ...................................84
Figure 54 Contenue de la page script.jsp ..............................................................................84
Figure 55 Fonction verifier-num extraite de la page expert2.jsp..........................................85
Figure 56 Extrait de la page expert2.jsp ...............................................................................86
Figure 57 Fonction VerifReel extraite de la page expert2.jsp ..............................................87
Figure 58 Organigramme du site Web..................................................................................88
vi
Tableau 1 Taxonomie des objectifs éducationnels de Bloom ................................................. 5
Tableau 2 Tableau des jeux de tests des réponses au questionnaire ..................................... 26
Tableau 3 Légende du tableau des jeux de tests des réponses au questionnaire ................... 27
Tableau 4 Les différents cas de figure de la phase Authentification..................................... 44
Tableau 5 Les différents affichages du résultat d’une réponse à un questionnaire............... 51
Tableau 6 Jeux de tests des réponses au questionnaire de l’approche pédagogique............. 52
vii
Introduction générale
1
Introduction générale
2
Introduction générale
service Web non seulement pour la détermination de l’approche pédagogique d’un apprenant,
mais qui, par ailleurs, donnera la main à la création des questionnaires et le calcul de la
préférence d’un sujet humain envers un thème spécifique.
Ce présent rapport est composé de cinq chapitres. Le premier chapitre rappelle les
notions de bases et illustre notre recherche. Le deuxième chapitre détaillera une étude de cas
démontrant ainsi la faisabilité de notre idée générale. Le troisième chapitre est réservé pour la
conception et la modélisation de l’application tandis que le quatrième chapitre est consacré à
son implémentation. Le cinquième et dernier chapitre présente les problèmes rencontrés ainsi
que les procédures de leurs résolutions.
3
La recherche procède par des moments
distincts et durables, intuition,
aveuglement, exaltation et fièvre. Elle
aboutit un jour à cette joie, et connaît
cette joie celui qui a vécu des moments
singuliers.
Albert Einstein
1 Introduction........................................................................................................................ 4
2 Les approches pédagogiques ............................................................................................. 4
2.1 L’approche par objectifs ............................................................................................ 4
2.1.1 Définition............................................................................................................ 4
2.1.2 Caractéristiques .................................................................................................. 5
2.2 L’approche par compétences ..................................................................................... 6
2.2.1 Définition............................................................................................................ 6
2.2.2 Caractéristiques................................................................................................... 7
2.3 Approche par collaboration ....................................................................................... 7
2.3.1 Définition............................................................................................................ 7
2.3.2 Caractéristiques................................................................................................... 8
2.4 Conclusion ................................................................................................................ 9
3 Modèle de l’acceptation de technologie (TAM) .............................................................. 9
3.1 Introduction................................................................................................................ 9
3.2 Présentation de TAM................................................................................................. 9
3.3 Conclusion ............................................................................................................... 11
4 La logique Floue .............................................................................................................. 11
4.1 Introduction.............................................................................................................. 11
4.2 Présentation de la logique Floue.............................................................................. 11
4.3 Les composants d’un problème Floue ..................................................................... 12
5 Service Web ..................................................................................................................... 13
5.1 Définition................................................................................................................. 13
5.2 Service Web de type WS-*...................................................................................... 14
5.2.1 L’invocation...................................................................................................... 15
5.2.2 La découverte ................................................................................................... 15
5.2.3 La description ................................................................................................... 15
5.3 Critiques................................................................................................................... 16
5.3.1 Avantages ......................................................................................................... 16
5.3.2 Inconvénients.................................................................................................... 16
6 Conclusion......................................................................................................................... 16
Etat de l’art
1 Introduction
Alors quelles sont ces méthodes d’enseignement ? Sur quels principes sont-elles
fondées ? Y a-t-il une méthode applicable sur tous les apprenants ?
2.1.1 Définition
4
Etat de l’art
des processus et méthodes dans l’industrie. Des taxonomies ont été construites pour aider les
formateurs à formuler les objectifs de leurs cours. [16]
L’approche par objectifs, peut être définie comme étant une référence ou une
technique. Elle n’est pas incompatible avec les méthodes qui prennent en compte les
opérations mentales, les processus de raisonnement, l’influence de l’environnement social,
pour lesquelles l’acte d’apprendre est beaucoup plus que l’association d’un stimulus et d’un
comportement observable. [16]
2.1.2 Caractéristiques
Niveau Activités
Mémoriser des informations, définir des terminologies, des techniques,
1. Connaissance
etc.
2. Compréhension Comprendre un article afin d'en faire un résumé
Utiliser les connaissances de l'apprenant pour les appliquer dans une
3. Application
situation concrète (" la vraie vie ")
Demander à l'apprenant de disséquer un sujet, d'en expliquer les tenants
4. Analyse
et les aboutissants
Reformuler les parties d'un sujet ensemble mais d'une toute nouvelle
5. Synthèse
manière en se basant sur plusieurs sources
6. Évaluation Juger la valeur d'un sujet dans un but spécifique
Une telle approche favorise le travail individuel et pousse les apprenant à effectuer
tout le travail de façon autonome. Ceci approuve en conséquence, le forçage de l’introduction
de l’information qui est généralement déconseillé puisqu’il élargi l’écart entre l’information et
le récépteur de l’information.
Une autre caratéristique qui n’est pas moins importante, est l’aspect de généralisation
et d’abstraction. En effet, cette approche invite l’apprenant à s’orienter vers l’abstraction lors
5
Etat de l’art
d’un traitement d’un problème, et l’encourage à généraliser ses requis dans divers domaines
d’application qui mène en conséquence à l’automatisme de l’apprentissage.
Dans le cas contraire est-il juste d’opprimer les apprenants qui ne leur convient pas
une telle approche ?
2.2.1 Définition
L’approche par compétence est un savoir agir réfléchi faisant intervenir des
connaissances, des capacités, des aptitudes en vue d'une action finalisée. l’approche (par
compétence), par conséquence, implique une vigilance épistémologique parce que le savoir
est quelque chose de vivant . [25], définit Michel Devalay, Maître de conférence à
l’Université Lumière Lyon II.
6
Etat de l’art
2.2.2 Caractéristiques
Lors d’un traitement d’une situation, l’apprenant doit exploiter tout ses prérequis
ainsi que toutes ses connaissances et doit les mobiliser indépendemant de la matière qu’il est
entrain d’étudier. De ce fait une telle approche élimine les frantières posées par l’étude d’une
matière et en second lieu permet à l’apprenant d’affronter un problème en entier sans
abstraction ni hypothèse et il ne sera pas obligé de traiter le même problème deux fois dans
deux scéances différentes.
Une fois l’apprenant est devenu capable de gérer une situation qu’on note S, il doit
être capble de résoudre pareillement la famille de situations à laquelle appartient S. Une
famille de situations étant une collection de situations semblables, similaires et qui sont gérées
par la même compétence. Cette famille peut être ordonnée selon la complexité de ses
situations qui les englobe afin de garantir le bon apprentissage de la compétance par
l’apprenant.
2.3.1 Définition
7
Etat de l’art
groupe et de l'aide d'un formateur facilitant les apprentissages individuels et collectifs. [4]
Cette définition étant tirée d’une trentaine de page que Henri.F et Lundgren-Cayrol.K, avaient
consacré dans leur ouvrage « Apprentissage collaboratif à distance » pour définir le terme.
Ces auteurs montrent aussi dans leur ouvrage la différence entre une approche
collaborative et une approche coopérative pour ne pas faire de confusion. Ils citent que la
collaboration est mise autant sur la réalisation de la tâche par l’apprenant que par le groupe,
contrairement à la coopération qui propose à l’apprenant de s’acquitter d’une sous-tâche
permettant au groupe de réaliser la tâche. [14]
2.3.2 Caractéristiques
L’approche par collaboration, comme l’indique son nom d’ailleurs, est une méthode
qui favorise le travail collectif et individuel en même temps. En effet, en terme de but, un
groupe d’apprenants (appelés souvent collaborateurs) fixent un but commun à atteindre (le cas
échéant est la résolution d’un problème). Cette fixation de but donne à l’apprenant une
assurance qu’il n’est pas seul face à un problème et lui donne le courage pour l’affronter. Et
voilà c’est l’aspect collectif de cette approche. Une fois le but est fixé, chaque collaborateur
essaie de sa part de résoudre le problème de façon autonome, ce qui manifeste le travail
individuel au sein d’un groupe. Par la suite, le collaborateur est invité à comparer ses résultats
avec celles obtenues par les autres membres du groupe. Cette étape permet à l’apprenant de se
fixer l’idée que s’il commit une erreur, certainement il y aura quelqu’un qui peut lui mettre
l’accent dessus. Cette caractéristique favorise la solidarité et le soutient mutuel.
8
Etat de l’art
L’approche par collaboration, comme les approches précédentes, admet à son tour
des caractéristiques importantes. Cependant, est-il évidant que tout les apprenant sont mûres
en matière de connaissance scientifique ?
Si c’est le cas, est-il évident qu’ils admettent le même degré de maturité qui leur
permet de suivre cette approche pédagogique ?
2.4 Conclusion
Dans cette partie on a essayé d’évoquer des questions qui se posent dans le monde de
l’apprentissage mais qui ne sont pas bien traitées vue la complexité de la situation. L’apport
technologique nous permet de résoudre plusieurs problèmes relatifs au processus de
l’apprentissage. On remarque qu’à l’aide de l’enseignement en ligne qu’on peut personnaliser
les cours selon les préférences de l’apprenant. De ce fait on a constaté l’importance et la
nécessité de classifier les apprenants selon leurs approches pédagogiques. Pour ce faire il
existe une méthode très connue et répondue : le questionnaire.
Nous expliquerons dans ce qui suit les étapes achevées et les logiques utilisées dans
le cadre de l’élaboration du questionnaire de détermination de l’approche pédagogique d’un
apprenant.
3.1 Introduction
9
Etat de l’art
Davis définit le facteur perception de l’utilité comme étant un degré auquel une
personne croit que l’utilisation d’un système améliorera ses performances. La perception de la
facilité d’utilisation se réfère, quant à elle, au degré auquel une personne croit que l’utilisation
d’un système sera dénuée d’efforts.
Il faut noter en premier lieu que les flèches reliant les différents facteurs du modèle
ne sont pas des flèches d’incidence. En effet, elles représentent l’influence d’un facteur sur un
autre.
En second lieu on note que les flèches ne portent pas de poids, pour autant, Davis.F
exprime dans ces travaux de validation de sa théorie que le lien entre la perception de l’utilité
et l’intention d’utilisation est plus fort que celui entre la perception de facilité d’utilisation et
l’intention de l’utilisation.
10
Etat de l’art
3.3 Conclusion
4 La logique Floue
4.1 Introduction
11
Etat de l’art
problème que les autres logiques n’arrivaient pas à les implémenter, surtout bien lorsqu’il
s’agit d’incertitude au niveau des entrée d’un problème. Ces intervalles incertains sont les
sous-ensembles floues que Zadeh à introduit en 1965 et débutant ainsi l’élaboration de sa
fameuse théorie. Zadeh effectuait par la suite une extension dans sa théorie en introduisant la
théorie des possibilités en 1987. Ainsi l’élaboration de la théorie de la logique floue s’avérait
terminée.
Il est évident que chaque problème manipule des données qui constituent le point de
départ de sa résolution. Sans données initiales, notées aussi les entrées ou les inputs, on n’aura
rien à résoudre. La logique floue donne la main à son appliquant d’introduire les données de
problème à travers l’étape de ‘fuzzyfication’. Cette étape contient en effet, toutes les entrées
du problème à résoudre. La représentation des données par des courbes bidimensionnelles, est
le point fort de cette théorie car elles permettent de spécifier les sous-ensembles flous relatifs
à chaque donnée.
L’utilité de la résolution d’un problème est l’obtention d’un résultat significatif, par
conséquence une sortie ou output interprétable. C’est l’étape de ‘defuzzyfication’ qui
s’occupe de la présentation de la sortie. A son tour cette étape donne la main à l’appliquant
d’introduire la courbe de la sortie tout en utilisant les sous-ensembles flous qui constitue aussi
une caractéristique importante de cette théorie.
L’étape de ‘defuzzyfication’ contient aussi la spécification de la valeur par défaut, si aucune
règle n’est applicable, ainsi que la méthode de calcul de la valeur de sortie.
L’étape de règles est constituée d’un ensemble de règles que chacune à son tour se compose
d’un nom, de termes linguistiques, introduit lors de la spécification des données d’entrées,
concaténés par des opérateurs logiques et une décision qui est toujours un terme linguistique
de sortie.
Nous notons dans ce contexte que le nombre de règles définies dans un problème à
résoudre avec la logique floue intervient dans la précision des résultats obtenus. En effet,
12
Etat de l’art
lorsqu’il s’agit d’un nombre important de règles, il y aura plus de calculs et plus de traitement
selon ces règles, alors il y aura plus de raffinage des résultats. Cependant le nombre de règle
n’intervient pas dans la validité des résultats.
Pour résumer ce que nous venons de dire nous procéderons à la présentation d’un
schéma explicatif, montrant ainsi l’interaction entre les différentes composantes d’un
problème flou. Ce schéma éclaircie d’avantage les termes techniques que nous venons
d’utiliser dans ce qui précède.
5 Service Web
5.1 Définition
Le service Web utilise le protocole HTTP comme moyen de transport. Ainsi, les
communications s'effectuent sur un support universel, maîtrisé et généralement non filtré par
13
Etat de l’art
les pare-feux. Sa syntaxe est basée sur la notation XML pour décrire les appels de fonctions
distantes et les données échangées en organisant les mécanismes d'appel et de réponse [23].
Grâce aux services Web, les applications peuvent être vues comme un ensemble de
services métiers, structurés et correctement décrits, dialoguant selon un standard international
plutôt qu'un ensemble d'objets et de méthodes entremêlés [23].
Ainsi, nous concluons qu’un service Web permet l’interopérabilité entre différentes
plates formes et la réduction de la complexité d’une application vue l’indépendance d’un
service Web par rapport à cette dernière. De ce fait la maintenance d’une telle application
devient aisée et de coût réduit.
Il existe plusieurs types de services Web à savoir les services Web REST et les
services Web WS-*qui sont les plus répondus. Alors le type WS-* sera utilisé lors de
l’implémentation de notre projet.
Ces services Web WS-* sont par ailleurs définis selon le type d'architecture SOA
(Services Oriented Architecture) qui est à l’origine de l’apparition du terme service.
L'OASIS et le World Wide Web Consortium (W3C) sont les comités de coordination
responsables de l'architecture et de la standardisation des services Web. Pour améliorer
l'interopérabilité entre les réalisations de service Web, l'organisation WS-I a développé une
série de profils pour faire évoluer les futures normes impliquées. [27]
Le fonctionnement des services Web WS-* repose sur un modèle en couches, dont
les trois couches fondamentales sont les suivantes :
14
Etat de l’art
5.2.1 L’invocation
Visant à décrire la structure des messages échangés par les applications. Il existe deux
grands standards de services Web, tous deux basés sur XML :
SOAP (Simple Object Access Protocol), fonctionnant selon le modèle objet. Il a été
définit à l'origine par Microsoft, puis standardisé par le W3C, utilisant la notation XML
permettant de définir les mécanismes d'échanges d'information entre des clients et des
fournisseurs de services Web. [23]
Quel que soit le standard utilisé, le principe de programmation est le même : l'appel
de méthode distante est réalisé grâce à une bibliothèque cliente qui transmet la demande au
fournisseur de service en la formatant en XML de manière transparente. Au niveau du
serveur, une bibliothèque spécifique décode la requête, et transmet les paramètres à
l’application serveur qui effectue les traitements nécessaire et retourne le résultat à cette
même bibliothèque, qui à son tour traduit la réponse et l’envoie au client. La bibliothèque
cliente décode la réponse reçue afin qu’elle soit utilisée.
5.2.2 La découverte
5.2.3 La description
L'objectif de cette couche est la description des interfaces (paramètres des fonctions,
types de données) des services Web.
15
Etat de l’art
Le standard WSDL (Web Service Description Language) est un langage reposant sur
la notation XML permettant de décrire les services Web. WSDL permet ainsi de décrire
l'emplacement du service Web ainsi que les opérations (méthodes, paramètres et valeurs de
retour) que le service propose.
5.3.1 Avantages
Les services Web fournissent l'interopérabilité entre divers logiciels fonctionnant sur
diverses plateformes.
Les protocoles et les formats de données sont au format texte dans la mesure du
possible, facilitant ainsi la compréhension du fonctionnement global des échanges.
Basés sur le protocole HTTP, les services Web peuvent fonctionner au travers de
nombreux pare-feux sans nécessiter des changements des règles de filtrage.
5.3.2 Inconvénients
Les normes de services Web dans certains domaines sont actuellement récentes.
6 Conclusion
Dans ce chapitre, nous avons présenté le domaine d’étude ainsi que les outils
nécessaires au développement de notre projet. Dans ce qui suit, nous montrerons l’application
de ces outils sur le domaine en question. Le deuxième chapitre comportera une étude de cas
du questionnaire qui permettra la détermination de l’approche pédagogique approprié à un
apprenant.
16
Bien poser les questions, c'est tout un
art. Où tout dépend, bien sûr, de la
réponse que l'on veut obtenir.
André Frossard
1 Introduction ..................................................................................................................... 17
2 L’élaboration du questionnaire ..................................................................................... 17
2.1 Introduction.............................................................................................................. 17
2.2 Définition................................................................................................................. 17
2.3 Caractéristiques qualitatives du questionnaire......................................................... 17
2.4 Caractéristiques quantitatives du questionnaire....................................................... 18
3 Le questionnaire de détermination de l’approche pédagogique................................. 19
3.1 L’approche par objectif............................................................................................ 19
3.2 L’approche par compétence..................................................................................... 20
3.3 L’approche par collaboration................................................................................... 21
4 L’implémentation du questionnaire .............................................................................. 22
4.1 Introduction.............................................................................................................. 22
4.2 Langage de contrôle floue (FCL) ........................................................................... 22
4.3 Le package jFuzzyLogic.......................................................................................... 22
5 Application....................................................................................................................... 23
5.1 Introduction.............................................................................................................. 23
5.2 Fichier FCL.............................................................................................................. 23
5.3 Etude empirique....................................................................................................... 25
6 Conclusion........................................................................................................................ 27
Etude de cas
1 Introduction
L’une des contributions évoquées dans notre projet est la classification des
apprenants selon leurs approches pédagogiques. Pour ce faire nous allons y procéder par le
biais d’un questionnaire. Comment allons-nous élaborer le questionnaire ? Comment sera
déterminée l’approche appropriée à un apprenant ?
2 L’élaboration du questionnaire
2.1 Introduction
L’élaboration d’un questionnaire autour d’un thème spécifique n’est pas une tâche
facile du fait qu’il ne s’agit pas uniquement de poser des questions, mais aussi de les bien
poser. En effet, il faut savoir ce qu’on vise par une question et comment la formuler. Alors
pour produire un bon questionnaire il faut fouiller dans le domaine et apprendre les étapes
nécessaires.
2.2 Définition
Dans une enquête par sondage, un questionnaire représente une série de questions
écrites ou orales posées aux membres d’un échantillon représentatif pour connaître leurs
opinions sur les sujets abordés par l’enquête [7].
Dans notre cas, il s’agira d’une série de questions à travers laquelle nous
déterminerons l’opinion, la tendance, l’attitude, la préférence d’un apprenant envers chaque
approche pédagogique en appliquant la logique floue. Ensuite, par le biais d’une simple
comparaison, nous déterminerons celle qui lui est la plus appropriée.
17
Etude de cas
celles préétablies et énoncées par le questionnaire. La question fermée peut être à choix
multiples, alors le candidat aura la liberté de choisir une ou plusieurs réponses, ou à choix
unique où le candidat doit choisir uniquement une et une seule réponse.
La question fermée, quelle soit à choix unique ou multiple est mieux interprétée lors
d’un traitement spécifique d’où la tendance des questionnaires vers l’utilisation de ce type de
question. En effet, vu que la question fermée admet une cardinalité de réponse limitée, il sera
facile de réaliser les calcules souhaités.
Puisqu’il s’agit d’un calcul de préférence, nous devons fixer une échelle pour les
questions qui vont être posées aux apprenants. En se référant à TAM, l’échelle comportera
sept graduations à savoir, totalement en accord, moyennement en accord, peu en accord, ni en
accord ni en désaccord, peut en désaccord, moyennement en désaccord et totalement en
désaccord. Cette échelle permet non seulement d’exprimer l’avis du candidat mais aussi de
mesurer l’intensité de son opinion.
Selon TAM, pour élaborer un questionnaire sur un thème spécifique, il faut tout
d’abord dégager les caractéristiques déterminantes du thème. Ensuite sur chaque
caractéristique, poser un nombre de question. Ce nombre était inconnu au début des travaux
empiriques de Fred Davis, puis le fondateur de TAM à démontré que le nombre quatre est
l’optimal [11]; il est le nombre minimal de question qui assure la bonne expression de
l’opinion du candidat envers la caractéristique en question.
Dans notre cas il s’agit de calculer la préférence d’un apprenant envers les approches
pédagogiques visées par le questionnaire. Pour cela, nous allons fixer quelques règles. La
première concerne le nombre de questions par caractéristique qui doit être identique pour
assurer l’équilibre du questionnaire. Le nombre de questions par caractéristique sera fixé à
18
Etude de cas
quatre puisqu’il est l’optimum. La seconde règle énonce que chaque approche doit contenir le
même nombre de caractéristiques pour assurer l’objectivité.
Dans le premier chapitre, nous avons définie chaque approche et nous avons détaillé
leurs caractéristiques. Nous énonçons rapidement les caractéristiques fondamentales et
déterministes de chaque approche ainsi que leurs questions relatives.
Apprentissage individuel
Je crois que les sciences qui sont relatives admettent des problèmes qui se résolvent
par les mêmes méthodes.
Je préfère le travail méthodique et logique sans pour autant se référer au monde réel.
Je préfère l’application des théorèmes même s’ils sont ‘parachutés’ (je ne connais
pas ses précédences logiques).
19
Etude de cas
Je préfère la résolution des problèmes relatifs au monde réel et qui admettent des
significations réelles.
J’aime beaucoup appliquer mes compétences pour résoudre des problèmes pratiques
et réels.
J’ai tendance à appliquer mes compétences requises sur des problèmes similaires et
pratiques à la fois.
J’ai tendance à résoudre les problèmes qui nécessitent des compétences multiples et
diverses.
Je m’entends mieux avec des gens qui aiment développer différentes capacités et
compétences.
Chaque groupement de situations similaires peut être considéré comme une famille
de situation.
20
Etude de cas
J’aime travailler de façon individuelle pour atteindre le but visé par les membres du
groupe.
Je préfère effectuer moi-même tout le travail et partager les idées et les résultats avec
les autres membres du groupe.
Lors d’un traitement d’un problème, j’ai tendance à vérifier mes résultats avec les
membres du groupe de travail.
Je préfère fixer un but commun et chacun des membres du groupe collabore afin d’y
atteindre.
J’ai tendance à orienter mes efforts vers l’atténuation du but commun de mon
groupe de travail.
Partage de connaissance
J’aime publier gratuitement mes travaux afin que tout le monde puisse y accéder et
s’en bénéficier.
21
Etude de cas
4 L’implémentation du questionnaire
4.1 Introduction
Cependant, il est indispensable de noter que le langage ‘FCL’ n’admet pas d’API qui
permet de le manipuler. Cela signifie que si on désire effectuer des testes, on ne peut pas le
faire puisqu’il n’y a pas d’interface qui le permet. De ce fait nous sommes obligés d’utiliser
un API indépendant ou d’en créer un.
22
Etude de cas
5 Application
5.1 Introduction
Dans notre cas, nous allons, en premier lieu, calculer la tendance d’un apprenant
envers une caractéristique bien déterminé. Pour ce faire, nous devons récupérer les réponses
aux questions relatives à cette caractéristique. Ces réponses constituent les entrées de notre
fichier ‘FCL’. La variable de sortie sera la préférence de cette caractéristique. Ensuite, nous
devons spécifier les termes linguistiques et leurs fonction respectives pour les entrées aussi
bien que pour la sortie. Les termes linguistiques sont l’accord, le désaccord et la tendance ou
la neutralité de l’apprenant envers une caractéristique. L’accord comportera trois degrés à
savoir totalement en accord, moyennement en accord et peut en accord, et pareillement pour
le désaccord qui comportera à son tour trois degrés à savoir totalement en désaccord,
23
Etude de cas
moyennement en désaccord et peut en désaccord, tant disque le terme moyen comportera une
partie de l’accord et une parie du désaccord. En assemblant les degrés de l’accord, du
désaccord et du moyen on obtient sept graduations qui constituent l’échelle de tendance
présentée par Davis.F lors de l’élaboration de TAM [12].
Une fois les variables d’entrée et de sorties définies, nous devrons fixer la méthode
d’activation et la méthode d’accumulation. Par la suite nous devrons énoncer les règles de
calcul de préférence qui seront appliquées sur les entrées. Ainsi on obtient le résultat souhaité.
Nous notons que notre fichier ‘FCL’ utilise le Centre de Gravité comme méthode de calcul
qui est mentionnée au part avant dans le bloc DEFUZZIFY_PREFERENCE.
24
Etude de cas
Il ne reste maintenant que projeter le centre de gravité obtenu sur l’axe des abscisses.
Cette projection nous permet de déterminer la valeur de la préférence de l’apprenant envers
une telle approche.
25
Etude de cas
Résultats
Ap. Par objectif 1 7 4 1 4
26
Etude de cas
Abréviations Acronymes
6 Conclusion
27
La justesse de raisonnement a ses règles et sa
physionomie; la justesse de conception n'en a pas.
Mais elle est bien supérieure à l'autre.
Joseph Joubert
1 Introduction ..................................................................................................................... 28
2 Présentation d’UML ....................................................................................................... 28
3 Conception Généralisée .................................................................................................. 29
3.1 Diagramme de classe ...................................................................................................... 29
3.2 Diagramme des cas d’utilisation..................................................................................... 31
4 Conception focalisée........................................................................................................ 33
4.1 Diagramme de classe ............................................................................................... 33
4.2 Diagramme de séquence .......................................................................................... 34
4.2.1 Inscription et authentification ........................................................................... 34
4.2.2 Réponse à un questionnaire .............................................................................. 35
4.2.3 Création d’un questionnaire.............................................................................. 35
4.2.4 Interaction entre le client et le service web ...................................................... 36
5 Conception de la base de données.................................................................................. 38
6 Conclusion........................................................................................................................ 39
Conception UML
1 Introduction
La conception est une phase qui précède la réalisation d’un projet. Cette phase est
indispensable pour le succès du projet du fait qu’elle assure la cohérence entre la spécification
des besoins et le produit final.
2 Présentation d’UML
La grande diversité des documentations qui existent sur le marché et qui concernent
UML indiquent différentes dates d’apparition d’UML. Il y en a qui indiquent que l’apparition
de ce langage était en 1976 avec l’implémentation des concepts fondateurs de l’approche
objet, d’autres indiquent des dates même antérieures à celle là. Mais ce qui est en commun
entre tous les documents est l’année 1995, quand Booch et Rumbaugh (et quelques autres) se
sont mis d’accord pour construire une méthode unifiée, Unified Method 0.8. En 1996,
Jacobson les a rejoints pour produire UML 0.9 (notez le remplacement du mot méthode par le
28
Conception UML
mot langage, plus modeste). Les acteurs les plus importants dans le monde du logiciel
s’associent alors à l’effort (IBM, Microsoft, Oracle, DEC, HP, Rational, Unisys etc.) et UML
1.0 est soumis à l’OMG. L’OMG (Object Management Group), l’organisme qui fédère
aujourd’hui plus de 850 acteurs du monde informatique, adopte en novembre 1997 UML 1.1
comme langage de modélisation des systèmes d’information à objets. La version d’UML en
cours à la fin 2006 est UML 2.0 et les travaux d’amélioration se poursuivent. L'OMG diffuse
depuis Novembre 2007 la version UML 2.1.2 [27]. Actuellement l’OMG diffuse UML 2.2 qui
est en fait une révision de la version précédant. Cette nouvelle version d’UML marque la
naissance du quatorzième diagramme à savoir, le ‘Profil Diagram’ et qui est classé parmi les
diagrammes de structures. [31]
3 Conception Généralisée
3.1Diagramme de classe
Notre projet illustre six entités qui sont en interaction. Le diagramme de classe
présenté ci-dessous présentera alors les différentes entités, leurs attributs ainsi que leurs
méthodes. De plus, le diagramme de classe montre l’interrelation entre les différentes entités.
Le questionnaire constitue à son tour une entité importante dans nos travaux
puisqu’il forme l’outil d’extraction d’informations qui servirons par la suite aux traitements
souhaités. Alors, pour qu’il soit cohérent, le questionnaire doit avoir un certain nombre de
caractéristiques déterminées à l’avance, et qui sont d’ailleurs détaillées dans le deuxième
29
Conception UML
chapitre. Cependant, nous allons, en outre, ré-illustrer d’avantage ces caractéristiques dans un
paragraphe ultérieur qui servira à détailler la classe questionnaire.
Le questionnaire est crée par un pédagogue qui peut être à son tour un utilisateur.
Ceci explique le lien d’héritage entre le pédagogue et l’utilisateur. En plus des fonctionnalités
de l’utilisateur, le pédagogue a le privilège de proposer un questionnaire en fournissant les
informations nécessaires. En effet, notre service web offre l’opportunité au pédagogue de
choisir le mode de l’utilisation du service entre un mode simple dans lequel il donnera le
minimum d’information sur le questionnaire qu’il veut créer, et le mode expert qui demande
une expertise non seulement dans le domaine de la pédagogie mais aussi dans le domaine des
mathématiques et plus précisément dans le domaine de la logique floue. La version expert de
notre service web permet ainsi l’obtention des résultats plus raffinés que la version novice,
vue le nombre et la qualité de l’information requise. Ce raffinage influence en conséquence la
qualité du questionnaire produit.
30
Conception UML
31
Conception UML
L’administrateur gère les apprenants et les pédagogues. Dès qu’il soit authentifié, il
sera capable de valider les comptes des nouveaux inscrits ou de supprimer des comptes.
32
Conception UML
4 Conception focalisée
Chaque catégorie est composée d’un ensemble de question que chacune, à son tour,
est constituée d’en ensemble de termes linguistiques. Chaque terme est défini par une fonction
mathématique prédéfinie et un ensemble de points caractéristiques pour former une courbe.
Cette courbe servira par la suite à la fuzzyfication de la réponse relative à la question ainsi
qu’à la defuzzyfication de la sortie.
L’ensemble de règle servira pour déterminer la sortie en fonction des entrées, tout en
appliquant les méthodes définies dans la classe méthodes.
33
Conception UML
Lors de la consultation de la plate forme pour la première fois, le consultant est invité
à s’inscrire à la plate forme afin de se profiter de toutes les fonctionnalités disponibles. Pour
ce faire, ce dernier doit fournir quelques coordonnées à travers le remplissage d’un formulaire
donné par la plate forme. Une fois cette étape achevée, l’apprenant doit attendre la validation
auprès de l’administrateur. Si la décision est positive, l’inscription est validée, le nouveau
inscrit peut accéder à son compte à travers ses paramètres fixés au part avant dans la phase
d’inscription. Nous notons que l’inscription d’un apprenant est similaire à celle d’un
pédagogue sauf que la différence réside dans la validation. En effet, un apprenant est
généralement validé sans aucune exigence, cependant pour les pédagogues, l’administrateur
doit s’assurer de leurs habilitations.
34
Conception UML
Dès qu’il valide sa création, les paramètres saisis sont envoyés au service Web afin
de créer le FCL relatif au questionnaire. Ensuite la plate forme propose une simulation
chronologique du questionnaire et demande l’accord du pédagogue pour l’enregistrement de
son questionnaire.
35
Conception UML
Dans ce paragraphe, nous allons descendre dans les détails technique afin
d’expliquer l’interaction entre l’application cliente et le service web hébergé dans un serveur
distant et qui communique à travers le web. Nous prenant le cas d’utilisation le plus répétitif
qui est la réponse à un questionnaire.
36
Conception UML
Figure 14: Diagramme de Séquence d’interaction utilisateur, plate forme et service Web.
37
Conception UML
Pour sauvegarder les questionnaires élaborés par les pédagogues, nous avons besoin
d’une base de données qui permet l’historisation. La deuxième fonction que doit assurer est la
sauvegarde de la préférence d’un apprenant lors de la réponse à un questionnaire.
La deuxième table comportera toutes les caractéristiques d’un questionnaire tels que
son nom, sa description, le nombre de catégories, le nombre de niveaux d’évaluation de
réponse, les questions, son code FCL, ainsi que sa date de création. Pour le code FCL, nous
avons deux choix : soit enregistrer le code dans un fichier qui a l’extension ‘.FCL’ et
enregistrer son nom dans la base de données afin de pouvoir y accéder, soit enregistrer le code
dans une chaine de caractère et l’enregistrer directement dans la base de données et la
convertir par la suite en un système d’inférence flou FIS. Malgré que le premier choix s’avère
l’optimale (pas de gaspillage de mémoire au niveau de l’allocation de l’espace nécessaire à
l’enregistrement du code FCL et qui est une allocation statique dans le cas de la base de
données), nous allons utiliser la deuxième alternative pour deux raisons ; la création et le
chargement des fichiers ainsi que la transformation du code FCL en système d’inférence flou
FIS augmentent la latence du réseau et peuvent en conséquence engorger le serveur surtout
lors d’un accès concurrent au ressources. En deuxième lieu, en cas de panne, il sera plus facile
de récupérer une base de données dans un seul fichier que d’aller chercher tous les fichiers
FCL créé.
38
Conception UML
Cette ressemblance vérifie, en effet, la cohérence entre nos différentes perceptions de notre
projet.
6 Conclusion
39
Faire aisément ce que d'autres trouvent
difficile à réaliser, c'est le talent; faire ce
qui est impossible au talent, c'est le génie.
Henri Frédéric Amiel
1 Introduction ..................................................................................................................... 40
2 Projection de la conception sur la pratique ................................................................. 40
2.1 La phase de l’inscription.......................................................................................... 41
2.2 Validation des inscriptions ...................................................................................... 42
2.3 Authentification et connexion à l’espace personnel ................................................ 43
2.4 Elaboration d’un questionnaire................................................................................ 45
2.5 Réponse à un questionnaire ..................................................................................... 50
2.6 Gestion du compte personnel................................................................................... 51
3 Tests et vérification ......................................................................................................... 51
4 Planification du projet .................................................................................................... 53
5 Conclusion........................................................................................................................ 53
Implémentation
1 Introduction
Dans cette partie nous allons montrer l’application de point de vue fonctionnel. En
effet, nous représenterons, entre temps, la fidélité de la réalisation par rapport à la conception,
les contrôles de l’introduction des données assurant d’une part l’intégrité de données et
d’autre part l’interactivité de l’interface graphique. Nous présenterons en premier lieu, la page
d’accueil de l’application et par la suite les différents panneaux assurant ses fonctionnalités.
40
Implémentation
L’administrateur est le seul acteur qui a la main sur la liste des nouveaux inscrits. Ce
dernier accède à l’espace de gestion des nouveaux abonné à travers un lien qui est inclut dans
son espace de travail. Dès qu’il consulte cet espace, une liste contenant les nouvelles
demandes d’inscription est affichée. L’administrateur peut alors valider ou supprimer les
demandes, soit une par une ou par lot en cochant les cases à cocher et en appuyant ensuite sur
le bouton correspondant. Nous notons dans ce contexte qu’une demande rejetée signifie que le
nouvel abonné ne pourra jamais se connecter avec les coordonnées présentées dans cette
demande. Une demande acceptée permet automatiquement la validation du compte en
question et son propriétaire peut se connecter à son espace personnel et se bénéficier en
conséquence de toutes les fonctionnalités qui lui sont offertes selon le type de son compte. La
validation d’un compte pédagogue est généralement plus délicate que la validation d’un
compte apprenant du fait que l’administrateur doit s’assurer de l’identité et les compétences
recommandées pour s’inscrire en tant qu’un pédagogue et proposer ainsi les questionnaires.
42
Implémentation
Tous les acteurs humains de la plate forme passent par l’étape de l’authentification
pour pouvoir accéder à leurs espaces de travail. Bien évidement, cette phase consiste à
introduire le nom utilisateur et le mot de passe.
43
Implémentation
Pour les utilisateurs qui ont oublié leurs mots de passe, il suffit de cliquer sur le lien
correspondant. Un utilisateur est redirigé dans une autre page pour introduire ses
coordonnées. Si les coordonnées introduites sont correctes, la plate forme lui envoie un
message électronique contenant son mot de passe oublié. Nous notons dans ce contexte que
certains serveurs de messagerie considèrent un tel message comme étant un courrier
indésirable.
44
Implémentation
Figure 20 : Exemple de réception d’un mot de passe oublier par un courrier électronique.
Dans ce qui suit nous allons considérer un utilisateur pédagogue puisqu’il est capable
d’élaborer et de répondre à la fois aux questionnaires. Nous supposons entre temps que le
pédagogue en question est inscrit, validé et connecté.
46
Implémentation
En cas d’erreur lors de la construction d’un règle il est possible soit de réinitialiser la
construction si la détection de l’erreur s’est réalisée avant la validation de la règle, soit de la
supprimer après la validation à travers sa sélection et l’appui sur le bouton SUPPRIMER
REGLE.
47
Implémentation
Une fois la construction des règles achevée, le pédagogue valide son questionnaire.
Une simulation animée est affichée pour aider le pédagogue à prendre la décision de
l’enregistrement.
48
Implémentation
49
Implémentation
50
Implémentation
Chaque utilisateur a son propre compte. Par suite chaque utilisateur a le droit de
mettre à jour ses coordonnées. Pour ce faire il suffit de cliquer sur le lien Gérer mon compte.
Un formulaire s’affiche dans lequel la plate forme charge les données personnelles de
l’utilisateur en question et lui donne la main pour les modifier. Cependant, pour des mesures
de sécurité, lors du changement du mot de passe, l’utilisateur est invité à introduire lui-même
l’ancien mot de passe. Par la suite l’utilisateur souhaitant changer son mot de passe fourni le
nouveau et le confirme. Un appui sur le bouton envoyer permet d’enregistrer les
modifications apportées au compte et de rediriger l’utilisateur à la page d’accueil de son
espace de travail personnel.
3 Tests et vérification
Dans cette partie nous allons faire les mêmes jeux de tests effectués dans le
deuxième chapitre en sa partie empirique et par la suite nous procèderons à la comparaison.
51
Implémentation
Question 1 1 7 4 2 1
Question 2 2 5 4 1 2
Question 3 5 6 5 3 1
Question 4 7 4 3 4 3
Question 5 1 5 4 2 4
Question 6 1 6 5 4 6
Question 7 2 5 7 4 2
Question 8 4 3 6 2 4
Question 9 5 1 1 4 5
Question 10 3 3 2 2 6
Question 11 2 5 4 7 5
Question 12 2 4 2 4 7
Question 13 4 2 1 4 1
Question 14 6 3 2 6 2
Question 15 6 2 4 7 1
Question 16 6 4 6 3 2
Question 17 6 2 7 3 3
Question 18 5 3 3 6 4
Question 19 7 5 5 4 5
Question 20 1 6 2 4 4
Question 21 2 7 3 6 1
Question 22 3 4 1 7 2
Question 23 4 5 4 3 2
Question 24 3 6 5 4 1
Question 25 4 7 6 2 5
Question 26 5 1 1 4 6
Question 27 3 2 5 2 4
Question 28 2 4 3 4 7
Question 29 5 6 6 3 5
Question 30 6 7 4 2 4
Question 31 7 4 6 4 6
Question 32 1 4 7 3 5
Question 33 2 2 5 2 4
Question 34 3 4 6 4 3
Question 35 4 2 4 2 5
Question 36 1 3 3 4 4
Par Par Par Par Par
Préférence Objectif Collaboration Compétence Objectif Compétence
Les jeux de tests présentés ci-dessus sont identiques à ceux présentés en deuxième
chapitre. L’unique différence réside dans l’expression de la valeur d’une réponse. En effet,
dans le deuxième chapitre, les valeurs sont des termes linguistiques alors que dans ce chapitre
les valeurs des numériques. Si nous comparons les résultats obtenu dans la partie empirique
du deuxième chapitre et les résultats obtenu dans cette partie nous remarquons qu’elles sont
identiques ce qui manifeste la fidélité de fonctionnement du service Web implémenté.
52
Implémentation
4 Planification du projet
Dans cette partie nous allons présenter les différentes étapes achevées afin d’élaborer
notre projet de fin d’études. Nous énoncerons alors en premier lieu les différentes étapes et
nous présenterons en second lieu un chronogramme qui illustre les périodes consommées par
chaque étape. L’axe vertical présente les différentes étapes, tant disque l’axe horizontal
présente l’écoulement du temps par semaine.
Notre projet est passé par six étapes énumérées comme suit :
5 Conclusion
53
A tout problème existe sa solution. A toute
solution peut surgir un nouveau problème.
Daniel Desbiens
1 Introduction .................................................................................................................... 54
2 Problèmes au court du développement sous l’IDE Eclipse ........................................ 54
2.1 Création du fichier FCL de notre questionnaire ..................................................... 54
2.2 Recherche et expérimentation des variables significatives..................................... 55
2.3 Manipulation du code FCL par la programmation JAVA ...................................... 58
3 Exceptions rencontrées lors du déploiement du service Web .................................... 60
3.1 Exceptions liées à la configuration de Tomcat et Axis........................................... 60
3.2 Exception liée à l’inclusion de bibliothèques dans l’application serveur ............... 62
4 Conclusion....................................................................................................................... 64
Résolution des problèmes rencontrés
1 Introduction
Lors de l’implémentation de notre service Web, nous avons dû faire face à divers
problèmes. Ces problèmes peuvent être classés en deux grandes catégories. La première
catégorie, concerne les erreurs qui se sont lancées au court de l’implémentation du service
Web sous l’environnement de travail intégré Eclipse. La seconde catégorie, portera sur les
exceptions rencontrées lors du déploiement du service Web élaboré.
Comme nous avons cité dans les chapitres précédents, la manipulation de la logique
floue nécessite un degré d’expertise assez élevé pour pouvoir comprendre les processus de
fuzzyfication et de defuzzyfication. De plus, nous devons maitriser les spécifications
syntaxiques et lexicales du langage FCL. La contrainte la plus importante dans ce contexte,
est qu’il n’y a pas de document solide qui explique ce langage à part le document fourni par
l’IEC [4,5]. D’autre part, ce langage n’admet pas d’éditeur. Alors nous ne pouvons créer des
codes FCL que par le biais d’un éditeur de texte.
54
Résolution des problèmes rencontrés
Notre problème est de trouver les termes d’entrée qui serviront par la suite à
organiser les réponses des apprenants selon la structure du langage FCL puis procéder à leur
traitement. Nous considérons dans nos démonstrations le questionnaire de détermination de
l’approche pédagogique qui fait part de notre projet.
Nous avons détecté en premier lieu le terme ‘agree’. Ce terme en fait représente le
degré de l’accord d’un apprenant exprimé à travers sa réponse. De plus, la courbe de ce
terme sera une courbe triangulaire s’étalant sur sept niveaux pour garantir le respect du
modèle TAM qui indique sept niveaux de réponses.
Figure 32 : Première version des courbes des termes d’entrée d’une question.
Après quelques essais de réponse au questionnaire nous avons remarqué que les
résultats de notre code FCL ne sont pas exacts. Alors nous avons déduit qu’il ne s’agit pas
uniquement de détecter l’accord de l’apprenant, mais en contre partie il faut détecter l’opinion
réciproque qui est le désaccord afin de garantir un équilibrage au niveau de l’application des
règles. De ce fait nous avons détecté un deuxième terme de qui est ‘desagree’. Ce terme à son
tour s’étalera sur sept niveaux puisqu’il exprime la fonction mathématique symétrique. Par
conséquence, la courbe exprimant le désaccord d’un apprenant sera triangulaire.
55
Résolution des problèmes rencontrés
Figure 33 : Deuxième version des courbes des termes d’entrée d’une question.
Malgré que nous avons équilibré la defuzzyfication des termes linguistique, nous
avons détecté lors de l’expérimentation que les résultats obtenus ne sont pas assez précises. La
solution est d’ajouter un troisième terme pour donner un avis se situant entre l’accord et le
désaccord, pour deux raisons importantes.
La première étant la détection d’une valeur de réponse plus précise surtout lorsqu’il
s’agit d’un chevauchement des courbes des termes linguistique. En effet, ce chevauchement
permet d’exprimer le comportement humain qui est d’ailleurs un comportement flou. Si nous
prenons le cas de la première question, un apprenant peut être en accord avec la méthode
autonome de résolution d’exercice dans certains domaines. Cependant, il préfère résoudre les
exercices d’autres domaines avec un groupe d’apprenant. Ce dernier ne donnera pas en
conséquence, un avis total. A travers la multitude des termes linguistiques, nous
déterminerons une préférence plus proche de ce que l’apprenant veut exprimer. Cependant il
est à noté que le chevauchement exhaustif peut réduire les performances du calcul. Si nous
prenons à titre d’exemple la réponse d’un apprenant à la question1, et si cette réponse est
entre 3 et 5, cette valeur va être projetée trois fois sur les trois courbes. De ce fait nous avons
dû raccourcir l’échelle des courbes de l’accord et du désaccord pour ne contenir que quatre
degré et demi au lieu de sept degrés. La courbe de l’avis moyen couvrira la partie moyenne
entre les deux courbes.
56
Résolution des problèmes rencontrés
Figure 34 : Deuxième version des courbes des termes d’entrée d’une question.
57
Résolution des problèmes rencontrés
Nous avons compris alors que les courbes de sortie doivent non seulement représenter
les différents degrés des avis mais aussi doivent couvrir la surface symétrique par rapport à
l’axe horizontale passant par l’abscisse de l’avis maximal. Par exemple la courbe de ‘agree’
doit être une courbe triangulaire qui couvre l’intervalle [-2, 4] et le sommet admet comme
coordonnées (1, 0). La courbe ‘desagree’, à son tour, est triangulaire et couvre l’intervalle
[4, 10] et admet comme sommet le point de coordonnées (7, 1).
La création d’un système d’interférence flou FIS pour la manipulation du code FCL
est une tache assez compliquée. D’une part il faut respecter la syntaxe du langage FCL sans
pour autant avoir l’aide d’un éditeur puisqu’il n’en existe pas, comme c’est noté dans le
premier paragraphe de cette partie. D’autre part il faut préparer l’interception d’une exception
de type ‘Recognition Exception’. Au début de l’élaboration de notre projet nous n’avons pas
assez de documents qui nous permettent de bien manipuler cette exception. Cependant, après
avoir posé les questions techniques au chef du groupe responsable du développement du
package jFuzzyLogic [19], nous avons compris les démarches utilisées par ce groupe et nous
avons pu élaborer le code qui permettra l’interception de ce type d’exception. En effet il
s’agit de créer un bloc ‘try’ dans lequel nous programmons la création du FIS en question.
Puis nous passons à la création du bloc ‘catch’ dans lequel nous programmons l’interception
et le traitement de l’exception relative à la création des FIS. Pour plus de détails techniques,
veuillez consulter l’annexe D.
Une autre contrainte s’est posée lors de l’élaboration du service Web, du fait qu’il ne
s’agit plus de créer une application locale, mais en effet, de créer un service Web qui sera
58
Résolution des problèmes rencontrés
déployé dans la plate forme Web. De plus ce service Web va manipuler non seulement les
fichiers FCL mais aussi toute une base de données. Pour cela il est plus approprié de créer des
variables de type chaine de caractères (String) qui sauvegardera le FCL créé puis sauvegarder
cette variable dans la base de données. Ainsi il n’y aura qu’un seul accès à la base de données
pour récupérer le FCL souhaité. Cette solution s’avère meilleur que celle qui propose de créer
des fichiers FCL comme en local, puis sauvegarder leurs emplacements dans la base de
données puis effectuer un accès à ce dernier. La première solution assure le minimum d’accès
pour ne pas engorger le serveur hébergeant notre service Web surtout bien qu’il s’agira par la
suite d’un accès parallèle et concurrent au ressources.
Le second problème qui est vraiment critique pour notre projet est l’élaboration d’un
code java qui permet de créer des codes FCL selon les spécifications proposées par un
pédagogues et de les sauvegarder dans des variables de type chaine de caractère puis les
enregistrés dans la base de données.
La première étape de l’élaboration d’un tel code consiste en premier lieu à bien lire les
spécifications du langage FCL [4,5], puis par la suite élaborer un code JAVA qui permettra de
les intégrer dans le bon emplacement.
La seconde étape qui est vraiment la plus difficile est de détecter les codes qui se
reproduisent tels que les codes de création des variables d’entrées ou le code de création des
règles. Par la suite, nous procédons à l’élaboration d’un code qui permet la création
dynamique des codes FCL. Cette dynamique se manifeste par les courbes qui prennent les
paramètres nécessaires et construisent le code FCL.
Dans l’annexe D, nous présentons en détails les codes sources qui permettent de
générer les codes FCL.
59
Résolution des problèmes rencontrés
Dès que nous avons terminé la création de notre application, nous avons essayé de la déployer
dans le serveur Tomcat pour voir son fonctionnement à l’extérieur de l’environnement de
développement.
Figure 37 : Exception lancée lors du déploiement du service Web dans le serveur Tomcat.
Après une recherche exhaustive, nous avons trouvé la source du problème. En effet,
le problème réside dans le processus d’entrée/sortie au niveau du serveur Tomcat. Ce dernier
60
Résolution des problèmes rencontrés
est livré sans un système d’entrée/sortie puissant ce qui a poussé la fondation Apache à
élaborer un package résolvant ce type d’exception, qui est le ‘Common IO’.
Classes de service - avec des méthodes statiques pour effectuer des tâches communes.
Diverses -Filtres pour réalisations des filtres de fichier.
Diverses -Comparateurs pour réalisations de java.util. Comparateur pour des dossiers.
Stream – Stream utilisable, pour l’implémentation de la lecture et de l’écriture.
61
Résolution des problèmes rencontrés
62
Résolution des problèmes rencontrés
ANTLR, un autre outil pour l'identification de langue, (autrefois PCCTS) est un outil
linguistique qui fournit un cadre pour construire des reconnaisseurs (Recognizer), des
compilateurs, et des traducteurs des descriptions grammaticales contenant des actions de Java,
de C#, de C++, ou de python. ANTLR fournit l'excellent appui pour la construction d'arbre,
l'arbre marchant, et la traduction [22].
Ainsi nous arrivons à faire fonctionner le service Web lors de son déploiement dans
le serveur Tomcat. En effet, il y a plusieurs pages qui appellent des méthodes du service Web
parmi lesquelles on cite la page ‘novice2.jsp’. Voici une illustration :
4 Conclusion
Dans ce chapitre, nous avons présenté les problèmes rencontré lors des la création
des code ‘FCL’. Nous sommes arrivés à résoudre ces problèmes et nous avons procédé ainsi à
l’élaboration de l’application qui a un aspect généralisé. Par la suite nous avons présenté les
problèmes rencontrés lors du déploiement de l’application ainsi que les procédures suivies
pour leurs résolutions.
64
Conclusion générale
Par conséquence, nous avons entamé les travaux de projet de fin d’études en
sélectionnant et en compulsant le maximum de documents portant sur les approches
pédagogiques ce qui nous a permis de les définir et de délimiter leurs caractéristiques
principales. Nous notons dans ce contexte que les domaines cognitif et psychologique nous
ont posé d’énormes problèmes de sagacité.
En second lieu nous avons étudié les différentes méthodes de validation et de calcul
afin d’élaborer un questionnaire conforme qui permet de déterminer l’approche pédagogique
appropriée à un apprenant. Cependant nous avons eu des doutes concernant l’application de la
méthode de calcul dans notre contexte. En effet, chaque document portant sur la logique floue
prévient les lecteurs que cette dernière n’est pas toujours applicable. De plus l’utilisation de
cet outil mathématique nécessite une expertise assez importante afin de pouvoir simuler les
résultats obtenus par la réponse au questionnaire. La meilleur solution était donc d’essayer de
faire une étude de cas dans laquelle on applique la logique floue sur notre raisonnement tout
en utilisant le minimum de programmation et en comparant les résultats obtenu avec les
résultats que nous devions obtenir en utilisant la logique ensembliste classique. La partie
expérimentale nous a permis d’acquérir une expertise importante dans le domaine de la
logique floue.
Par la suite, nous sommes passés à la conception du service Web qui accorde la
détermination de l’approche pédagogique d’un apprenant tout en garantissant via cette
65
Conclusion générale
Nous avons prouvé de grands efforts pour entamer la réalisation dans un délai plus
proche afin de passer à l’étape de validation qui est à son tour basée sur la théorie du modèle
d’acceptation de la technologie (TAM). Cette validation nécessite du temps pour la collecte
des résultats, leur filtrage et leur préparation à la phase de calcul, du personnel sur lequel nous
allons effectuer nos tests à travers la proposition du questionnaire et enfin de l’expertise dans
le domaine de statistique qui constituera notre outil de calcul et qui produira par la suite les
résultats qui valideront notre questionnaire. La validation du questionnaire par la méthode
TAM peut être le sujet d’un papier de travaux que nous essayerons de l’élaborer
ultérieurement avec notre encadreur.
Pour conclure, nous citons que notre projet nous a permis d’une part de mobiliser nos
différentes facultés de compréhension et d’intelligence et d’autre part de savoir quoi, où et
quand chercher l’information souhaitée. En effet notre projet qui est polyvalent nous a
poussés à explorer divers domaines qui semblent divergents, mais qui trouvent de notre cas de
figure un meilleur champ de convergence. Cette exploration était structurée et organisée de
façon à préserver le bon enchainement des travaux.
66
Bibliographie
[2] Christoph Fröschl Master’s Thesis , User Modeling and User Profiling in Adaptive E-learning
Systems : An approach for a service-based personalization solution for the research project
AdeLE (Adaptive e-Learning with Eye-Tracking).
[8] Eclipse Platform Technical Overview Object Technology International, Inc. February 2003
updated for 2.1. Originally published July 200. http://www.eclipse.org
[9] Fathi Essalmi, Leila Jemni Ben Ayed and Mohamed Jemni, A Multi-Parameters
Personnalization Approach of Learning Scenarios. Seventh IEEE International Conference on
Advanced Learning Technologies (ICALT 2007).
[10] Florian Casabianca , Introduction aux services web REST avec WCF 3.5.
[11] Fred Davis, Richard P.Bagozzi and Paul R. Warshaw, User acceptance of Computer
Technology: acomparison of two theoretical models.
[12] Fred Davis, User acceptance of information system: the Technology Acceptance Model (TAM)
Working Paper #529, University of Michigan.
[13] Gérard Lécrivain, Analyse des données et enquête par sondage. Université du Littoral Cote
d’Opale.
[15] http://concoursprof.chez.com
[16] http://cueep.univ-lille1.fr
[17] http://ec.europa.eu
[18] http://java.sun.com
[19] http://jfuzzylogic.sourceforge.net
67
Bibliographie
[20] http://tomcat.apache.org
[21] http://ws.apache.org/axis
[22] http://www.antlr2.org/
[23] http://www.commentcamarche.net
[24] http://www.erudium.polymtl.ca
[25] http://www.e-tud.com
[26] http://www.w3.org
[27] http://www.wikipedia.org
[30] Marc Walckiers, Thomas De Praetere , L'apprentissage collaboratif en ligne : huit avantages
qui en font un must.
[32] Ronan HUOT, Merise ou UML : quelle méthode pour les systèmes d’informations ?
68
Conception et modélisation de la base de données de l’application
69
Présentation d’UML
70
Présentation d’UML
Un modèle est donc une vue subjective mais pertinente de la réalité. Il définit une
frontière entre la réalité et la perspective de l’observateur. Ce n’est pas ‘la réalité’ mais une
vue très subjective de la réalité. Bien qu’il ne représente pas une réalité absolu, un modèle
reflète des aspects important de la réalité, il en donne donc une vue juste et pertinente [29].
Dans le cas de conception UML les deux notions présentées ci-dessus sont très
importantes. Nous concluons ainsi que chaque diagramme élaboré est une représentation
normalisé et compréhensibles d’un modèle tel que vue par un concepteur.
Pour une meilleur conception il est préférable d’utiliser tous les diagrammes
disponibles d’UML car certains offrent une vue que d’autres ne le font pas. Cependant dans
certains cas il est suffisant d’utiliser quelques diagrammes mais doivent être claires afin de
garantir la compréhension des développeurs de l’application à programmer.
Bien souvent, la maîtrise d’ouvrage et les utilisateurs ne sont pas des informaticiens.
Il leur faut donc un moyen simple d’exprimer leurs besoins. C’est précisément le rôle des
diagrammes des cas d’utilisation qui permettent de recueillir, d’analyser et d’organiser les
71
Présentation d’UML
besoins, et de recenser les grandes fonctionnalités d’un système. Il s’agit donc de la première
étape UML d’analyse d’un système [28].
Les cas d’utilisation permettent de structurer les besoins des utilisateurs et les
objectifs correspondants d'un système. Ils centrent l'expression des exigences du système sur
ses utilisateurs : ils partent du principe que les objectifs du système sont tous motivés. Se
limitant aux préoccupations ‘réelles’ des utilisateurs, les cas d’utilisations ne présentent pas de
solutions d'implémentation et ne forment pas un inventaire fonctionnel du système. Ils
identifient les utilisateurs du système (acteurs) et leur interaction avec le système et
permettent de les classer et structurer les objectifs du système. De plus ils servent de base à la
traçabilité des exigences d'un système dans un processus de développement intégrant UML
[29].
Il ne faut pas négliger cette première étape pour produire un logiciel conforme aux
attentes des utilisateurs. Pour élaborer les cas d’utilisation, il faut se fonder sur des entretiens
avec les utilisateurs [18].
72
Présentation d’UML
message synchrone : l'expéditeur est bloqué jusqu'au signal de prise en compte par le
destinataire. Les messages synchrones sont symbolisés par des flèches barrées.
message asynchrone : le message est envoyé, l'expéditeur continue son activité que le
message soit parvenu ou pris en compte ou non. Les messages asynchrones sont
symbolisés par des demi-flèches.
message dérobant : le message est mis en attente dans une liste d'attente de traitement
chez le récepteur.
Le diagramme de classes est un schéma utilisé en génie logiciel pour présenter les
classes et les interfaces d'un système ainsi que les différentes relations entre celles-ci. Ce
diagramme fait partie de la partie statique d'UML car il fait abstraction des aspects temporels
et dynamiques.
Une classe est un ensemble de fonctions et de données (attributs) qui sont liées
ensembles par un champ sémantique. Les classes sont utilisées dans la programmation
orientée objet. Elles permettent de modéliser un programme et ainsi de découper une tâche
complexe en plusieurs petits travaux simples.
Les classes peuvent être liées entre elles grâce au mécanisme d'héritage qui permet
de mettre en évidence des relations de parenté. D'autres relations sont possibles entre des
classes, chacune de ces relations est représentée par un arc spécifique dans le diagramme de
classes.
Elles sont finalement instanciées pour créer des objets (une classe est un moule à
objet : elle décrit les caractéristiques des objets, les objets contiennent leurs valeurs propres
pour chacune de ces caractéristiques lorsqu'ils sont instanciés) [27].
73
Environnement de travail
Pour qu’il soit consultable à travers le Web par les clients, un service Web doit être
hébergé dans un serveur Web, dit aussi serveur http. Le serveur web reçoit les requêtes des
logiciels de navigation qui sont classées comme des applications clientes, et leur retourne des
pages au format HTML. Au besoin, il exécute également des programmes chargés, par
exemple, d'interroger des bases de données pour constituer des pages dynamiques [6].
Dans notre projet, nous allons utiliser le serveur Web Apache Tomcat qui est une
implémentation des technologies Java Servlet et Java Server Pages. Le Java Servlet et les
caractéristiques de Java Server Pages sont développés sous le processus de la Communauté de
Java [20]. Tomcat est développé dans un environnement ouvert et participatoire et libéré sous
le permis de logiciel d'Apache. Apache Tomcat est prévu pour être une collaboration des
meilleurs réalisateurs de partout dans le monde [20].
Dans le cadre d’un service web de type WS-*, un serveur http n’est pas suffisant
pour la création et le fonctionnement d’un service web. En effet, pour créer et gérer les
enveloppes SOAP nous avons besoin d’un serveur auxiliaire qui gère ces deux opérations.
Dans ce paragraphe, nous allons présenter les aspects techniques des langages SOAP
et WSDL que nous avons présenté leurs états de l’art dans le premier chapitre. Les détails
techniques sont énoncés tels que présentés par le Consortium W3C.
74
Environnement de travail
WSDL est un format de XML pour décrire des services en réseau comme un
ensemble de points finaux fonctionnant sur des messages contenant des documents orientés
ou des procédures orientées information. Les opérations et les messages sont décrits abstraits,
et bondissent alors à un protocole de réseau et à un format concret de message pour définir un
point final. Des points finaux concrets relatifs sont combinés dans des points finaux abstraits
(services). WSDL est extensible pour permettre la description des points finaux et leurs
messages indépendamment du format du message ou du protocole de réseau employé pour
communiquer [26].
75
Environnement de travail
même afin de permettre son acheminement et son traitement et le modèle de données qui
définit le format du message manifestant ainsi les informations à transmettre.
2.3 AXIS
AXIS est l’acronyme d’Apache eXtensible Interaction System. AXIS est en effet une
implémentation du protocol SOAP. Comme il peut fonctionner de façon autonome en tant que
serveur SOAP ou comme un plug-in d’un moteur de Servlet, et comme il présente un logiciel
totalement libre sous-mis à la licence d’Apache Software Fondation, AXIS est pratiquement
le meilleur choix pour l’élaboration d’un service Web. Nous notons aussi dans ce contexte
qu’AXIS sert, par ailleurs, de convertir les classes java en code WSDL et d’effectuer
l’opération réciproque.
D’autre part, AXIS supporte de différents protocoles réseau tels que le protocole
HTTP, le protocole FTP, le protocole SMTP et d’autres [21], ce qui explique sa robustesse
lors de la sérialisation et la désérialisation des objets java dans des enveloppes SOAP [21] et
assure le bon transport de l’information correcte.
En addition à ces fortes caractéristiques techniques, AXIS est écrit en java et est
élaboré par la fondation Apache, ce qui encourage son utilisation comme un plug-in sous le
moteur de Servlet Apache Tomcat, qui est d’ailleurs supportée par la fondation [21].
La technologie JSP utilise XML comme des étiquettes qui encapsulent la logique qui
produit du contenu pour la page. La logique d'application peut résider dans les ressources
basées au niveau du serveur (telles que l'architecture composante de JavaBeans) auxquelles
la page accède avec ces étiquettes. Et toutes les étiquettes de formatage (HTML ou XML)
sont passées directement de nouveau à la page de réponse. En séparant la logique de page de
sa conception et affichage et en soutenant une conception à base de composants réutilisable, la
technologie de JSP la rend plus rapide et plus facile que jamais pour établir des applications
basées sur le WEB.
76
Environnement de travail
pour prolonger les possibilités d'un serveur Web avec des frais généraux pour l'entretien et le
support minimaux. À la différence d'autres langages manuscrits, les Servlets ne comportent
aucune considération ou modification spécifique à la plate-forme ; ils sont des composants
d'application qui sont téléchargés, sur demande, à la partie du système qui a besoin d’eux.
Ensemble, la technologie de JSP et les Servlets fournissent une alternative attrayante à
d'autres types de programme manuscrit dédié au Web dynamique par l'offre de
l'indépendance de plate-forme, l’exécution augmentée, la séparation de la logique de
l'affichage, la facilité d'administration, l’extensibilité dans l'entreprise et, d'une manière plus
importante, la facilité d'utilisation [25].
4 Eclipse
77
Codes Sources
Dans cette partie nous allons présenter les méthodes les plus importantes de notre
service Web.
public String creationNovice(int nbquest,int nbniv) //création des fcl pour les novices
{
String fcl="FUNCTION_BLOCK testerecri"+"\n"+"VAR_INPUT"+"\n";//declaration fcl
for(int i=1;i<=nbquest;i++)//parcourir le nb de question
{
fcl=fcl+"QUEST"+i+" : REAL;"+"\n";//ajouter le num de question ds input
}
fcl=fcl+"END_VAR"+"\n"+"VAR_OUTPUT"+"\n"+"PREFERENCE :
REAL;"+"\n"+"END_VAR"+"\n";//ajouter le tag output
String e2="TERM agree := (1, 1)("+(((double)nbniv/2)+1)+",0) ;"+"\n"+"TERM
average := (0.5, 0)("+(1+((double)(nbniv-1)/2))+",1)("+(nbniv+0.5)+",0);"+"\nTERM disagree:=
("+((((double)nbniv/2)-1)+1)+",0)("+nbniv+",1);"+"\n"+"END_FUZZIFY"+"\n";//contenue de input
for(int i=1;i<=nbquest;i++)//parcourir le nb de question
{
fcl=fcl+"FUZZIFY QUEST"+i+"\n"+e2;//décrire le contenu de input
}
fcl=fcl+"DEFUZZIFY PREFERENCE"+"\n"+"TERM grande := ("+(1-((double)(nbniv-
1)/2))+",0)(1,1)("+(1+((double)(nbniv-1)/2))+",0) ;"+"\n"+"TERM moyenne := ("+(1-
((double)(nbniv-1)/2))+",0)("+(1+((double)(nbniv-1)/2))+",1)("+(nbniv+((double)(nbniv-
1)/2))+",0) ;"+"\n"+"TERM petite := ("+(1+((double)(nbniv-
1)/2))+",0)("+nbniv+",1)("+(nbniv+((double)(nbniv-1)/2))+",0);"+"\n"+"METHOD : COG;
"+"\n"+"DEFAULT := 0;"+"\n"+"END_DEFUZZIFY";//contenue de output
fcl=fcl+"\n"+"RULEBLOCK No1"+"\n"+"AND : MIN;"+"\n"+"ACT : MIN;"+"\n"+"ACCU :
MAX;"+"\n";//ajout des methodes d’activation et d’accumulation
fcl=fcl+"RULE 1 : IF ";//ajout des règles
for(int i=1;i<nbquest;i++)
{
fcl=fcl+"(QUEST"+i+" IS agree )and";//ajout des réglés
}
fcl=fcl+"(QUEST"+nbquest+" IS agree )"+"THEN PREFERENCE IS grande;"+"\n"+"RULE 2
: IF ";//ajout des régles
for(int i=1;i<nbquest;i++)
{
fcl=fcl+"(QUEST"+i+" IS disagree )and";//ajout des réglés
}
fcl=fcl+"(QUEST"+nbquest+" IS disagree )"+"THEN PREFERENCE IS
petite;"+"\n"+"RULE 3 : IF ";//ajout des régles
for(int i=1;i<nbquest;i++)
{
fcl=fcl+"(QUEST"+i+" IS average )and";//ajout des règles
}
fcl=fcl+"(QUEST"+nbquest+" IS average )"+"THEN PREFERENCE IS
moyenne;"+"\n"+"END_RULEBLOCK"+"\n"+"END_FUNCTION_BLOCK"; //ajout des règles + cloture fcl
return(fcl); //retourner fcl
}
78
Codes Sources
contenue qui va être transformé ultérieurement en FIS. Elle est invoqué si le pédagogue choisi
la version novice pour créer son questionnaire. Selon les valeurs passées en paramètre, les
courbes des termes d’entrée (terme agree, avrege et disagree) et de sortie (terme petite,
moyenne et grande) vont être crées dynamiquement. Nous notons aussi que cette création doit
être conforme au langage de contrôle flou.
79
Codes Sources
Ces méthodes vont êtres chargés de créer les différents compartiments du fcl. Elles
sont appelés lorsqu’un pédagogue choisis la version expert lors de la création de son
questionnaire.
Cette méthode va fusionner les différents parties du fcl et de les retourner dans une
chaine de caractère en incluant les entêtes (FUNCTION_BLOCKResolutionQuestionnaire) et
la fin du FCL (END_FUNCTION_BLOCK).
80
Codes Sources
La méthode determineresultat est très importante dans notre projet. Elle a comme
tâche de déterminer la préférence de l’apprenant selon ses réponses passé en paramètre. Elle
va retourner un tableau de double de taille le nombre de catégorie et contenant la préférence
pour chaque catégorie. La détermination de la préférence se fait à l’aide de la méthode
getVariable("PREFERENCE").getValue(). Puisque on a besoin de la méthode de création de
FIS à partir d’une chaine de caractère, notre méthode doit intercepter l’exception
RecognitionException comme dans les méthodes précedentes.
1.6 Conclusion
Dans cette partie nous avons essayé de présenter les méthodes les plus critiques de
notre service Web. Il est à noter qu’il existe d’autre méthodes mais qui ne représentent pas des
fonctionnalités critiques.
81
Codes Sources
Notre service Web a besoin d’une application cliente pour le manipuler de façon
souple et facile. Pour cela on a développé une partie dite cliente basé sur JSP (Java Server
Page) afin d’assurer ces objectifs.
Dans cette partie nous présenterons en premier lieu la liaison entre service web et
application cliente. Dans un second lieu nous décrirons les méthodes importantes de notre
application. Enfin nous montrerons l’organigramme de notre application cliente avec toutes
ses pages jsp.
La liaison entre service Web et application cliente est assuré avec les useBean. Pour
ce faire il faut inclure l’identifiant, le scope et la classe du useBean dans les pages jsp qui font
appel aux méthodes du service Web. La transformation en useBean est assuré par axis qui est
présenté dans l’annexe C.
Pour faire un appel aux méthodes du service Web il suffit alors de mettre l’id du
useBean suivi du nom de la méthode comme suit.
82
Codes Sources
2.2.1 Javascript
Pour permettre une vérification instantanée des champs de nos formulaires, nous
avons utilisé les trois événements javaScript onKeyUp, onBlur et onChange pour appeler les
méthodes responsables.
<script language="JavaScript">
function verifinom(pseudo)
{
if(pseudo != '')
{
if(pseudo.length<2) //si la longueur de la chaine est inférieur à 2
{
verifnom=1; //variable pour dire qu’il y a un pb avec ce champ
document.getElementById('id_nom').innerHTML='<div
class="champ_invalide"><img src="images/n.gif" /> '+pseudo+' : ce nom
est trop court</div>'; //afficher à coté du champs texte le pb si il est survenue
}
else if(pseudo.length>15) //si la longueur de la chaine est supérieur à 15
{
verifnom=1; //variable pour dire qu’il y a un pb avec ce champ
document.getElementById('id_nom').innerHTML='<div
class="champ_invalide"><img src="images/n.gif"/> '+pseudo+' : ce nom est
trop long</div>'; //afficher à coté du champs texte le pb si il est survenue
}
else
{
verifnom=2; //variable pour dire que le champs est bon
document.getElementById('id_nom').innerHTML='<div
class="champ_valide"><img src="images/o.gif"/> ok</div>'; //afficher à coté du
champs texte que c’est OK
}
}
else
{
verifnom=1; //variable pour dire qu’il y a un pb avec ce champ
document.getElementById('id_nom').innerHTML='<div class="champ_invalide"><img
src="images/n.gif"/> Veuillez entrer votre nom</div>'; //afficher à
coté du champs qu’il est vide et lui demander de l’entrer
}
</script>
Ces fonctions javascript sont définies dans la partie head de nos pages jsp et
permettent de vérifier en temps réelles les différentes possibilités qui peuvent se produire. Il
est à noter que chaque champ de nos formulaires possède une fonction qui le vérifie.
83
Codes Sources
2.2.2 Ajax
L’utilisation d’ajax est très importante puisqu’il est plus puissant que javascript en
termes de fonctionnalités. Par exemple lors de l’inscription, les utilisateurs de la plate forme
ne doivent pas avoir des noms d’utilisateurs semblables. Pour faciliter ce chois notre
application va chercher en temps réel si le nom d’utilisateur entré est disponible. Pour ce faire
l’intervention d’ajax est obligatoire. Nous avons créé une fonction nommée ‘file’ qui appelle
à un autre script de vérification de nom d’utilisateur.
function file(fichier)
{
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();// créer l’objet XMLHttpRequest pour firefox
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");// créer l’objet ActiveXObject pour IE
else
return(false);
xhr_object.open("GET", fichier, false); // method GET
xhr_object.send(null);
if(xhr_object.readyState == 4) return(xhr_object.responseText); // retourner le resultant
else return(false);
}
La page script.jsp va chercher dans la base de donnés si le nom d’utilisateur est disponible.
%>
84
Codes Sources
Cette même procédure va être appliquée pour d’autres champs comme par exemple
lors de la modification du mot de passe puisque l’utilisateur est invité à entrer son ancien mot
de passe et la vérification de ce dernier se déclenche.
Comme les pédagogues doivent entrer les types de fonctions ainsi que leur
cordonnés, la vérification des champs doit être très précise et conforme au type de fonction
choisis. La vérification classique dans ce cas est très difficile voir impossible donc nous avons
décidé d’utilisé les expressions régulières.
L’acteur principal dans les expressions régulières est l’objet RegExp qui contient la
forme du champ à vérifier. Par exemple pour tester si un champ est un entier positif ou négatif
avec une partie flottante il suffit d’écrire sa forme dans l’expression de RegExp puis appeler
la fonction test pour vérifier.
function verifier_num(chaine)
{
var exp=new RegExp("^[+-]?[0-9]+([.][0-9][0-9]*)?$","g");//forme de l’expression régulière
if ( exp.test(chaine) ){return 1; }//retourner 1 si la chaine vérifie l’expression régulière
else {return 2;} //retourner 2 si la chaine ne vérifie l’expression régulière
}
Cet exemple est très simple car dans notre cas nos expressions régulières sont très
complexes. Par exemple si le pédagogue choisit la fonction trapézoïdale comme terme
d’entrés, la forme de nos champs doit être quatre valeur entière séparé par espace et dans
l’ordre croissant.
85
Codes Sources
verifpseudo2=2;
}
else
{
document.getElementById(k).innerHTML='<span class="champ_invalide"><img
src="images/o.gif"/> errur</span>'; ;//autres erreurs
verifpseudo2=2;
}
}
}
La fonction VerifReel retourne deux tableaux. Le premier contient les entiers extrait
et le deuxième contient sa conformité à l’expression régulière. Pour décomposer la valeur
introduite, la fonction VerifReel utilise la méthode split qui est propriétaire au javascript.
86
Codes Sources
function VerifReel(chaine)
{
var exp=new RegExp("[ ]+","g");//délimiteur entre expression régulière
var tabNom=chaine.split(exp); //déclarer un tableau et mettre dedans les sous-chaine extraite
if (tabNom==null) //si le tableau est nul
{
alert("Problème dans l'expression !"); //informer l’utilisateur qu’il y’a un pb dans
//l’affichage
}
else
{
for (var i=0;i<tabNom.length;i++)
{
if(verifier_num (tabNom[i])==1)//vérifier pour chaque sous-chaine est un
//numero en appelant la fonction verifier_num présenté précédemment.
{
//mettre dans le deuxième tab que la sous-chaine est conforme
tab[i]=1;
}
else
{
//mettre dans le deuxième tab que la sous-chaine n’est conforme
tab[i]=2;
}
//affichage=affichage + " ["+ tabNom[i] + "]\n";
}
return (tabNom);//retourner le tableau tabNom
}
}
Ce traitement a été fait pour chacun des termes choisis par le pédagogue à savoir, la
fonction triangulaire, la fonction trapézoïdale, la fonction gaussienne, la fonction cloche
généralisée, la fonction sigmoïdale, les singletons et les morceaux linéaires.
87
Service Service Service
Web Web Web
Service
gerer_compte_p.jsp determination_p.jsp
Web
index.jsp authentification.jsp
modifier_p.jsp BD
BD
mot_passe_oublie.jsp
BD
Service
index_utilisateur.jsp liste_fcl.jsp questionnaire.jsp determination.jsp
mail_mot_passe.jsp BD Web
gerer_compte.jsp
BD
BD
modifier_u.jsp BD
mail_succes.jsp mail_erreur.jsp mail_erreur2.jsp
Légende :
utilisateur_succes.jsp utilisateur_erreur.jsp
: Page d’accueil
suppression.jsp BD
: Interaction avec la base de données
BD
: Redirection
Figure 58 : Organigramme du site Web
Résumé
Mots clés : Service Web, Logique floue, TAM, e-Learning, Personnalisation, Approche
pédagogique.
Abstract
The context of this work is the project of end of studies. The main aim of this project is the design
and the implementation of a Web service for the calculation of the Profile of learner through the
questionnaires. This Web service offers the functionality of the creation of questionnaire. The
responses of a questionnaire are used to calculate the preferences by using the fuzzy logic. In
addition, it gives the hand to its parameter setting to satisfy the needs for the pedagogs according to
their degrees of expertise in fuzzy logic.
Key words : Web Service, Fuzzy logic, TAM, e-Learning, Personalization, Teaching approach.
ّ
ﻣﻠﺨﺺ
ﯾﺘﻤﺤﻮر.ﯾﻨﺪرج ھﺬا اﻟﻌﻤﻞ ﻓﻲ إطﺎر ﻣﺸﺮوع ﻧﮭﺎﯾﺔ اﻟﺪروس ﻟﻠﺤﺼﻮل ﻋﻠﻰ ﺷﮭﺎدة اﻷﺳﺘﺎذﯾﺔ ﻓﻲ ﻋﻠﻮم اﻹﻋﻼﻣﯿﺔ
ﺗﻤﻜﻦ.ھﺬا اﻟﻤﺸﺮوع ﺣﻮل ﺗﺼﻤﯿﻢ و إﻧﺠﺎز ﺧﺪﻣﺔ واب ﺗﻤ ّﻜﻦ ﻣﻦ ﺣﺴﺎب ﺧﺎﺻﯿّﺎت اﻟﻤﺘﻌﻠﻢ ﻣﻦ ﺧﻼل اﻻﺳﺘﺠﻮاﺑﺎت
ﯾﺘﻢ اﺳﺘﻌﻤﺎل اﻹﺟﺎﺑﺎت ﻋﻦ اﻻﺳﺘﺠﻮاب ﻟﺤﺴﺎب اﻟﻤﯿﻮﻻت و ذﻟﻚ اﻋﺘﻤﺎدا ﻋﻠﻰ.ھﺬه اﻟﺨﺪﻣﺔ ﻣﻦ إﻧﺠﺎز إﺳﺘﺠﻮاب
ﻣﻦ ﺟﮭﺔ أﺧﺮى ﯾﻤﻜﻦ ﻟﻠﺒﯿﺪاﻏﻮﺟﻲ ﺗﻜﯿﯿﻒ ھﺬه اﻟﺨﺪﻣﺔ ﺗﻤﺎﺷﯿﺎ ﻣﻊ درﺟﺔ ﺧﺒﺮﺗﮫ ﻓﻲ ﻣﺠﺎل اﻟﻤﻨﻄﻖ.اﻟﻤﻨﻄﻖ اﻟﻐﺎﻣﺾ
.اﻟﻐﺎﻣﺾ
ﺧﺪﻣﺔ واب‘ اﻟﻤﻨﻄﻖ اﻟﻐﺎﻣﺾ‘ﻧﻤﻮذج ﺗﻘﺒﻞ اﻟﺘﻜﻨﻮﻟﻮﺟﯿﺎ ‘ اﻟﺘﻌﻠﻢ ﻋﻦ ﺑﻌﺪ‘ اﻟﺘﺸﺨﯿﺺ‘ اﻟﻄﺮق: اﻟﻜﻠﻤﺎت اﻟﻤﻔﺎﺗﯿﺢ
.اﻟﺒﯿﺪاﻏﻮﺟﯿﺔ