Escolar Documentos
Profissional Documentos
Cultura Documentos
Sujet :
Conception et mise en place dun module pdagogique pour portails communautaire PostNuke
Ralis par : CHAKROUN Mourad Entreprise : Technologie de la Formation et de lApprentissage (TECFA), Facult de Psychologie et des Sciences de lEducation (FPSE), Universit de Genve, Suisse Soutenu le : 31 Mars 2003 Tunis Devant le Jury compos de Prsident : LOUKIL Adlne Examinateur: MADDOURI Mondher Responsable l'entreprise: SCHNEIDER K. Daniel Responsable l'INSAT: LAROUSSI Mona
RESUME
Lenseignement et lducation sont difficilement permables aux nouvelles technologies de linformation et aux applications en ligne. Les expriences ont montr que les systmes informatiss nont pas toujours trouv la formule juste pour tous les contextes de lapprentissage. Beaucoup doutils comme les CBT (Computer Based Training) ont vu le jour et sintgrent parfaitement dans le cadre behaviouriste du e-learning . Ils sont performants pour les enseignements de base (connaissances et procdures lmentaires) mais sont peu efficaces pour lapprentissage des matires complexes ou du savoir-faire appliqu ayant des bases socioconstructivistes. De plus, rien ou presque na t prvu pour ce type dapprentissage. Dans la perspective dune meilleure approche pour renverser cette tendance nous en expliquons les raisons. Nous essaierons ensuite de dgager les critres pdagogiques qui feront que lon puisse envisager lemploi efficace des nouvelles technologies de linformation en ducation. Nous nous baserons dans notre dmarche sur le socioconstructivisme, lun des diffrents courants de penses psychopdagogiques qui fait partie du champ dinvestigation des recherches en cours TECFA (Technologies de la Formation et de lApprentissage). Nous en conclurons que des scnarios pdagogiques intressants combinant collaboration et recherche peuvent tre supports par des technologies en ligne naissantes tels que les portails communautaires. Nous dmontrerons ainsi que des portails, comme la plate-forme PostNuke qui est en cours dutilisation TECFA, peuvent trs bien tre utiliss des fins dapprentissage dans lducation Lun de ces scnarios est lArgue Graph. Cest un systme dapprentissage collaboratif qui permettra lenseignant de concevoir des scnarios pdagogiques bass sur linteraction entre individus faisant partie dun groupe pour rflchir un thme particulier et interagir de manire constructive. Nous expliciterons travers ce document les diffrentes caractristiques de lArgue Graph et nous dcrirons les diffrentes tapes de la conception et de la mise en place du systme qui traduira ce scnario en un programme support par la plate-forme PostNuke.
3)
4) 1) 2)
3) 3.1)
3.2)
Description du dveloppement du module ArgueGraph ............................................................................. 41 3.1) Caractristiques du dveloppement dun module PostNuke .............................................................. 41 3.2) Architecture dun rpertoire module PostNuke.................................................................................. 42 3.3) LAPI PostNuke................................................................................................................................. 43 3.3.1) Gestion des erreurs ........................................................................................................................ 44 3.3.2) Statut de lAPI PostNuke : en constante progression .................................................................... 44 3.4) LAPI pnHTML ................................................................................................................................. 44 3.4.1) Exemple de lutilisation de la classe pnHTML ............................................................................. 45 3.4.2) Statut de lAPI pnHTML : progression lente ................................................................................ 45 3.5) Dveloppement du module ArgueGraph ...................................................................................... 46 3.5.1) Le rpertoire ArgueGraph ....................................................................................................... 46 3.5.2) Description du fichier pntables.php ......................................................................................... 47 3.5.3) Description du fichier pninit.php.............................................................................................. 48 3.5.4) Principe de dveloppement ........................................................................................................... 49 3.5.5) Navigation travers les interfaces du module............................................................................... 50 3.5.6) Gestion de la scurit du module .................................................................................................. 51 3.5.7) Gnration des graphes ................................................................................................................. 51 3.5.8) Algorithme de rpartition des groupes en paires ........................................................................... 53 3.5.9) Dcodage des fichiers XML.......................................................................................................... 53 3.5.10) Module WebChat ................................................................................................................ 55
4)
DISCUSSION EST CONCLUSION........................................................................................63 ANNEXES ..............................................................................................................................64 ANNEXE 1 : LE MODULE FAVOURITE LINKS .............................................................65 ANNEXE 2 : LE FICHIER MYCLASS.PHP .....................................................................66 ANNEXE 3 : ANALYSEUR XML ...........................................................................................68 BIBLIOGRAPHIE...................................................................................................................70
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Nous partirons du postulat que tout apprentissage avanc se basant sur Internet doit : Permettre une formation efficace et vitale pour pouvoir survivre culturellement et conomiquement dans le "global village" de demain. Donner une formidable impulsion l'apprentissage de la pense, l'autoformation, mais aussi l'apprentissage actif, constructif, diffrenci et cratif. Prendre en compte les matires enseignes, le mode d'apprentissage et les enseignants eux-mmes. Permettre non seulement le tl-enseignement, mais aussi le dveloppement social et culturel. Motiver et favoriser la communication entre les enseignants, les lves et les parents. L'introduction de rseaux informatiques dans l'enseignement peut constituer un norme facteur de stimulation pour tous les jeunes (Frimout & Wynants 2000). Dans la perspective d'une meilleure approche de ce que doivent permettre ces technologies, il est indispensable de passer en revue les diffrentes thories de lapprentissage et les stratgies pdagogiques qui y sont associes en vue de dvelopper une architecture efficace de formations, officielles et non officielles, qui permettront tant aux enseignants qu'aux lves d'panouir pleinement leurs talents cratifs, sociaux et intellectuels.
2) La notion de CSCL (Computer-Supported Collaborative Learning): de nouvelles perspectives pour lapprentissage en ligne 2.1) Les diffrents courants psychopdagogiques
Il existe, entre tant dautres, quatre grandes coles de pense psychopdagogique qui se prononcent sur les mcanismes dapprentissage et de stratgies pdagogiques. Le bhaviorisme stipule quapprendre signifie acqurir un comportement par le biais de mcanismes de renforcement. Les CBT et plus gnralement l e-learning sont des technologies bhavioristes. Ils sont performants pour les enseignements de base (connaissances et procdures lmentaires) mais sont peu efficaces pour lapprentissage des matires complexes ou du savoir-faire appliqu. Les approches socioculturelles tendent penser que les interactions sociales quun individu exprimente faonnent une partie importante de son apprentissage. Certaines approches de la cognition, quant elles, prnent linsertion de lapprenant dans une communaut de pratique. Enfin, le constructivisme postule que lon construit ses connaissances en faisant ou encore en construisant des objets. Du constructivisme et de la socio-cognition dcoule lapproche socioconstructiviste. 2.1.1) Le socioconstructivisme La dfinition du socioconstructivisme est assez large. Il sagit avant tout dune conception de lapprentissage qui met en avant, dune part, limportance dune construction des connaissances bases sur ce que lapprenant sait dj et, dautre part, linteraction de lindividu avec son environnement social. Ces thories puisent leur source dans le constructionnisme, le socio-culturalisme et la socio-cognition. Bien que prsentant un certain nombre de diffrences, les pdagogies socioconstructivistes ont quelques dnominateurs communs.
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
On peut isoler, avec Wilson et Lowry (2001), trois principes cl pour une utilisation efficace dInternet pour lapprentissage : Fournir un accs des sources dinformation riches ; Encourager une interaction fructueuse avec des contenus ; Amener les sujets relever ensemble des dfis, se soutenir, se rpondre.
Mais il ne suffit pas de placer les sujets dans des situations de collaboration pour quun apprentissage efficace ait lieu. Lenseignant doit mettre en place des scnarios structurs pour obtenir ce rsultat. Un scnario est une squence de phases et de rles spcifiques jouer. La technologie aura donc, dans ce contexte, davantage pour but daider les apprenants mener bien des tches complexes que de dlivrer du matriau de cours (Dillenbourg 2002). Il existe un ensemble important de modles pdagogiques qui sinsrent dans le cadre du socioconstructivisme tels que lapprentissage par projet et lapprentissage collaboratif assist par ordinateur. Un facteur runit ces deux pdagogies : la communaut dapprenants. La communaut est dfinie comme un rseau constitu dindividus ayant des pratiques et des buts communs. Cette communaut va entourer et aider lapprenant construire ses connaissances (Bielaczyc & Collins, 1999). Le facteur communaut est plus prononc dans la pdagogie de lapprentissage par projet dont nous dcrivons les principes gnraux cidessous. 2.1.2) Lapprentissage par projet Lapprentissage par projet est un modle qui se dmarque de lenseignement traditionnel en se recentrant davantage sur lapprenant qui se voit assigner des projets raliser. Les projets permettent ainsi de rendre les apprenants plus autonomes dans le processus dapprentissage et les poussent davantage la recherche, la communication et la collaboration. La notion de projet est par ailleurs centrale dans le cadre des pdagogies socioconstructivistes. Synteta (2001) dfinit lapprentissage par projets comme suit : Des expriences dapprentissage engageantes qui incluent les apprenants dans des projets complexes ancrs dans la ralit et au travers desquels ils dveloppent et appliquent des comptences et du savoir ; Un apprentissage qui incite les apprenants avoir recours de nombreuses sources dinformation et disciplines afin de rsoudre des problmes ;
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Un apprentissage dont les buts sont identifis et formuls, mais par rapport auxquels les enjeux et les rsultats des processus dacquisition des connaissances ne sont ni prdtermins, ni entirement prvisibles ; Des expriences au travers desquelles les apprenants apprennent grer et manipuler des ressources telles que le temps et divers matriaux (logiciels, systmes technologiques). Lapprentissage par projet ncessite donc un investissement important de lapprenant qui doit dterminer la problmatique qui lui est propose travers le projet, suivre un plan de travail dcompos en plusieurs tapes pour aboutir aux rsultats esprs, puiser dans toutes les ressources possibles pour ses recherches, communiquer avec la communaut pour essayer de profiter de lexprience des autres apprenants, collaborer afin de trouver des solutions ensemble travers lchange dides et interagir avec les professeurs pour tout ce qui est suivi temporis du projet.
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
travailler ensemble. Un scnario permet lenseignant dtablir un contrat plus explicite didactiquement avec ses tudiants et de mieux structurer leur mode de collaboration. Ce contrat peut tre vhicul travers une squence dinstructions, ou bien tre englob dans un environnement CSCL. Syntaxe dun scnario CSCL : Un scnario CSCL est une squence de phases travers lesquelles les tudiants doivent passer. Dans un systme informatis, le scnario est sous-tendu par un script qui dtermine le comportement du programme en fonction des diffrentes options. Un script peut tre linaire. La phase (n+1) est toujours prcde par la phase (n). Il peut ne pas tre linaire dans la mesure o les apprenants peuvent sauter quelques phases. Il est cependant plus simple de recourir des scripts linaires. Chaque phase du scnario a cinq attributs : La tche effectuer : rpondre des questions, rsoudre un problme ; La composition du groupe : comment est constitu le groupe, qui est avec qui ; La distribution des tches : qui fait quoi ; Le mode dinteraction : comment communiquent A et B (face face, en ligne, etc.) ; Le temps : dure de la phase, son rang parmi les autres phases. Il existe plusieurs scnarios dapprentissage collaboratif qui peuvent tre intgrs dans lenvironnement dun programme CSCL. Dans le cadre de mon stage, qui sest droul TECFA Seed (Universit de Genve), jai t amen concevoir et mettre en place lun de ces programmes: lArgue Graph. Nous reviendrons plus en dtail sur les principes du script de lArgue Graph dans le chapitre suivant.
10
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Les recherches TECFA couvrent un large champ d'investigation, incluant : les implications cognitives lies aux nouvelles technologies de l'information et de la communication, l'apprentissage collaboratif, les effets cognitifs des logiciels ducatifs, la collaboration assiste par ordinateur, les systmes d'information en ducation, le multimdia, l'apprentissage et l'enseignement distance. Depuis l'automne 1994 TECFA offre un diplme post gradu (niveau DESS) en Sciences et Technologies de l'Apprentissage et de la Formation (le "STAF"). TECFA a apport son soutien de nombreuses formations, et a particip plusieurs projets europens. Depuis sa cration, ce diplme combine activits en prsentiel (6 semaines par an) et squences de formation distance. TECFA a t un pionnier dans la conception d'un campus virtuel favorisant une approche constructiviste. TECFA collabore plusieurs projets de recherches dans le domaine de lducation. TECFA Seed en fait partie. En effet, Seed est un projet europen qui a pour but lintgration du changement culturel dans le systme scolaire travers la gnration de communauts engages dans lintgration des innovations ducatives et technologiques. Ce projet a vu le jour le 1er Avril 2001 et continuera jusqu Avril 2004. Il est compos de 7 partenaires dont 4 universits : lUniversit de Genve, lUniversit dAthnes, lUniversit dHull et lUniversit de Duisburg.
Chaque partenaire du projet sest vu attribuer des tches particulires. TECFA a pris linitiative dlaborer un catalogue regroupant des activits ducatives inspires de scnarios pdagogiques riches pouvant tre adopts par les enseignants.
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
prsentent des caractristiques particulirement intressantes pour servir de support llaboration de scnarios pdagogiques riches (Schneider, Synteta & Fret 2002). Un scnario CSCL, tel que celui de lArgue Graph peut tre traduit sous la forme dun ensemble squence de briques C3MS.
Le catalogue TECFA Seed regroupe un ensemble dactivits et scnarios socioconstructivistes et offre aux enseignants une infrastructure leur permettant de sapproprier cette technologie afin de concevoir des activits de groupe et leurs propres scnarios pdagogiques centrs sur lapprenant. Les activits sont structures sous forme dunits que nous appellerons briques C3MS et qui peuvent tre utilises et assembles dans les portails communautaires. Les professeurs peuvent donc choisir un certain nombre de briques en fonction de leurs objectifs dapprentissage et les assembler dans nimporte quel ordre en fonction de leurs objectifs dapprentissage. 3.3.1) Notion de scnario et dactivits dapprentissage Un scnario pdagogique est compos dun certain nombre dactivits. Chaque activit doit gnrer de la curiosit et de la motivation chez lapprenant. Elle doit tre base sur lexploration, la recherche dinformation, lexprimentation et la formulation dhypothses. Les apprenants doivent tre actifs et cratifs et tre amens discuter et cooprer avec les autres pour trouver des solutions. Chaque scnario sera dcrit dans le catalogue travers six attributs : But : Public: Description: Dure: Notes: tapes: But du scnario (script); La tranche dge laquelle est destine le scnario ; Description du scnario ; Estimation de la dure totale du droulement du scnario ; Eclaircissements ou conseils dutilisation ; Description des diffrentes activits faisant partie du scnario.
ces tapes correspondent un ou plusieurs actes simples ralisables laide des diffrentes briques C3MS.
Chapitre 1 : Cadre du projet 12
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Ce scnario est tir du catalogue officiel TECFA Seed. Il reprend le scnario des listes de rfrences.
Nous remarquons que dans la partie Etapes , le scnario est subdivis en activits simples. Pour ce scnario, lune des activits simples est SearchWeb qui se base sur une brique C3MS de type moteur de recherche. Cette activit, ainsi que toutes les autres sont rfrences par la suite dans le chapitre catalogue des actes simples . Pour lacte simple SearchWeb , le chapitre catalogue des actes simples fournit cette description.
(26) SearchWeb
Rechercher des informations sur Internet Briques C3MS: Search Web Il sagit dutiliser un moteur de recherche. Il est possible dinclure un formulaire directement dans le portail (et de restreindre les domaines recherchs)
Lacte simple SearchWeb est son tour associ une brique C3MS Search Web . Cette brique est rfrence dans le tableau des briques C3MS comme suit :
13
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
3.3.2) Le scnario Argue Graph Le scnario Argue Graph a t inclus dans le catalogue TECFA Seed. Les spcifications du scnario telles quelles apparatront dans le catalogue seront :
LArgue Graph, tel que dcrit dans le catalogue, est le scnario CSCL le plus complexe. Avant de dcrire en dtail la conception du nouveau systme, il nous faut explorer de plus prs les caractristiques et les spcifications du script Argue Graph.
14
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
1) Introduction
Dans cette partie, nous allons nous intresser de plus prs aux spcificits du script Argue Graph. Nous allons dabord dtailler les diffrentes phases qui le composent, nous citerons dans un second temps les spcificits que nous voudrons rajouter par rapport aux anciennes versions et nous conclurons en tablissant un cahier des charges du projet Argue Graph.
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
4. Ds que toutes les paires dtudiants ont rpondu toutes les questions en mode duo, le systme produit un nouveau graphe. Les positions des paires sont dduites de la somme des coordonnes de leurs rponses communes. Sur le graphe apparatront les positions des tudiants lors de la phase solo et les positions lors de la phase duo. Les tudiants constateront lvolution de leurs opinions. Un rcapitulatif du questionnaire et des statistiques concernant la sance Argue Graph coule seront affichs et utiliss par le professeur pour un dbriefing en face--face. 5. Chaque tudiant crit une synthse de tout ce qui sest dit et de ce quil a appris travers son exprience Argue Graph. La synthse doit tre structure dans un cadre thorique introduit par le professeur pendant le dbriefing. Ce script t utilis avec succs pour enseigner la relation entre les thories de lapprentissage et le design des logiciels ducatifs (Jermann & Dillenburg, 1999). Ce script peut tre gnralis dans tous les domaines pour lesquels des thories multiples coexistent. Trois points sont retenir de lArgue Graph: Le script intgre des activits en ligne ainsi que des activits dites face--face ; Le script nest pas 100% collaboratif: il inclue une phase dinteractions entre les tudiants (3) mais aussi des phases individuelles (1 et 5) et une phase collective (4) ; Le but de ce script est de crer des conflits entre les tudiants et de les engager dans des changes dides afin denrichir leur vision dun domaine donn.
17
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
En effet, tout scnario dcrit dans ce catalogue doit pouvoir tre intgr au sein dun portail communautaire sous forme de briques C3MS. Il en dcoule que lintgration dun tel scnario ncessite la programmation dun module complexe compatible avec la technologie du portail qui va lintgrer. Il tait donc ncessaire de reprogrammer lArgue Graph en fonction du portail qui allait lhberger. Sous cette nouvelle forme, lArgue Graph aurait une plate-forme unique qui permettra de lutiliser facilement Il suffira aux utilisateurs dinstaller le portail adquat et dy intgrer le module pour en profiter. Pour TECFA, le portail choisi est le portail PostNuke. Nous y reviendrons plus tard dans la partie ralisation et allons au pralable nous intresser de plus prs cette technologie que sont les portails communautaires.
Typiquement, ces systmes offrent des fonctionnalits comme le weblogging, les news (employ par des nouveaux portails majeurs comme Slashdot), les forums classiques, un calendrier d'vnement, des systmes de partage de liens, etc. En outre, ils mettent en application divers dispositifs dorganisations automatiques bass sur la modration, les calculs et la rputation. Les administrateurs et les utilisateurs peuvent configurer le systme par l'intermdiaire dinterfaces en ligne. Les professeurs sont intuitivement familiers avec beaucoup de ces dispositifs mme sils ne les employaient pas sur un seul systme et/ou sur Internet et ils sont donc disposs les adapter plus ou moins aisment.
18
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
change de connaissances
Toutes les fonctionnalits cites dans ce tableau font que lorsquun internaute passe par un portail communautaire, et mme sil nen est pas membre, son passage est comptabilis et retenu pour les statistiques. Il se passe donc toujours quelque chose dans un portail communautaire (contrairement aux pages Web statiques), ce qui explique la russite de cette technologie. Nous pouvons en outre noter que les outils dcrits dans ce tableau sont en fait des briques C3MS comme les forums ou les Wikis .
19
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Autorisation & Scurit Catgories dutilisateurs de base: administrateur, utilisateur, invit. Droits diffrencis pour chaque application: administration, modification, ajout, consultation, .... Mcanismes dextensions Application Programmers Interfaces (API) pour dveloppeurs Facilit dinstallation Fonctionnalits de base Lengin des nouvelles est au centre (principe dorganisation par section) et chronologique Extensions Beaucoup de petites applications Internet sont en train dtre intgrs dans les portails La plupart des portails ont un site ddi aux extensions. On distingue souvent entre modules officiels, modules bta et modules non supports.
20
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Un portail communautaire est en fait une mosaque de blocs quun administrateur peut modeler sa faon. La figure 7 illustre en gros laspect que peut avoir un portail communautaire.
21
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
22
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
1) Introduction
Dans ce chapitre, nous allons tout dabord spcifier les besoins du module Argue Graph concevoir travers une tude dtaille des fonctionnalits que devra offrir lapplication. Nous enchanerons ensuite par la modlisation des besoins fonctionnels de lapplication qui reprsente en gros la partie conception du projet.
2) Spcification des besoins fonctionnels du module Argue Graph 2.1) Vue globale
Lobjectif de lapplication dvelopper consiste offrir aux professeurs un outil qui leur permette de dployer le script Argue Graph et dorganiser ainsi plusieurs scnarios pdagogiques CSCL. Lapplication devra supporter deux modes de dploiement : Le mode en ligne dans le cas o les apprenants devront discuter, collaborer et chercher des solutions communes distance; Le mode face face dans le cas o les apprenants sont en classe . Ainsi, le professeur aura le choix de faire drouler ses phases 1 ou 3 ou les deux en classe ou la maison . Dun autre cot, lapplication tant destine tre intgre dans un portail communautaire du type PostNuke, elle aura donc deux interfaces principales : une interface administrateur et une interface utilisateur. Linterface administrateur accessible aux professeurs intgrera toutes les fonctionnalits ncessaires la gestion et au dploiement du script Argue Graph. Les fonctionnalits que devra offrir linterface administrateur sont : Gestion des questionnaires : ajout, modification, suppression ; Gestion des scnarios dutilisation : programmation et dprogrammation des scnarios, organisation des groupes dutilisateurs pour chaque scnarios ; Modration des sances : formation de paires de partenaires pour le mode duo (phase 4), accs aux statistiques et aux rsultats des diffrentes phases ; Gestion des tlchargements et les changes de fichiers : cration de fichiers XML partir des questionnaires, publication de ces fichiers afin quils puissent tre tlchargs par dautres professeurs. Linterface utilisateur devra offrir ltudiant ou au participant dun scnario Argue Graph les fonctionnalits suivantes : Une interface conviviale pour le dploiement du scnario : rpondre au questionnaire, collaborer, analyser les rsultats, etc. ; Une interface tlchargements : un espace rserv aux fichiers questionnaires XML publis par les administrateurs du systme.
24
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
25
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Ladministrateur peut dcider si oui ou non, ses URL et notes de soutien doivent tre affiches au moment o llve rpond ses questions o au moment du dbriefing. Pour chaque questionnaire correct et valid, un fichier du questionnaire en XML est automatiquement cre par le module et plac dans un dossier part pour la gestion des tlchargements (voir plus loin). Gnration de questionnaires par copies Ladministrateur pourra copier un questionnaire existant dans la base de donnes. Ceci est possible en recopiant tous les champs du questionnaire source. Gnration de questionnaires par fichiers XML Ladministrateur peut utiliser un questionnaire conu par dautres utilisateurs sur dautres site. Ceci est possible travers des fichiers questionnaire au format XML. Le module pourra tlcharger ces fichiers, les dcoder (parsing), les valider puis les introduire dans la base de donnes du systme. Modification des questionnaires Ladministrateur aura la possibilit de modifier les questionnaires existants. Les modifications portent sur les caractristiques du questionnaire (nom, description, etc.) et sur le contenu (questions et rponses). Il est important de signaler que lorsquun questionnaire a t dj utilis ou lorsquil est en cours dutilisation (ce quon qualifiera de questionnaire actif), il nest pas possible de le modifier pour des raisons de cohrences. Dans ce cas l, il est possible de modifier le questionnaire en procdant une recopie du questionnaire original (voir Gnration de questionnaires par copies). La copie aura videmment un nom diffrent du nom du questionnaire original. Suppression dun questionnaire Un questionnaire ne peut tre supprim que sil nest pas en cours dutilisation. La suppression dun questionnaire entranera automatiquement la suppression de son historique dutilisation et des graphiques qui lui appartiennent. Gestion des sances Argue Graph Nous appellerons sance dutilisation ou sance Argue Graph, le dploiement dun scnario Argue Graph sur un groupe dapprenants. Cette partie gre donc les sances dutilisation des questionnaires. Programmation dune sance Argue Graph Ladministrateur doit slectionner le groupe dapprenants qui devra participer la sance Argue Graph. Le nombre de participants doit imprativement tre pair. Ladministrateur devra aussi dterminer qui modrera la sance. En gnral, cest le professeur qui a cette fonction. Au cas o le nombre dutilisateurs est impair, le modrateur sera amen participer la
26
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
sance Argue Graph pour laquelle il aura deux rles : celui du modrateur et celui de lapprenant. Une fois tout cela valid, la sance est programme et restera en tat dattente dactivation. Les questionnaires ne peuvent tre utiliss deux fois par le mme groupe dutilisateurs. Dprogrammation et suppression dune sance Argue Graph Ladministrateur ne peut dprogrammer une sance que si elle nest pas entame. Il peut cependant supprimer une sance nimporte quel moment. Dans ce cas, tout ce qui se rapporte la sance, comme par exemple les rsultats ou les graphiques, seront automatiquement supprims. Modration des sances Cette fonctionnalit est celle qui se rapporte le plus au dploiement du script Argue Graph. En effet, la modration dune sance Argue Graph consiste lancer et suivre le droulement des diffrentes phases du scnario, choisir et valider la rpartition des groupes en paires lors de la phase 3 et temporiser laffichage des rsultats et statistiques. Il est donc ncessaire de prvoir une classification des diffrents statuts du scnario qui nous permette de dterminer ltat davancement dune sance Argue Graph. Statut des sances Argue Graph Une sance Argue Graph passe par plusieurs tats qui dpendent en fait des cinq phases du script. Une sance programme mais pas encore entame sera note En attente . Une sance acheve sera marque par Termine . Une sance entame mais non termine sera note En cours . Comme la sance En cours passe par plusieurs phases, il est judicieux de subdiviser ce statut en plusieurs tats secondaires qui permettront ladministrateur de savoir exactement o en sont les choses. Nous dressons un tableau qui explicite exactement les diffrents tats et sous-tats dune sance Argue Graph. Nous y dcrivons aussi les conditions ncessaires pour passer dun tat un autre. Etat Code Sous-tat En attente 0 Entame Phase 1 en cours (Mode Solo) Phase 1 termine Rsultats non communiqus Rsultats de la phase 1 En attente de la phase 2 Phase 2 en cours (Mode Duo) Phase 2 termine (Mode Duo) Rsultats non communiqus Termine 2 Code Conditions de passage 11 110 119 12 120 Activation de la sance Tout le groupe a rpondu toutes les questions Rsultats publis Rpartition en paires valide Activation de la Phase 2 Toutes les paires ont rpondu toutes les questionnaires Publication des rsultats finaux
27
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Rpartition du groupe en paires de partenaires Aprs avoir termin ltape solo, les apprenants ne pourront passer ltape duo quaprs que le professeur ait valid la rpartition du groupe en paires. Une liste de paires est automatiquement gnre par un algorithme du module une fois la phase 1 termine. Cette liste pourra tre utilise par le professeur. Nanmoins, celui-ci pourra sil le veut, rpartir le groupe en paires manuellement. Rsultats et statistiques Laffichage des rsultats est trs important lors des deux phases du script. Un bon affichage des rsultats de chaque phase argument par des statistiques, ne peut que favoriser et enrichir davantage les dbats et donc lapprentissage collaboratif. Lors de ltape solo, les rsultats seront affichs sous forme de graphique. Le graphe reprsentera la position de chaque participant par rapport au thme du questionnaire. Nous appellerons ce graphe le graphe solo. Lors de ltape duo, laffichage des rsultats comprendra la liste de toutes les paires dutilisateurs, un accs direct au dtail de leurs rponses et arguments ainsi que le graphique final qui reprsentera les deux positions (Mode Solo et Mode Duo) de chaque participant par rapport au thme du questionnaire. Laccent sera mis sur la variation de la position de chaque utilisateur entre les deux phases. Nous appellerons ce second graphe le graphe duo. Un rcapitulatif du questionnaire ainsi que des statistiques sur les rponses mises lors de la sance alimenteront davantage le dbat. Les rsultats de chaque groupe, sauf en cas de suppression par ladministrateur, sont sauvegards et sont accessibles depuis lhistorique des questionnaires. Gestion des groupes dutilisateurs Cette fonctionnalit ntait pas prvu au dpart. Cependant, nous avons pens que les professeurs auront besoin dutiliser des groupes dtudiants qui ne varient pas souvent. En effet, un professeur ayant par exemple trois classes dtudiants aura, pour des raisons pratiques, tendance toujours recours aux mmes trois groupes pour ses scnarios Argue Graph. Cest pour cela que le module intgrera des fonctionnalits de gestions de groupes dutilisateurs. Les membres des groupes dutilisateurs seront puiss depuis la table des utilisateurs du portail. La rutilisation des mmes groupes pour dautres scnarios en sera davantage facilite. Le gestion des groupes comprendra des fonctionnalits dajout, de modification et de suppression de groupes. Gestion des tlchargements Pour renforcer laspect de collaboration et dchange communautaire, il tait donc ncessaire de prvoir un outil qui puisse permettre aux professeurs de schanger leurs expriences Argue Graph. Ceci sera possible grce au gestionnaire de tlchargements.
28
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Nous savons que lorsque les questionnaires sont valids, des fichiers XML leur correspondant sont automatiquement gnrs. Ladministrateur peut dcider si oui ou non, le fichier peut tre publi sur linterface utilisateur afin quil puisse tre tlcharg par la communaut utilisant Argue Graph. Le gestionnaire de tlchargements est bijectif aussi dans la mesure o il permet de dcoder des fichiers questionnaire XML, de les introduire dans la base de donnes du systme et donc dutiliser des questionnaires trangers . 2.2.3) Interface utilisateur Cette interface est accessible en ouvrant une session sur le portail communautaire et ne ncessite aucune permission particulire. Au lancement de cette interface, lutilisateur (apprenant, lve, tudiant, etc.) a accs une liste de toutes les sances o il est ou a t programm. Le statut de chaque sance affich sur cette liste (voir tableau de la page 27) permettra de diriger lapprenant vers une fonctionnalit de linterface utilisateur. Si ltat de la sance est En attente (Etat 0), lapprenant ne pourra rien faire. Autrement, chaque autre tat ou sous-tat correspond une fonctionnalit que nous dcrivons dans ce qui suit. Rpondre au questionnaire en phase 1 (mode solo) : Etat11 Linterface affiche une question la fois. La page de rponse comprendra la question, les rponses correspondantes, une zone de texte pour les arguments et, si applicable, des notes et des URL de soutien. Lutilisateur peut rpondre aux questions de faon alatoire. Il peut modifier ses rponses tant quil na pas valid et envoy sa copie de rponse au serveur. Rcapitulatif des rponses de la phase 1 (mode solo) : Etat 110 Tant que les autres utilisateurs nont pas termin de rpondre la phase 1 et que ladministrateur na pas valid la rpartition des utilisateurs en paires et publi les rsultats, linterface utilisateur affichera un rcapitulatif des questions, rponses et arguments du participant. Rsultats de la phase 1 (mode solo) : Etat 119 Lutilisateur naccde ses rsultats que lorsque ladministrateur dcide de publier les rsultats de la phase 1. Les rsultats se composent du graphe solo, dun rcapitulatif des questions, rponses et arguments du participant lors de la phase 1 et dun tableau listant la rpartition du groupe en vue de la phase duo. Rpondre au questionnaire de la phase2 (mode duo) : Etat 12 Deux options se prsentent pour rpondre au questionnaire : continuer sur la mme station de travail ou continuer sur celle du partenaire, sachant quune seule copie de rponses sera envoy au serveur. Si le travail est fait en classe et que le professeur insiste pour que les deux partenaires se mettent ensemble pour collaborer et envoyer les rponses communes, lun des
29
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
deux participants quittera son poste et rejoindra son partenaire. Dans ce cas l, il dcidera de continuer sur la machine de son collgue. Si le travail se passe distance, le module devra fournir un outil do communication entre les deux partenaires comme par exemple un simple chat box. L aussi, lun des deux partenaires dcidera de rpondre aux questions pour la paire. Rpondre aux questions deux se droule comme en mode solo, sauf quen plus davoir les questions et les rponses, les deux partenaires ont accs leurs rponses et arguments respectifs de la phase 1. Ceci a pour but de crer un conflit dopinion entre les deux partenaires quil faudra rsoudre en collaborant afin denvoyer une rponse et une argumentation communes. Rcapitulatif des rponses de la phase 2 (mode duo) : Etat 120 Tant que les autres paires dutilisateurs nont pas termin de rpondre la phase 2 et que ladministrateur na pas publi les rsultats, linterface utilisateur affichera un rcapitulatif des questions, rponses et arguments de la paire en phase 2 et des deux partenaires en phase 1. Rsultats et statistiques finaux : Etat 2 Lutilisateur naccde aux rsultats finaux que lorsque ladministrateur dcide de les publier. Les rsultats finaux se composent du graphe duo, dun rcapitulatif des toutes rponses et argumentations lors des deux phases, dune liste des paires qui ont rpondu et dun lien vers une interface statistique.
3) Description de la conception
Une fois les besoins fonctionnels recenss, nous pouvons entamer la phase de conception. Pour la conception du module Argue Graph nous avons opt pour la modlisation UML (Unified Modeling Language). Les raisons qui ont motiv notre choix sont les suivants : UML permet de bien cadrer lanalyse en reprsentant le systme selon diffrentes vues complmentaires aux diagrammes ; UML permet dexprimer et dlaborer des modles objet, indpendamment de tout langage de programmation. Dans cette partie, nous allons reprsenter une perspective du module travers quelques diagrammes UML qui nous serviront par la suite de support pour la phase de ralisation.
30
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Les acteurs (utilisateurs) qui vont interagir avec le module Argue Graph sont: Ladministrateur : cest le professeur, assistant ou encadreur qui va grer les questionnaires et modrer les sances Argue Graph. Les participants : ce sont les apprenants en gnral qui vont participer aux sances Argue Graph. Un administrateur peut participer aux sances Argue Graph. Dans ce cas, il endosse les deux rles prvus pour les utilisateurs de ce module.
Le figure 8 nous donne dj quelques indications sur lune des classes de notre module : la classe utilisateur (user). 3.1.2) Les messages Linteraction entre le systme et les acteurs se fait travers les messages. Un message envoy par un acteur permettra de dclencher une srie dvnements dans le systme. Lactivit du systme gnrera un rsultat transmis lacteur sous forme de message. Le diagramme de contexte dynamique de lapplication permet de visualiser les interactions de lapplication avec les acteurs.
Ajouter un questionnaire Modifier un questionnaire Supprimer un questionnaire Programmer une sance Dprogrammer une sance Former un groupe Former la liste des paires Lancer une sance Publier les rsultats de la phase solo Publier les rsultats finaux ArgueGraph Rpondre au questionnaires en phase1 Rpondre au questionnaires en phase2 Visualiser les rsultats des sances Tlcharger des fichiers XML
Administrator Liste des questionnaires Planning des sances Formulaires pour nouveaux questionnaires Etat d'avancement des sances Liste des Groupes Liste d'utilisateurs Liste de fichiers XML Dtails d'un questionnaire Rsultats finaux Rsultats de la phase solo Planning des sances Questionnaires Rsultats de la phase solo Chat box Rsultats finaux Liste de tlchargements
Participant
31
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Le package Administration du Module regroupe les cas dutilisations qui sont rservs aux administrateurs du module. Ils sont au nombre de trois.
32
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Gestion des questionnaires Ce cas dutilisation regroupe toutes les fonctionnalits de gestion des questionnaires : ajout manuel, ajout par copie, ajout par fichier XML, modification, suppression, validation et activation. Programmation de sances Ce cas dutilisation regroupe toutes les fonctionnalits qui se rapportent la programmation des sances. Nous pouvons encore subdiviser ce cas dutilisation en deux sous-parties : Gestion des groupes de participants : ajout, suppression et modification des groupes ; Programmation des sances : programmation et dprogrammation. Gestion des tlchargements Ce cas dutilisation regroupe toutes les fonctionnalits qui grent les changes des fichiersquestionnaire XML : publication dun fichier, suppression dun fichier et tlchargement dun fichier. 3.2.1.2) Package Dploiement du script
Ce package regroupe les cas dutilisation directement impliqus dans le processus de dploiement du script Argue Graph. Les acteurs de ce package sont les administrateurs pour la modration des sances et les participants aux sances Argue Graph pour le dploiement du script ct apprenant.
Participation la sance
Participation la sance Ce cas dutilisation regroupe les fonctionnalits ncessaires au dploiement du script ct participant : formulaire de rponse en mode solo, affichage des rsultats de la phase solo, formulaire de rponse en mode duo et affichage des rsultats et statistiques finaux. Ladministrateur peut participer lArgue Graph en tant que participant simple. Modration La modration est exclusive ladministrateur. Les fonctionnalits de ce cas dutilisation sont donc: le suivi de la progression du script (pendant toute la dure du scnario), la rpartition du
33
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
groupe dapprenants en paires, la publication des rsultats de la phase solo et la publication des rsultats finaux. 3.2.2) Diagrammes de collaboration Les diagrammes de collaboration dcrivent des interactions entre objets qui peuvent tre des instances de classes ou des acteurs. Ils peuvent nous aider mieux cerner les classes qui vont participer chaque package. Un diagramme de collaboration peut tre obtenu partir dun digramme de squence qui est plus simple raliser. En effet, les diagrammes de squences permettent de reprsenter des collaborations entre objets dun point de vue temporel, on y met l'accent sur la chronologie des envois de messages. Ils sont ainsi plus simples raliser tant donn quils illustrent les cas dutilisation et quils se rapprochent le plus de la faon dont le programmeur conoit le droulement chronologique de son application. Dans ce qui suit, nous prsentons quelques diagrammes de collaboration pour chaque package afin den dduire les classes participantes au module. 3.2.2.1) Package Administration du module
La cration dun nouveau groupe de participants est une des fonctionnalits du package Administration du module . Le diagramme de squence suivant rcapitule chronologiquement les interactions entre les diffrentes classes du module pour aboutir la cration et la sauvegarde dun nouveau groupe de participants.
: Administrator 1: New( )
: Group
: (Us er)
: ArgueGraph
2: Load( )
3: AddUser( )
4: AddGrouptoDB( )
5: New( )
6: ShowGroups ( )
34
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Trois classes participent cette fonctionnalit : la classe utilisateur, la classe groupe et la classe Argue Graph. Des instances de la classe user sont cres et charges partir du code de lutilisateur. Chaque utilisateur est rajout tableau dun Group . La liste est ensuite sauvegarde dans la base de donne laide de la mthode AddGrouptoDB (en 4). Le tout est affich par une instance de la classe ArgueGraph . Le diagramme de collaboration Nouveau groupe est dduit du diagramme de squence.
5: New( ) 6: S howG roups ( )
: A rgueG raph
: A dm inis trator
1: New( )
4 : Ad dGr oupt oDB ( )
3: A ddUs er( )
: G roup
: (Us er)
2: Load( )
3.2.2.2)
Pour ce package, nous prsentons deux diagrammes de collaboration. Le diagramme de collaboration suivant concerne la fonctionnalit Rpondre en mode solo et plus exactement le processus daffichage du formulaire de rponse une question donne en mode solo.
9: ShowAnswersSolo( )
5: Load( ) 8: ShowToUser( ) : Quiz 4: Load( ) : Participant 6: UserLinks( ) : Question 10: QuestionP ositionerSoloMode( )
2: Load( ) 3: CheckStep1( )
1: Load( )
7: Show( )
: Schedule
: ArgueGraph
35
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Pour ce diagramme, cinq classes sont utilises. Afin dafficher le formulaire de rponse, une instance de classe user reprsentant un participant vrifie que celui-ci na pas termin la phase solo dune sance donne (classe Schedule ) laide de la mthode CheckStep1 (en 3). Dans le cas o il na pas encore renvoy sa copie des rponses, un objet ArgueGraph affiche le formulaire de rponse ( ShowAnswersSolo en 9) . Le diagramme de collaboration Rpondre en mode duo est un peu plus complexe.
1: Load( )
4: Load( )
2: Load( ) 5: CheckStep2( )
: Schedule
3: FindPartner( )
12: ShowAnswersDuo( )
: Participant
11: ShowPairAnswers( )
6: Load( )
: Questi on
8: UserLinks( )
13: QuestionPositionerDuoMode( )
: Quiz : ArgueGraph
9: Show( )
Une instance de la classe user reprsentant un participant donn dtermine dabord son partenaire du mode duo grce la mthode FindPartner (en 3). Ensuite, la mthode CheckStep2 (en 5) vrifie que le participant na pas valid sa copie des rponses pour le mode duo. Si ceci savre vrai, une instance ArgueGraph affiche le formulaire de rponse ( ShowAnswersDuo en 12) ainsi que les rponses individuelles de chaque membre de la paire lors du mode solo ( ShowPairAnswers en 11). 3.2.3) Identification des classes Les diagramme de collaboration et les packages des cas dutilisation nous permettent de dterminer les classes qui vont tre utilises dans le module Argue Graph. Classe ArgueGraph Quiz Question Answer User Group Schedule Results XML Description Construction et affichage des interfaces. Classe relative aux questionnaires : gestion et affichage. Classe relative aux questions : gestion et affichage. Classe relative aux rponses : gestion et affichage. Classe relative aux utilisateurs du portail : identification. Classe relative aux groupes de participants : gestion et affichage. Classe relative aux sances Argue Graph : gestion et contrle du droulement des sances, affichage des rsultats et cration de graphes. Classe relative aux scores : calcul des rsultats de chaque tape. Classe relative aux fichiers-questionnaire XML : gestion et dcodage.
36
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Pour le package Administration du module les classes participantes sont traduites sur la figure suivante :
Q u iz q u iz id qnam e d e s c rip t io n u rl n o te xnam e x w e ig h t ynam e y w e ig h t a c t i ve 1
0 ..n
S c h e d u le s c h e d u le id q u iz id m o d e ra t o r g ro u p d a te t im e s ta tu s
P a rt ic ip a t e
G e n e ra t e
1 ..n
En ce qui concerne le package Dploiement du script , les classes participantes sont les suivantes :
Quiz quizid qname description url note xname 1 xweight yname yweight active 1 Schedule scheduleid quizid moderator group date time status
Participate
0..n
User
has
1..n
37
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
3.2.4) Diagramme de dploiement Les diagrammes de dploiement montrent la disposition physique du matriel qui compose le systme et la rpartition des composants sur ce matriel. Les ressources matrielles sont reprsentes sous forme de nuds. Les nuds sont connects entre eux, l'aide d'un support de communication. La nature des lignes de communication et leurs caractristiques peuvent tre prcises. Ils peuvent montrer des instances de nuds (un matriel prcis), ou des classes de nuds.
La figure 19 illustre clairement la relation triangulaire entre le portail, le module et la base de donnes. Ainsi, un client qui se connecte au serveur et qui veut accder au module Argue Graph doit tout dabord sauthentifier au prs du portail. Cette authentification ncessite une connexion entre le portail et la base de donnes. Une fois authentifi, le portail appelle le module Argue Graph qui se charge en information en se connectant de nouveau la base de donnes.
38
Chapitre 4 : Ralisation
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
1) Introduction
Une fois ltude conceptuelle de lapplication acheve, nous entamons la description de la phase de ralisation o nous spcifierons les diffrents outils utiliss et les mthodologies les plus intressantes qui vont permettre la mise en place du module Argue Graph.
2) Environnement technique
Nous prsentons dans cette partie lenvironnement technique du module Argue Graph. Nous soulignons le fait que cet environnement est compos dapplicatifs dits Open Source. Le mouvement Open Source fait qu'il est possible tous d'utiliser et de modifier librement un logiciel. En effet, quiconque est enclin tudier le code source peut le modifier pour l'adapter ses besoins. Lutilisation des logiciels libres va de paire avec lesprit de collaboration et dchange communautaire.
2.1) PHP
PHP (officiellement "PHP: Hypertext Preprocessor") est un langage de script HTML. Le langage PHP possde les mme fonctionnalits que les autres langages permettant d'crire des scripts CGI, comme collecter des donnes, gnrer dynamiquement des pages web ou bien envoyer et recevoir des cookies. Ce qui distingue le PHP des langages de script comme le Javascript est que le code est excut sur le serveur. Ainsi, il n'y a aucun moyen de distinguer les pages qui sont produites dynamiquement des pages statiques. La plus grande qualit et le plus important avantage du langage PHP est le support d'un grand nombre de bases de donnes. Raliser une page web dynamique interfacant une base de donns est donc extrmement simple. Le langage PHP inclus aussi le support des services utilisant les protocoles tels que IMAP, SNMP, NNTP, POP3 ou encore http ainsi que de nombreuses librairies intgres telles que la librairie graphique GD ou la librairie XML. Des connexions et interactions peuvent tres supports utilisant d'autres protocoles. De plus, contrairement dautres langages comme Java, PHP est la port des non informaticiens qui savent programmer. Un diplm en technologies ducatives pourra comprendre du code PHP mais ne pourra gnralement pas intervenir sur du code Java plus complexe.
2.2) PostNuke
PostNuke est un projet de dveloppement qui est apparu partir d'un autre PHP appel PHPNuke aprs que les utilisateurs ont exprim un certain mcontentement lgard de certaines de ses fonctionnalits. PostNuke est un systme de gestion de contenus (CMS : content management system) conu avec le langage populaire PHP. CMS rduit le temps dlaboration, tend sophistiquer le panneau dadministration et spare la forme du contenu permettant le travail dans un environnement structur pour rapidement livrer des contenus tels que les articles, rsums, liens, nouvelles, temps, questions frquemment poses, chat, gestionnaires de dossier tels que les sections de tlchargement La version actuelle de PostNuke (Fvrier 2003) est la 0.723. Elle peut tre tlcharge partir du site www.postnuke.com. Ce site est aussi un espace de validation et dchanges de modules et de blocs pour portails PostNuke.
Chapitre 4 : Ralisation
40
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Le bloc Favourite Links que nous avons dvelopp (voir Annexe 1 page 64) y est rfrenc. Le module Argue Graph le sera bientt. Les principaux critres qui plaident en faveur de lutilisation de PostNuke sont: Un parfait produit/exemple de la communaut open source (implment en PHP et MySQL, trs populaires et standards) ; Architecture modulaire permettant de rajouter facilement de nouveaux logiciels modules ; Soutenu par une large communaut de dveloppeurs ; Possde une interface multilingue (arabe compris). Dans la partie Dveloppement , nous reviendrons plus en dtail sur les principales caractristiques de la programmation sous PostNuke.
2.3) MySQL
MySQL est un systme de gestion de bases de donnes qui est trs rapide, fiable et facile utiliser. Il a t dvelopp l'origine pour grer de trs grandes bases de donnes beaucoup plus rapidement que des solutions dj tablies, et a t utilis avec succs dans des conditions de productions critiques depuis plusieurs annes. En dveloppement constant, MySQL offre aujourd'hui un ensemble de fonctionnalits large et riche. Sa rapidit et sa scurisation en font un outil idal pour les applications Internet. Cest un systme client/serveur qui est constitu d'un serveur SQL multi-threads, qui supporte diffrents clients et librairies, outils d'administration et interfaces.
Chapitre 4 : Ralisation
41
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Pour finir, PostNuke a prvu un rpertoire nomm modules qui regroupe des sousrpertoires correspondant chaque module hberg par le portail. En ddiant un rpertoire unique pour chaque module, PostNuke permet une meilleure maintenance de tout le systme et facilite le processus dinstallation et de dsinstallation de modules tant pour le dveloppeur que pour ladministrateur du site. Nous allons nous intresser de plus prs larchitecture de ce rpertoire, tape cruciale avant de commencer le dveloppement du module.
Le nom du module est trs important. PostNuke dtecte un nouveau module ds linstant o un nouveau sous-rperoire est rajout dans le rpertoire modules . Le nom du rpertoire servira aussi, comme nous le verrons plus tard, pour la reconnaissance des variables et des fonctions du module. Les noms de fichiers et rpertoires reprsentent les fichiers et rpertoires les plus importants pour un module PostNuke. Nous prcisons dans ce qui suit la fonctionnalit de chaque fichier ou rpertoire : pnadmin.php pnuser.php pninit.php pntables.php pnimages pnlang pnblocks
Chapitre 4 : Ralisation
fichier contenant toutes les fonctions dadministration du module ; fichier contenant toutes les fonctions utilisateur du module ; fichier contenant les fonctions dinitialisation du module ; fichier contenant toutes les informations concernant les tables de la base de donne du module rpertoire contenant toutes les images du module ; rpertoire contenant les fichiers de traductions du module ; rpertoire contenant les fichiers concernant le bloc du module.
42
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Le rpertoire pnlang a aussi une structure particulire que nous rvlent les deux figures suivantes.
Le rpertoire pnlang doit contenir au moins un sous-rpertoire qui corresponde une langue donne. Pour que le module ArgueGraph apparaisse en anglais, un sous-rpertoire eng (figure 22) doit tre cr. Pour quune langue donne soit reconnue par le portail, le nom du rpertoire qui la reprsente doit tre conforme aux standards dappellation PostNuke. Pour que le franais soit pris en compte, le rpertoire de traduction doit tre nomm fra ; pour lallemand deu , etc. Le contenu de ce rpertoire est explicit sur le schma suivant :
Un rpertoire langue doit imprativement contenir les deux fichiers suivants : admin.php user.php contient la traduction du texte affiche par linterface administrateur; contient la traduction du texte affiche par linterface utilisateur.
Des fichiers et rpertoires additionnels peuvent tre rajouts comme le montre la figure 21 (page prcdente). Il est cependant impossible au systme daccder aux fonctionnalits du module si les fichiers ou rpertoires obligatoires ont des noms diffrents. Nous reviendrons plus loin sur les caractristiques des fichiers numrs dans cette partie.
Chapitre 4 : Ralisation
43
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
3.3.1) Gestion des erreurs PostNuke est capable de grer les erreurs laide dun systme de gestion dexceptions puissant qui comble les lacunes du langage PHP. PostNuke classe les exceptions en deux catgories : les exceptions-systme et les exceptions utilisateur. Les exceptions systme sont utilises par les fonctions de lAPI PostNuke, mais peuvent tout aussi tre utilises par le programmeur. Par exemple, il est vivement conseill dutiliser lexception DATABASE_ERROR quand une erreur de base de donnes se produit. Il est aussi recommand dutiliser lexception BAD_PARM lorsque de mauvais paramtres sont passs aux fonctions des modules dvelopps. Les exceptions utilisateur sont celles que les dveloppeurs crent. 3.3.2) Statut de lAPI PostNuke : en constante progression LAPI PostNuke ne comporte pas actuellement toutes les fonctionnalits que souhaiteraient les dveloppeurs. Grce la communaut PostNuke, il est possible aux chercheurs et aux dveloppeurs de proposer des ides nouvelles de fonctions encore non disponibles, de les dvelopper, de les soumettre aux tests et aux essais, de les valider et de les rajouter lAPI existant. Les recherches sont en cours et lAPI ne cesse de senrichir.
Tableau 2 : Equivalence des mthodes pnHTML et des balises HTML Nous remarquerons que lutilisation de ses mthodes pour la cration dinterfaces se rapproche un peu de la programmation dinterfaces en Java.
Chapitre 4 : Ralisation
44
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
3.4.1) Exemple de lutilisation de la classe pnHTML Dans lexemple suivant, nous prsentons une fonction qui permet de crer, de remplir et dafficher un tableau.
Dans cet exemple, un objet output de la classe pnHTML reprsentant une nouvelle interface est cre. Les mthodes TableStart(), TableAddRow() et TableEnd() sont utilises pour construire le tableau. Pour que le tout soit affich, la mthode GetOutput() est appele. 3.4.2) Statut de lAPI pnHTML : progression lente LAPI pnHTML na pas beaucoup volu depuis les premires versions de PostNuke. Aussi, la documentation est quasi inexistante ce qui est prjudiciable dans la mesure o certaines mthodes sont encore ambigus. Dans la figure 24, deux mthodes sont utilises pour dterminer la disposition des lments graphiques sur linterface. Ces mthodes sont SetOutputMode() et SetInputMode() . Elles agissent sur la manire dinterprter le texte afficher qui dpend des quatre constantes suivantes: _PNH_RETURNOUPUT, _PNH_VERBATIMINPUT, _PNH_KEEPOUTPUT, _PNH_PARSEINPUT. Prenons lexemple de la figure 24 : si lon oubliait la ligne de code encercle, le champ formulaire texte serait plac en dehors du tableau. A ce jour, aucune explication nest fournie concernant lutilisation de ces mthodes ce qui fait que pour crer des interfaces, il faut procder par hasard pour trouver la bonne configuration qui permette daboutir une prsentation quelque peu convenable. Par ailleurs, plusieurs fonctionnalits manquent encore comme celle de pouvoir lancer des URL sur une nouvelle fentre du navigateur. Ceci est en partie li au fait que la notion du target=_blank nest plus supporte par le XHTML. Il est cependant possible de remplacer ces attributs par du JavaScript. Une autre fonctionnalit importante nest toujours pas disponible : on ne peut pas afficher des images avec du pnHTML. Tout ceci nous a pos problme chez TECFA, tant dans le cadre du dveloppement du module ArgueGraph que dans le cadre dautres projets. Pour y remdier, nous avons cr deux nouvelles mthodes inspires du pnHTML, la premire pour afficher des images (myImg()) et la seconde pour lancer des liens dans de nouvelles fentres (myURL()). Une nouvelle classe nomme myClass, tendant la classe pnHTML, a t cre et a inclus ces deux mthodes. Nous avons aussi rajout une troisime mthode hybride (myImgURL()) qui permet de crer des liens image (voir annexe). Ces fonctions nous ont permis dajouter une touche de convivialit aux interfaces conues.
Chapitre 4 : Ralisation
45
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
En plus des fichiers et rpertoires traditionnels, nous avons prvu un fichier pour chaque classe issue de ltude conceptuelle du systme. Nous avons aussi rajout quelques rpertoires supplmentaires que nous dcrivons dans ce qui suit. Le fichier Class_MyHTML.php se rapporte la classe myClass qui tend la classe pnHTML. Le fichier contient les trois nouvelles mthodes rajoutes au pnHTML que nous avons dcrit prcdemment ( au 3.4.2 de ce chapitre). Le rpertoire graphs contient les graphes qui sont gnrs pour chaque sance Argue Graph. Les graphes sont maintenus tant que les sances sont sauvegardes dans lhistorique de lapplication. Le rpertoire xmlfiles contient tous les fichiers-questionnaire en XML qui sont automatiquement gnrs lors de la validation dun questionnaire. Le rpertoire downloads contient tous les fichiers-questionnaire en XML qui sont destins au tlchargement et qui vont tre lists sur linterface utilisateur. Le rpertoire uploads contient tous les fichiers-questionnaire en XML externes qui ont t tlchargs par ladministrateur du module et qui vont tre analyss, dcods et utiliss par le module. Dautres fichiers vont tre rajouts ultrieurement : un fichier ReadMe.txt pour expliquer comment installer et dsinstaller le module et un manuel dutilisation sous forme de fichiers HTML.
Chapitre 4 : Ralisation
46
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
3.5.2) Description du fichier pntables.php Le fichier pntables.php est utilis pour charger les tables du module. En fait, ce fichier se rsume une fonction unique ArgueGraph_pntables() qui permet de stocker les informations concernant les tables.
Le schma prcdent montre les sept tables qui vont faire partie de la base de donnes du systme ArgueGraph : quizzes pour les questionnaires, questions pour les questions, answers pour les rponses, scores pour les rsultats finaux, results pour les rsultats intermdiaires, schedule pour le planning des sances et groups pour la gestion des groupes. Deux prfixes sont rattachs au nom de chaque table : ArgueGraph et nuke . Ce dernier prfixe est gnral toutes les tables du portail PostNuke et est retrouv grce la fonction pnConfigGetVar(prefix) .. Les informations concernant les tables sont stockes dans une variable prdfinie par le systme qui est le tableau pntable . A chaque fois que la fonction pnDBGetTables() est appele par une fonction du module, le systme accde ce fichier et charge cette variable. Un module externe ou un bloc ne peut par contre pas accder directement aux tables du module ArgueGraph . La fonction pnModDBInfoLoad() qui a pour paramtre dentre le nom du module cible, fait appel aux variables ArgueGraph . Cest seulement ce moment l que lon peut utiliser la fonction pnDBGetTables() et ainsi charger la variable pntable .
Chapitre 4 : Ralisation
47
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
3.5.3) Description du fichier pninit.php Le fichier pninit.php est utilis deux fois dans la vie dun module. La premire fois pour initialiser le module dans le portail et la seconde fois pour le supprimer. Pour initialiser le module, la fonction ArgueGraph_init() fait appel au fichier pntables.php pour charger la variable pntable qui servira insrer les tables du systme dans la base de donnes du portail.
Ce schma explicite le mcanisme dinsertion de la table ArgueGraph_quizzes dans la base de donnes. Une connexion avec la base de donnes du portail est dabord tablie laide de la fonction pnDBGetConn() qui cre une instance de la classe dbconn prdfinie par PostNuke. Ensuite, la variable pntable est charge laide de la fonction pnDBGetTables() . Enfin, la requte SQL1 pour la cration de la table ArgueGraph est excute par la mthode Execute() de lobjet dbconn (figure 27). En cas derreur, une exception gnre et un message est affich pour ladministrateur.
Les erreurs dinitialisation du module surviennent en gnral lorsquil y a incohrence entre le fichier pninit.php et le fichier pntables.php . Il faut donc faire attention ce que les noms des tables et de leurs champs correspondent dans les deux fichiers.
Chapitre 4 : Ralisation
48
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Pour supprimer le module, la fonction ArgueGraph_delete() fait appel au fichier pntables.php pour charger la variable pntable . Le processus de suppression de l ArgueGraph se traduit par la suppression de ses tables de la base de donnes du portail et le nettoyage du systme de toutes ses variables. Le schma suivant est un extrait de la fonction ArgueGrpah_delete() .
Les tables de l ArgueGraph sont supprimes une une avec un contrle derreurs systmatique. Les variables du modules sont supprimes par la fonction pnModDelVar() . 3.5.4) Principe de dveloppement Le fichier pnadmin.php regroupe toutes les fonctionnalits de ladministration du module. Cela va de linterface dajout de questionnaires, linterface de publication des rsultats des sances Argue Graph, en passant par linterface dchanges de fichiers XML. Pour un module aussi complexe que l ArgueGraph , tout mettre dans le fichier pnadmin.php peut savrer hasardeux sur le plan de la programmation. Il est vident que si lon mettait le code complet de chaque interface ou fonction interne sur ce seul fichier, sa taille serait beaucoup trop importante et lon sy perdrait. Nous avons donc opt pour une solution dallgement : il sagit de subdiviser chaque fonction du module en un ensemble de briques daffichage; chaque brique tant programme sur lun des fichiers-classes du module.
Prenons lexemple du menu principal de linterface administrateur (figure 30). Nous constatons que cette interface se compose de deux briques distinctes : le menu du haut et le tableau des questionnaires Current Quizzes .
Chapitre 4 : Ralisation
49
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Dans la figure suivante, nous explicitons la faon dont nous avons construit cette interface.
Laffichage des deux briques du menu principal de linterface administrateur tient dans les quatre lignes entoures par le cercle du bas. Une instance AGA de la classe ArgueGraph est cre. Sa mthode Links() construit le petit menu de haut tandis que la mthode MainTable() construit le tableau rcapitulatif des questionnaires. Tout ceci est affich par la mthode Text() de lobjet output . Nous prsentons ci dessous, la structure de la mthode Links() ArgueGraph qui se trouve dans le fichier Class_ArgueGraph.php . de la classe
3.5.5) Navigation travers les interfaces du module Un point intressant est souligner dans le code que nous venons de prsenter la figure 32. Ce point concerne la navigation dans un module PostNuke. Pour diter des liens, il faut faire appel la mthode URL de la classe pnHTML qui a deux attributs: lURL destination et le texte du lien. La partie encercle de la figure 32 met en valeur la fonction de base de la navigation dans un programme PostNuke. En effet, pour se dplacer dune fonction une
Chapitre 4 : Ralisation
50
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
autre dans le fichier pnadmin.php , il faut utiliser pnModURL() de lAPI PostNuke. Pour mieux expliciter le fonctionnement de cette fonction, prenons lexemple de la premire ligne de la zone encercle. Le lien se prsente comme suit :
URL(pnModURL('ArgueGraph','admin','main'),_HOME)
Pour trouver son chemin, le systme parcourt trois des quatre paramtres dentre de la fonction : ArgueGraph : reprsente le rpertoire du module de mme nom; admin : qui reprsente linterface de la fonction destination. Dans notre exemple, le systme va accder au fichier pnadmin.php . Par contre, si lon avait user comme paramtre le systme accderait au fichier pnuser.php ; main reprsente la fonction destination qui est ArgueGraph_admin_main() . Le quatrime paramtre qui nest pas explicit sur cet exemple et qui est optionnel, est en fait un tableau qui peu contenir des variables ncessaires pour les paramtrage dune fonction dans une situation donne. 3.5.6) Gestion de la scurit du module Pour accder la fonction prcdente ou toute autre fonction du fichier pnadmin.php , il faut que lutilisateur ait les privilges dadministration. La partie du milieu encercle la figure 31 (page prcdente) prsente le mcanisme qui permet de restreindre laccs ces fonctions aux seuls administrateurs du site. La fonction pnSecAuthAction() permet datteindre ce but en accdant aux profils utilisateurs stocks dans la base de donnes du portail do elle dtermine le type daccs de lutilisateur du module. Si celui-ci a un accs du type ACCESS_ADMIN , il pourra alors administrer le module. Pour ce qui est des fonctionnalits de linterface utilisateur gres par le fichier pnuser.php , laccs est restreint aux personnes ayant une session ouverte sur le portail. La fonction pnSecAuthAction() est alors appele par chaque fonction de ce fichier. Elle vrifie que le membre possde bien laccs ACCESS_COMMENT rserv aux personnes connectes au portail et lautorise donc naviguer travers linterface utilisateur. 3.5.7) Gnration des graphes PHP peut servir crer et manipuler des images, dans un grand choix de formats, comme gif, png, jpg, wbmp et xpm. PHP gnre directement des images pour le navigateur, avec la librarie GD que nous utiliserons pour crer les graphes du mode solo et du mode duo au format jpg. Pour crer un graphe, la fonction ImageCreate() est appele. Cette fonction cre une image sans pour autant la sauvegarder sur le disque. On y dfinit la taille de limage qui est rectangulaire. Les dimensions de limage dpendent des poids des axes du questionnaire quelle reprsente : si le poids de laxe des X est 2 et si celui des Y est 1, par exemple, la largeur de limage sera 2 fois plus importante que sa longueur. La construction propre du graphe commence ici. Il faut savoir que les positions des lments qui vont tre placs sur le graphe se basent sur un jeu de coordonnes 2D dont lorigine se trouve au coin gauche suprieur de limage.
Chapitre 4 : Ralisation
51
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Pour les graphes du module ArgueGraph , nous commenons par dessiner les lments fixes qui sont la grille, le repre du graphe ( travers les axes et les noms des diffrentes thories qui leurs correspondent), le nom du questionnaire, le nom du modrateur et la lgende. La longueur dun axe est calcule en multipliant le nombre de questions du questionnaire fois le poids de laxe. Les dimensions des axes sont donc proportionnelles celles de limage cre. Ensuite, nous enchanons par la disposition des couples points-noms des diffrents participants la sance Argue Graph selon les scores quils ont obtenu. Si nous sommes en mode solo, nous plaons simplement un point pour chaque participant et nous crivons son nom par en dessous. Si par contre nous sommes en mode duo, nous ajoutons au graphe prcdent la position de chaque paire daprs son score lors de cette phase. Nous relions ensuite le point reprsentant la position du participant en mode solo au point reprsentant la position de la paire dont il a fait partie en mode duo pour mieux souligner lvolution dopinion de chacun. La figure suivante illustre un exemple dun graphe du mode duo.
Parfois, il arrive que des noms se superposent ou se touchent sur le graphe ce qui rend un peu plus complexe lanalyse des rsultats. Pour y remdier, nous avons prvu une petite fonction qui permet de sparer au maximum les noms qui se touchent en les disposant les uns sous les autres une distance suffisante pour quils soient distincts tout en ne les loignant pas beaucoup des points qui les reprsentent. Une fois limage termine, nous pouvons la sauvegarder dans le rpertoire prvu pour les graphes. La sauvegarde sous format jpg est possible en utilisant la fonction ImageJPEG() de la librairie GD.
Chapitre 4 : Ralisation 52
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
3.5.8) Algorithme de rpartition des groupes en paires Dans les versions prcdentes de l ArgueGraph , des algorithmes complexes ont t utiliss pour rpartir les participants en paires la suite de la phase solo. Ces algorithmes taient de gros consommateurs de ressources et de temps. De plus, ils avaient tendance favoriser les couples de participants ayant une grande divergence dopinions ce qui faisait que lon se trouvait parfois avec des couples de personnes trop proches dopinions. Pour remdier ces diffrents problmes, nous avons dcid de concevoir un nouvel algorithme plus simple et moins coteux en temps, ayant pour objectif principal une rpartition qui limine en premier temps les formations de couples trop proches dopinions et qui favorise en second temps les grandes divergences dopinion. Le principe de cet algorithme est le suivant :
Etape 0 1 Description Prochaine tape On dresse une liste des participants. 1 Si la liste nest pas vide, on calcule pour chaque participant prsent dans la liste la 2 somme des distances qui le sparent des autres participants. Si la liste est vide 4 Le participant ayant la somme la plus faible est celui qui est le plus susceptible de 3 se retrouver en paire avec une personne trs proche dopinion de lui. On lui cherche donc le participant qui lui est le plus distant. La paire est ainsi forme. On supprime la paire de la liste des participants. 1 La liste des paires est prte.
2 3 4
Cet algorithme donne en gnral de bons rsultats. Cependant, il arrive parfois que lon puisse configurer une meilleure rpartition du groupe en paires manuellement ou que le professeur veuille absolument mettre ensemble la personne A avec la personne B pour X raisons pdagogiques que lalgorithme ne peut prendre en considration. Le module a donc prvu une interface qui permette au modrateur de rpartir manuellement son groupe. 3.5.9) Dcodage des fichiers XML La cration de fichiers XML est facile, cependant les dcoder (parsing) est toute une autre affaire surtout si lon ne connat pas la grammaire du document. Pour le module Argue Graph, un fichier-questionnaire XML a une grammaire fixe. PHP supporte la librairie expat qui permet danalyser mais pas de valider les documents XML. Trois types de codage diffrents sont supports, US-ASCII, ISO-8859-1 et UTF-8. Cette extension permet de crer des analyseurs XML puis de dfinir des points d'entre pour chaque vnement XML. Pour dcoder les fichiers XML et transfrer leurs contenus dans la base de donnes du module, nous avons eu recours au gestionnaire dvnements XML propos par PHP. Prenons lexemple du fichier XML suivant :
<?xml version='1.0' encoding='iso-8859-1'?> <ARGUEGRAPH> <nuke_ArgueGraph_quizzes> <QNAME>Music!</QNAME> <DESCRIPTION>A research about your music preferences...</DESCRIPTION> </nuke_ArgueGraph_quizzes> <nuke_ArgueGraph_questions> <QUESTID>1</QUESTID> <QUESTION>Which group do you prefer?</QUESTION> </nuke_ArgueGraph_questions> </ARGUEGRAPH>
Chapitre 4 : Ralisation
53
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Nous pouvons analyser ce fichier et en extraire de linformation en utilisant la mthode parse de la classe XML extraite du fichier Class_XML.php :
Nous expliquons dans ce qui suit les diffrentes tapes pour arriver extraire de linformation du fichier XML prcdent. Tout dabord, la fonction xml_parser_create() permet de crer la variable xml_parser qui est lanalyseur du fichier XML. La fonction xml_set_element_handler() gnre un vnement chaque fois que l'analyseur XML rencontre une balise de dbut ou de fin. Deux gestionnaires sont disponibles : startElement pour le dbut, et endElement pour la fin. La fonction xml_set_character_data_handler () collecte linformation qui se trouve entre les balises. Ce processus est rpt en boucle jusqu la fin du fichier pendant quau mme moment la variable xml_parser se charge en information. Lorsque le processus danalyse est achev, le contenu de lanalyseur est pass la variable globale obj . La figure suivante explicite comment extraire linformation partir de cette variable.
La variable obj est un objet standard prdfini par PHP qui nappartient pas un classe prcise et qui ne peut avoir que des attributs. Dans le cas de lanalyse du fichier XML, cet objet est un arbre dont les nuds sont aussi des objets de mme nature et dont la profondeur dpend de la profondeur des balises du document XML trait. Dans notre cas, lobjet obj ne possde quun seul attribut qui est lobjet xml correspondant la premire balise du document XML. Lobjet xml possde une seule feuille qui est lobjet ARGUEGRAPH
Chapitre 4 : Ralisation
54
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
correspondant la balise de 2me niveau <ARGUEGRAPH>. Lobjet ARGUEGRAPH possde cette fois deux feuilles qui correspondent aux deux balises imbriques dans la balise <ARGUEGRAPH> (3me niveau). La premire feuille est lobjet NUKE_ARGUEGRAPH_QUIZZES qui possde deux feuilles QNAME et DESCRIPTION . A ce niveau, les attributs de ces objets sont dsigns par DATA et ont des valeurs qui correspondent respectivement au nom du questionnaire et sa description. La structure de larbre obj est explicite par le diagramme suivant : obj
xml
ARGUEGRAPH
QNAME
DESCRIPTION
QUESTION
QUESTID
DATA=Music !
DATA = 1
Pour accder la valeur de la balise QUESTID il faut accder la valeur lattribut DATA du nud QUESTID de cette faon :
$description = $objxmlARGUEGRAPHnuke_ArgueGraph_questionsQUESTIDDATA
3.5.10) Module WebChat Pour la phase duo de lArgue Graph, il nous a fallu prvoir un systme qui permette aux membres de chaque paire de communiquer distance. Nous aurions pu concevoir un outil de chat intgr mais nous avons prfr utiliser un module tout fait qui est le module WebChat . Ce module Open Source est disponible au tlchargement pour la communaut PostNuke et est dj install sur le portail de TECFA Seed. Ce module permet de crer des salons de discussions publiques et privs. En ce qui concerne le module ArgueGraph les discussions vont se passer dans des salons privs. Lutilisation de ce module de chat commence lorsque la liste des paires est valide par le modrateur avant le dbut de la phase duo. A ce moment prcis, un salon de discussion priv est cr pour chaque paire du groupe. Le fichier pnuser.php rajoute une ligne dans la table chatroom contenant le numro du salon crer pour le participant et son partenaire. Ce numro est calcul en fonction du numro dordre de la sance et du rang de la paire dans la liste des paires. Les deux modules sont indpendants. L ArgueGraph peut donc tourner normalement sans WebChat .
Chapitre 4 : Ralisation
55
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
1) Introduction
Dans ce chapitre nous dcrivons le processus de dploiement de l ArgueGraph . Nous prsentons tout dabord les diffrentes phases du processus dinstallation du module. Nous enchanons ensuite par des tests dutilisation en illustrant les diffrentes fonctionnalits du systme et nous concluons par une valuation du produit fini.
2) Installation
Le module ArgueGraph se prsente sous la forme dun package. Les deux formats les plus utiliss pour lempaquetage dans la communaut PostNuke sont Winzip (extension .zip ) et TAR compress (extension .tar.gz ). Pour installer le module dans PostNuke, il faut tout dabord dcompresser le contenu du package dans le rpertoire modules du portail. Lutilisateur doit ensuite ouvrir une session administrateur sur le portail. Dans le menu Administration , le lien Modules pointe vers une interface qui liste tous les modules (activs ou pas) prsents sur le portail. Si l ArgueGraph ny apparat pas, le lien Regenerate permet au systme de scanner nouveau le contenu du rpertoire modules et de dtecter la prsence du nouveau programme. Une fois dtect, le module est rajout la liste des modules du portail. Dans la case correspondant l ArgueGraph de la colonne Actions , trois liens existent. Le lien Edit permet de saisir le nom du programme et sa description telles quelles apparatront pour lutilisateur. Le lien Remove permet de supprimer le module et son rpertoire du portail. Pour continuer avec le processus dinstallation du programme, le lien Initialise permet dinitialiser le module en crant ses tables dans la base de donnes du systme (voir Description du fichier pninit.php page 48 ). La figure suivante est extraite de linterface dinstallation de gestion tout de suite aprs linitialisation de l ArgueGraph .
Une fois le module initialis, il ne reste plus qu lactiver en cliquant sur le lien Activate . L ArgueGraph apparat maintenant dans le menu Administration du portail. Linterface administrateur du module est maintenant accessible. Ce nest par contre pas le cas de linterface utilisateur. Pour permettre aux apprenants dutiliser le programme, il faut quil soit list parmi les liens dun des blocs-menu latraux du portail. Nous pouvons par exemple linsrer dans le bloc Main Menu . Dans ce cas, il faut retourner linterface dadministration du portail et accder la rubrique Blocks . Une liste des blocs du portail apparat alors. Un lien vers Main Menu permet daccder la liste de tous les liens que comporte ce bloc. Cette liste se prsente sous la forme dun tableau. Chaque ligne du tableau comporte 5 champs : le titre du module, son URL, sa description (optionnelle), une case cocher qui permet de supprimer le lien et une seconde case cocher permettant despacer dune ligne deux liens du bloc Main Menu .
57
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Pour pouvoir accder linterface utilisateur, une URL de forme spciale doit tre introduite. En effet, PostNuke a prvu une notation standard pour les modules de nouvelles gnration : ce sont les modules dont les fonctionnalits sont accessibles via les deux fichiers pnadmin.php et pnuser.php . Les fonctionnalits des modules de lancienne gnration (par exemple le module Gallery ) sont elles accessibles travers le seul fichier index.php . LURL de linterface utilisateur du module ArgueGraph doit donc tre de la forme {ArgueGraph} ; les accolades renvoyant le systme automatiquement vers la fonction main du fichier pnuser.php . Une fois les autres champs remplis et le formulaire valid, le lien apparat dans le bloc Main Menu . Nous avons install le module ArgueGraph avec succs sur plusieurs portails dont le portail TECFA Seed (http://tecfaseed.unige.ch/door).
3) Dploiement et tests
La phase de tests du module a commenc bien avant la fin de la phase de ralisation. En effet, le dveloppement du module sest fait en plusieurs tapes. Nous avons tout dabord dvelopp les fonctionnalits de gestion des questionnaires puis celles de la programmation des groupes et des sances. Nous avons ensuite dvelopp les fonctionnalits de linterface utilisateur et nous avons fini par mettre en place le service dchange de fichiers XML. A la suite de chacune de ces phases nous avons entrepris des sances de tests pour vrifier, corriger et valider le travail qui venait dtre fait. Une fois le module achev nous lavons soumis des tests plus grandes chelles en faisant appel des collaborateurs TECFA.
58
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
une sance Argue Graph. Ces deux collaboratrices devaient faire partie du groupe de participants tout en tant elles-mmes les modratrices des sances. Les tests se sont plutt bien drouls. Il y a eu tout de mme quelques hsitations de la part de la deuxime collaboratrice lorsquil sagissait de naviguer travers les fonctionnalits du systme. Ces hsitations sont naturelles pour toute personne nouvelle au module. Un fois lexprience renouvele, ces hsitations finissent par disparatre. Il est donc recommandable dtablir un manuel dutilisation qui dcrit le fonctionnement du systme surtout pour les personnes les plus rticentes lintgration de linformatique dans lducation. La premire collaboratrice a bien construit son questionnaire et a facilement programm sa sance Argue Graph. Le sommaire du questionnaire achev se prsente comme suit :
59
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Du ct administrateur, la modratrice, qui a aussi rpondu au questionnaire, a eu la possibilit de sinformer de ltat davancement de la phase solo travers un tableau qui dterminait pour chaque participant si, oui ou non, il a termin de rpondre aux questions.
Une fois que tout le monde a rpondu toutes les questions, les rsultats se sont automatiquement affichs chez la modratrice sous la forme dun graphe et dune liste de paire de participants. Lalgorithme que nous avons expliqu la page 53 a donn une assez bonne rpartition du groupe. La modratrice pouvait nanmoins rpartir le groupe manuellement et en changer la configuration. Estimant la rpartition gnre par lalgorithme convenable, la modratrice a valid et publi les rsultats qui se sont affichs chez les participants. Pour se prparer la phase duo, un salon de chat rserv chaque paire leur a permis de dcider celui qui allait rpondre pour le compte de la paire pour la suite du scnario.
En dcidant lenvoi de la phase duo, les utilisateurs ont pu commenc rpondre au questionnaire de nouveau. Le chat les a motiv pour communiquer et schanger des ides.
60
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Une fois la phase acheve et les rsultats publis, les participants ont donc pu constater lvolution de leur opinions travers le graphe duo et se situer dans les statistiques qui leurs sont fournies avec. Le dploiement du script ct participant sest assez bien droul, le mode de fonctionnement tant facile saisir. Par contre, du ct de la modratrice, une assistance de ma part a t ncessaire au moment de la transition entre les deux phases.
4) Evaluation du travail
Les tests que nous avons entrepris nous ont permis dvaluer le degr de correspondance du module aux attentes de dpart. Nous numrons dans cette partie les diffrents accomplissements que nous avons atteints et les amliorations que nous pourrions envisager pour une version future du programme.
4.1) Accomplissements
Linterface utilisateur correspond gnralement aux attentes de dpart. Son utilisation par les participants est aise et ne ncessite aucune mise en condition pralable. De plus, des fonctionnalits ont t rajouts pour accrotre la convivialit du programme. Les barres de progression et la prsentation des graphes ont nettement amlior laspect visuel des interfaces. Un point important concernant les problmes de navigation dans les applications web a t soulev par une collaboratrice TECFA. Nous savons que les navigateurs Internet offrent des fonctionnalits de retour en arrire qui permettent au navigateur de visualiser des pages web dj visites. Lutilisation de ces pages, surtout dans le cas de formulaires, peut produire des incohrences tant sur le plan du droulement normal de lapplication que sur les rsultats quelle fournit. Pour y remdier, nous avons prvu un contrleur dtat davancement des sances Argue Graph qui se base sur les codes que nous avons attribus chaque phase du script (voir Tableau 1: Les diffrents tats d'une sance Argue Graph page 27). A chaque fois quun utilisateur dclenche un vnement dans le systme (poster des formulaires, rafrachir une page expire, etc.), le module vrifie la code de la phase en cours. Si lvnement fait partie de la phase, le systme enclenche la fonction cible. Dans le cas contraire, le systme est redirig vers une fonction que nous avons nomm Switchboard (Tableau de bord) qui va dterminer quelle interface doit tre affiche. Linterface administrateur a aussi bnfici de lajout de fonctionnalits qui rendent la gestion du module plus aise. Pour la cration des graphes, une nouvelle fonctionnalit a attir lattention des testeurs et des observateurs parmi lesquels Mr Patrick Jermann, lun des deux concepteurs du scnario Argue Graph. Il sagit du gestionnaire des fichiers-questionnaires XML. Dautres fonctionnalits, comme celle de pouvoir crer et sauvegarder des groupes dutilisateurs, celle de pouvoir suivre ltat davancement des phases ou bien celle de pouvoir avoir une fonction dagrandissement des graphes ont t bien accueillies puisquelles facilitaient des degrs diffrents ladministration et la modration du systme. Enfin, dun point vue technique, la nouvelle version de l ArgueGraph est plus mallable et documente que les deux versions prcdentes.
61
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
Il sera donc facile de comprendre le code source du programme et de le changer si besoin en est, dans le cadre de la rutilisation.
62
LArgue Graph - Rapport de projet de fin dtudes (INSAT - Universit 7 Novembre Carthage) Mourad Chakroun 2003
63
Annexes
Annexes
65
La section suivante illustre le contenu du fichier myClass.php qui contient des fonctions que nous avons estims ncessaires et qui manquent lAPI pnHTML (voir page 44). Ces fonctions sont des mthode dune nouvelle classe myClass qui tend la classe pnHTML .
Annexes 66
La fonction myURL permet douvrir un lien dans une nouvelle page. La fonction myImg permet dafficher des images. La fonction myImgURL est une combinaison des deux fonctions prcdentes. Elle permet dafficher des liens image. Ces fonctions ont t utilises dans le module ArgueGraph, dans le module-bloc FavLinks (voir Annexe 1 page 64) et le module ePBL dvelopp par une collaboratrice TECFA pour lapprentissage par projet. La fonction myURL prsente tout de mme quelques problmes lorsquelle la navigateur utilis est Internet Explorer de Microsoft. Nous avons constat que lorsque lURL est lance, la page dorigine est systmatiquement redirige vers la homepage du portail. Il serait donc intressant de collaborer avec la communaut PostNuke pour trouver une solution ce problme et intgrer ces fonctionnalits dans lAPI pnHTML .
Annexes
67
Annexes
68
function endElement($parser, $name) { global $obj; // Strip off last -> for($a=strlen($obj->tree);$a>0;$a--) { if (substr($obj->tree, $a, 2) == '->') { $obj->tree = substr($obj->tree, 0, $a); break; } } } function characterData($parser, $data) { global $obj; $data=addslashes($data); eval($obj->tree.'->data=\''.$data.'\';'); $data=stripslashes($data); }
Nous explicitons dans cet annexe les deux fonctions qui permettent de dtecter les balises de dbut et de fin. Ces deux fonctions sont startElement et endElement . La fonction characterData permet de remplir larbre obj avec le contenu de linformation dtecte entre les balises.
Annexes
69
Bibliographie
Rfrences Bielaczyc, K. & Collins, A. (1999). Learning communities in classrooms: a reconceptualization of educational practice. In Reigeluth, C. (Ed.), Instructional-Design Theories and Models: Vol. 2. A New Paradigm of Instructional Theory, (pp. 269- 292). Mahwah, NJ: Lawrence Erlbaum Associates. Bloom, B.S. (1984), The 2 Sigma Problem: The Search for Methods of Group Instruction as Effective as One-to-One Tutoring. Educational Researcher, (pp.3-16). Dillenbourg, P. (2002). Over-scripting CSCL: The risks of blending collaborative learning with instructional design, http://tecfa.unige.ch/perso/staf/notari/literature/dillenbour20021.doc. Dillenbourg, P., Baker, M., Blaye, A. & OMalley, C.(1995) The evolution of research on collaborative learning. In E. Spada & P.Reiman (Eds) Learning in Humans and Machine: Towards an interdisciplinary learning science. (pp. 198-211) Oxford : Elsevier. Frimout, D. & Wynants, M. (2000), Manifeste pour l'utilisation d'ordinateurs et de l'Internet dans l'enseignement, URL :http://www.manifest.be/executing.cfm?langue=FR. Gagn, R.M. (1987)(ed.) Instructional Technology : Foundations, Hillsdale :Erlbaum. Rousseau, M. (1999), Immersive Interactive Virtual Reality and Informal Education, Foundation of the Hellenic World, URL:http://www.fhw.gr/. Schneider, D. (2001),Le rle de l'Internet dans la formation suprieure: scnarii et technologies, colloque International Enseignement des Langues et Multimdia , Alger, avril 2001. Schneider, D.K, Synteta,V., Frt C., (2002) Community, Content and Collaboration Management Systems in Education: A new chance for socio-constructivist scenarios?. Proceedings of the 3rd Congress on Information and Communication Technologies in Education, Rhodes, September 26th-29th 2002. Synteta, P. (2001), EVA_pm: Design and Development of a Scaffolding Environment For Students Projects, Master Thesis, TECFA, FPSE, Univerit de Genve. Wilson, B. & Lowry, M., Constructivist Learning on the Web, in Burge, L. (Ed.), Learning Technologies: Reflective and Strategic Thinking. San Francisco: Jossey-Bass, New Directions for Adult and Continuing Education. Ouvrages scientifiques Cocoon: Building Xml Applications, Langham, M.; Ziegeler, C., Macmillan Computer Pub, 450 pages, Juillet 2002. Core Mysql Atkinson, L., Prentice Hall Computer Books, 721 pages, Novembre 2001.
Bibliographie 70
Php 4 Developer's Guide, Schwendiman, B., Osborne McGraw-Hill, 775 pages, Janvier 2001. Uml in a Nutshell: A Desktop Quick Reference, Alhir, S. S., Oreilly & Associates, 273 pages, Octobre 1998. Sites Web www.mysql.com www.php.net www.postnuke.com www.toutjavascript.com
Bibliographie
71