Vous êtes sur la page 1sur 36

Projet PFA

Mise en production dun systme de cration et de lecture automatise de QCM volus. Cahier des charges
Client: Pellegrini Franois Responsable pdagogique: Rollet Antoine Elves: Kesmi Meryem, Delmas Robin, Song Chen

Bizac Antoine, Cardoso David, Gueye Papa, Nedelec Alexandre

16 dcembre 2011

Table des matires


1 Introduction et motivation 2 Analyse de lexistant I Gnration du chier modle . . . . . . . . . . . . . . I.A Lecture du chier QCM . . . . . . . . . . . . I.A.1 Reconnaissance du format du chier I.A.2 Calibrage du chier . . . . . . . . . . I.A.3 Achage du chier . . . . . . . . . . I.B Slction des cases . . . . . . . . . . . . . . . I.C Sauvegarde des informations slctionnes . . II Analyse du QCM . . . . . . . . . . . . . . . . . . . . II.A Chargement du chier modle . . . . . . . . . II.B Lecture du chier QCM rempli . . . . . . . . II.B.1 Reconnaissance du format du chier II.B.2 Calibrage du chier . . . . . . . . . . II.C Recherche des rponses . . . . . . . . . . . . . II.D Gnration du chier rsultat . . . . . . . . . III AMC, Correction automatise de formulaires QCM . III.A Avantages et inconvnients du logiciel . . . . . IV Diagramme de squence . . . . . . . . . . . . . . . . 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 7 8 8

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

3 Modle du systme 10 I Diagramme de cas dutilisation . . . . . . . . . . . . . . . . . . . . 10 II Nouveau diagramme de squence . . . . . . . . . . . . . . . . . . . 11 III Nouveaux diagrammes de classes . . . . . . . . . . . . . . . . . . . 13 4 Evolution du systme 15 I Adaptations possible . . . . . . . . . . . . . . . . . . . . . . . . . . 15 I.A Analyse de champs libres . . . . . . . . . . . . . . . . . . . . 15 I.B Calcul dune note . . . . . . . . . . . . . . . . . . . . . . . . 15

5 Nouvelles spcications I Gnration du chier modle . . . . . . . . . . . . . . . . . . . . . I.A Lecture du chier QCM . . . . . . . . . . . . . . . . . . . I.A.1 Reconnaissance du format du chier . . . . . . . I.A.2 Calibrage du chier . . . . . . . . . . . . . . . . . I.A.3 Achage du chier . . . . . . . . . . . . . . . . . I.B Slection des champs . . . . . . . . . . . . . . . . . . . . . I.B.1 Choix du taux de noir pour quun(e) case/ratio soit considr(e) comme rempli(e) . . . . . . . . . . . I.B.2 Amliorer la dtection des cases/ratios noircies . I.B.3 Choix de lordre dans lequel les informations sont inscrites sur le chier de rsultat . . . . . . . . . I.C Sauvegarde des informations slectionnes . . . . . . . . . II Analyse du QCM . . . . . . . . . . . . . . . . . . . . . . . . . . . II.A Chargement du chier modle . . . . . . . . . . . . . . . . II.B Lecture du code barre . . . . . . . . . . . . . . . . . . . . II.C Lecture du chier QCM rempli . . . . . . . . . . . . . . . II.C.1 Reconnaissance du format du chier . . . . . . . II.C.2 Calibrage du chier . . . . . . . . . . . . . . . . . II.D Recherche des rponses . . . . . . . . . . . . . . . . . . . . II.E Gnration du chier rsultat . . . . . . . . . . . . . . . . II.E.1 Sauvegarde des rsultats de lanalyse du QCM . . III Gnration dun code barre . . . . . . . . . . . . . . . . . . . . . III.A Portabilit du logiciel . . . . . . . . . . . . . . . . . . . . . III.B Simplication de lutilisation du logiciel . . . . . . . . . . . III.B.1 Contrainte . . . . . . . . . . . . . . . . . . . . . . III.B.2 Solutions proposes . . . . . . . . . . . . . . . . . III.C Facilit dinstallation . . . . . . . . . . . . . . . . . . . . . 6 Diagramme de Gantt 7 Conclusion 8 Lexique 9 Bibliographie/Webographie

. . . . . .

17 18 18 18 18 19 20

. 20 . 20 . . . . . . . . . . . . . . . . . 22 22 23 23 23 25 25 26 26 26 26 27 28 28 28 28 29 30 32 33 35

Table des gures


2.1 3.1 3.2 3.3 3.4 5.1 5.2 5.3 5.4 5.5 5.6 6.1 Diagramme de squence . . . . . . . . . . . . . . . . . . . . . . . . Diagramme de cas dutilisation Diagramme de squence . . . . Diagrammes de classes . . . . . Diagrammes de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 10 12 13 14 21 21 22 22 24 25

Contour actif . . . . . . . . . . . . Dlimiter une zone . . . . . . . . . Clic lintrieur de la case . . . . . Deux checs . . . . . . . . . . . . . Balayage du code-barre . . . . . . . Cadre de code-barre de Bordeaux 1

Diagramme de Gantt . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Chapitre 1 Introduction et motivation


Notre projet est une reprise dun projet de PFA propos lanne dernire, qui consistait crer un logiciel danalyse de QCM en faisant une tude au pralable des outils et danalyseurs dj existants. Notre travail consistera donc reprendre le prototype ralis par le groupe de lanne dernire, et lui apporter dimportantes modications dans un but bien prcis : le rendre able, mature et donc oprationnel sur le march. Il est signaler que le prototype ralis est bien fonctionnel et intresse dj le service des examens de lUniversit Bordeaux 1. Les dfauts et problmes rencontrs ainsi que les retours que nous avons eu de la part de Mr Alexandre Moret de ce service mme vont faire lobjet de nos interventions. Cette intraction avec M Moret est dautant plus importante quelle nous permet de mieux comprendre les besoins rels des futurs utilisateurs et dadapter au mieux notre logiciel pour les satisfaire. Une tude appronfondie du logiciel en question nous a permis de faire le point sur ses fonctionnalits majeures. En eet, le logiciel a deux principales fonctionnalits : Gnration de chier modle partir du QCM en format PDF ,et Analyse du QCM rempli. Aprs avoir test le logciel nous avons aussi pu comprendre son rel fonctionemment. Il sagit tout dabord dinsrer le QCM vierge en format PDF, linterface graphique du logiciel permet de visualiser ce dernier dans un cadre bien dlimit, puis deectuer la gnration du chier modle qui va tre stock en format XML. Ensuite, le QCM rempli est charg son tour, toujours en format PDF. Un chier rsultat en format CSV est nalement gnr aprs analyse du QCM rempli.

Chapitre 2 Analyse de lexistant


Une tude de lexistant nous a permis de mettre laccent sur les dirents besoins auxquels rpond le logiciel. Celui-ci a deux fonctionnalits majeures qui sont : La gnration dun chier modle partir dun QCM vierge, et lanalyse de QCM remplis.

Gnration du chier modle


A ce stade l, on opre sur un chier QCM vierge en entre.

I.A
I.A.1

Lecture du chier QCM


Reconnaissance du format du chier

Le logiciel fonctionne avec des chiers PDF en format bitmap. Ceci dit il reconnait certains PDF en format vectoriel. I.A.2 Calibrage du chier

Au niveau de la gnration du chier modle intervient la bibliothque Pandore, crite en C++, qui est une bibliothque de traitement dimage. Elle opre au niveau de la recherche et la reconnaissance de marqueurs prsents sur le QCM et qui permettent de corriger les ventuelles rotations que pourrait avoir subies le document lors de la procdure de scan. Fonctionnalits de Pandore La bibliothque Pandore rcupre une image du QCM quelle convertit en format PAN de codage RGB. Ensuite, elle binarise limage en utilisant le principe de 5

seuillage. Enn, en se basant sur le principe de morphologie mathmatique quest louverture, Pandore dtecte les marqueurs , et ce suite lapplication succesive drosion et de dilatation du rayon des marqueurs avec pour lment structurant un cercle. Lquipe de lanne dernire a choisi de travailler avec quatre marqueurs, tous de forme circulaire, qui est la forme la plus simple dtecter, si lon considre que le document peut avoir pivot. Le logiciel ne commence son traitement sur la feuille du QCM quune fois quelle a t roriente grce au calcul des angles dinclinaisons. Cependant le logiciel nutilisant que 2 maqueurs, il ne gre pas les problmes de rotation trop importantes (180 par exemple) ni les changements de rsolution. I.A.3 Achage du chier

Une fois le chier calibr, le logiciel permet de lacher dans un encadr bien dlimit comme le montre linterface graphique.

I.B

Slction des cases

La gnration du chier modle se base sur un certain nombre dinformations obtenues suite ltape de dlimitation des zones du QCM. Le logiciel permet en eet, par simples clics de la souris, denregistrer des zones sous forme de rectangles qui reprsentent les carrs des radios ou des cases cocher.

I.C

Sauvegarde des informations slctionnes

Cest partir de ces informations stockes que lon gnre le chier modle. Ceci passe dabord par la cration dun arbre reprsentant de manire structure toutes ces informations qui ne sont autre que le QCM lui mme traduit en arborescence. Grce la bibliothque XMLEncoder ,larbre est cod en XML,de ce fait on obtient le chier modle en format XML.

II
II.A

Analyse du QCM
Chargement du chier modle

Le logiciel permet lutilisateur de slectionner le chier modle gnr lors de ltape prcdente qui correspondra au chier QCM rempli analyser.

II.B
II.B.1

Lecture du chier QCM rempli


Reconnaissance du format du chier

De manire similaire prcedemment, le logiciel reconnait les chier PDF en format bitmap, et renvoie une erreur le cas chant (erreur lecture chier). II.B.2 Calibrage du chier

Le calibrage du chier se fait avec les mmes marqueurs an de positionner correctement le QCM rempli.

II.C

Recherche des rponses

An de rcuprer les coordones des champs lire, on utilise les coordonnes des champs contenus dans le chier xml correspondant au chier modle gnr lors de ltape prcdente. Les coordonnes des cases et autres zones reprsentent en eet le squelette du QCM, cest bien larborescence des zones dlimites au pralable que lon retrouve en dcodant le chier XML (chier modle) laide dun algorithme prsent dans la bibliothque XMLDecoder. Le pourcentage de pixels noirs dans les cases et ratios permet de savoir si une case/ratio est noircie ou non. Une zone analyse est considre comme noircie si le pourcentage de pixels noirs dans la zone atteint 35%. Ces informations sont par la suite stockes dans un chier CSV de manire ordonne.

II.D

Gnration du chier rsultat

Le chier CSV est gnr au fur et mesure du parcours de larborescence des zones dlimites et dpend de la dtection ou non des zones noircies. Ce chier contient un ensemble de valeurs qui correspondent aux diverses informations lies au QCM (nom de la matire, nombre de pages etc..), mais aussi celles reprsentant les rponses aux questions, tout cela dans un orde prdni. Il est noter qu chaque lve correspond un chier CSV, et que les valeurs dcrites prcdemment sont crites chacune sur une ligne.

III

AMC, Correction automatise de formulaires QCM

Le client nous a fourni la rfrence dun logiciel open source de correction de QCM, le logiciel AMC dont certaines fonctionnalits sont identiques celles souhaites par le client pour ce projet. En eet ce logiciel peut prendre en entre 7

un chier PDF pouvant contenir un nombre important de QCM (ventuellement dun grand nombre de pages) scanns et les analyse en grant les ventuelles rotations des chiers grce 4 marqueurs ronds situs aux coins des feuilles. Le chier modle doit tre obligatoirement un chier latex gnr avec ou sans laide du logiciel. Les feuilles disposent de vecteurs binaires an de distinquer les numros de QCM et de pages, et ont galement un champ de cases noircir par les tudiants an dtablir leur numro dtudiant. Ainsi, AMC prsente par de nombreux aspects des similarits avec le logiciel que nous allons implmenter. Une tude plus complte dAMC sera mene par la suite, nous nous contenterons dans ce cahier des charges de donner et bref aperu des avantages et inconvnients du logiciel.

III.A

Avantages et inconvnients du logiciel

Le logiciel est installable sous direntes versions de Linux et sous MacOS. En revanche, il nest prsentement pas installable sous Windows et ne le sera sans doute pas facilement puisquil est implment notamment en C++ et en Perl avec direntes bibliothques extrieures. De ce fait, il nest pas facilement installable sous ubuntu par exemple car il ncessite linstallation de nombreuses bibliothque annexes. AMC dispose de fonctionnalits supplmentaires comme le traitement direct des rsultats des QCM analyss. En eet il est possible de corriger directement les QCM sur les chiers PDF grce un barme entr par lutilisateur. De plus, la cration du chier modle via latex permet au logiciel de reprer trs facilement coordonnes des cases rponses aux questions sans que lutilisateur nait intervenir. Cependant, la contrainte dun chier modle au format latex est assez importante : lutilisateur est oblig de crer son chier modle sous latex ce qui nest pas trivial pour la majorti des personnes. Pour les services de luniversit des Sciences de Bordeaux par exemple cela ne serait tout simplement pas envisageable car cela demanderait une formation des professeurs au latex.

IV

Diagramme de squence

Ce diagramme dcrit lenchanement dans le temps des direntes actions effectues par le crateur des modles du QCM et lanalyseur du QCM. Il a t rcupr dans le rapport de pfa du goupe de lanne dernire.

Figure 2.1 Diagramme de squence

Chapitre 3 Modle du systme


I Diagramme de cas dutilisation

Le diagramme de cas dutilisation est exactement le mme que celui de la version prcdente, et a donc t rcupr du rapport de projet de lanne dernire .

Figure 3.1 Diagramme de cas dutilisation

10

II

Nouveau diagramme de squence

Ce diagramme est celui rcupr dans le rapport du groupe de lanne dernire, avec en jaune les fonctionnalits sur lesquelles nous allons intervenir et que nous allons modier par la suite.

11

Figure 3.2 Diagramme de squence 12

III

Nouveaux diagrammes de classes

Les classes et les ches en bleu correspondent aux nouvelles fonctionnalits demandes.

Figure 3.3 Diagrammes de classes

13

Figure 3.4 Diagrammes de classes

14

Chapitre 4 Evolution du systme


Les QCMs que le logiciel devra analyser sont succeptibles dvoluer au l du temps,et pourront contenir de nouvelles informations que lutilisateur voudrait pouvoir traiter toujours avec un unique logiciel. Celui-ci doit donc tre conu de manire volutive an de lamliorer ou dajouter de nouvelles fonctionnalits. Une documentation du code source crite en Javadoc facilitera cet acte.

I
I.A

Adaptations possible
Analyse de champs libres

Actuellement, le logiciel prend en compte lexistance de champs libres (zones de texte dans lesquelles llve peut crire une rponse).Cependant mme si cette zone en question est selectionne, elle nest pas analyse par la suite ce qui a pour consequence la non apparition de cette dernire dans le chier rsultat. Partant de ce constat,une version ultrieure pourra tre prvue an de permettre lutilisateur ayant opt pour la selection de cette zone de voir par exemple dans le chier rsultat une image scane correspondant celle delimit par le cadre selectionn lors de la cration du chier modle.

I.B

Calcul dune note

La version existante du logiciel couple des nouvelles fonctionnalits implmentes fournira un chier rsultat en csv. A partir de ce chier, les utilisateurs devront utiliser une macro excel contenant le barme des questions an dobtenir une note nale propre un tudiant. Cependant, certains professeurs qui seront amener utiliser le logiciel ne sauront pas forcement manier loutil informatique et sont donc aussi suceptibles de ne pas maitriser excel,encore moins la cration de macro. Ainsi, le logiciel pourrait lors de la cration du modle QCM prendre 15

en compte le barme des questions ainsi que les rponses justes. Dans ce cas l, le logiciel pourrait acher directement la note nale obtenue par tudiant. Une autre mthode ou une implmentation complmentaire consiste lutilisateur le soin de prciser le barme associ un QCM lors de la cration du modle de celui-ci. Cest une suggestion dAlexandre Moret, responsable au service informatique de lUniversit Bordeaux 1.

16

Chapitre 5 Nouvelles spcications


Dans cette partie, nous prsenterons les nouvelles fonctionnalits que devra possder le logiciel et les contraintes imposes par le client. Nous commencerons par rappeler les fonctionnalits existantes du logiciel an de bien comprendre o les nouvelles fonctionnalits vont sinsrer. En bleu gurent les nouveaux besoins fonctionnels et en rouge les besoins fonctionnels qui sont modier de manire inclure de nouvelles fonctionnalits. I Gnration du chier modle 1 Lecture du chier QCM i Reconnaissance du format du chier ii Calibrage du chier iii Achage du chier 2 Slection des champs 3 Sauvegarde des informations slctionnes II Analyse du QCM 1 Chargement du chier modle 2 Lecture du code barre 3 Lecture du chier QCM rempli i Reconnaissance du format du chier ii Calibrage du chier iii Achage du chier 4 Recherche des rponses 5 Gnration du chier rsultat i Sauvegarde des rsultats de lanalyse du QCM III Gnration dun code barre 17

I
I.A

Gnration du chier modle


Lecture du chier QCM
Reconnaissance du format du chier

I.A.1

Reconnaissance de chiers PDF vectoriels Dans loptique dune extensibilit de notre logiciel, sa sphre dutilisation pourrait tre tendue dautres traitements en dehors de ceux denis et implments dans le code existant. En eet lapplication se limitait pour le moment lire exclusivement les chiers pdf bitmap grce la bibliothque java Jpedal. Partant de cela une nouvelle fonctionnalit sera mise en place comme stipule par le client. Cette dernire consistera prendre en charge la lecture de pdf vectoriels. La bibliothque java Jpedal ayant volue depuis lanne dernire, certains chiers pdf vectoriels peuvent tre lus. Cest pourquoi dans un premier temps, une tude sera faite pour vrier que Jpedal prend en charge tous les types de pdf vectoriel. Si ce nest pas le cas, la lecture de ces chiers sera mise en place dans un second temps. Pour se faire une nouvelle bibliothque sera incorpore lensemble. Elle aura pour rle de transformer le chier en question en pdf bitmap par le biais de la mthode de Rasterisation. Un chier pdf bitmap sera ainsi cr et sera lui mme utilis par Jpedal. Intret de cette methode Le code existant ici en loccurence celui de Jpedal et de ses fonctionalits ne sera pas modi. Dautres types de chiers pourront tre pris en compte dans lavenir indpendamment du reste. I.A.2 Calibrage du chier

Remplacement de la bibliothqe danalyse dimage Nous souhaitons retirer du programme lutilisation de la bibliothque Pandore, crite en C++, qui empche la portabilit du programme entirement crit en JAVA, langage portable par nature. Cette fonctionnalit, fortement lie au besoin

18

non fonctionnel de portabilit tant une des priorits principales du client, nous avons donc chercher remplacer Pandore. An de ne plus avoir utiliser Pandore, nous nous sommes intresss la morphologie mathmatique de plus prs et aux direntes bibliothques crites en JAVA qui pourraient contenir de telles fonctionnalits. Nos recherches nous ont mens vers la transforme de Hough. Cette mthode nous permettrait de retrouver dans une image, des lments proches dun certain lment constituant, qui peut par exemple tre un cercle. Ctait intressant pour nous surtout que nous avions trouv une implmentation en JAVA de cette transforme. Cette implmentation utilisait la bibliothque de traitement dimage ImageJ. Ses fonctionnalits en traitement dimages sont trs compltes et contiennent des oprateurs de morphologie mathmatique comme lrosion, la dillatation, louverture et la fermeture (dual de louverture). Il nous apparut donc plus simple dans un premier temps denvisager son utilisation directe remplaant lusage de Pandore avec les mmes fonctionnalits. Si cela se rvlait ne pas convenir pour une raison ou pour une autre, nous pourrions toujours implmenter nous mmes ces fonctionnalits directement dans notre programme, de faon adapte nos besoins. Pour le moment, le logiciel nutilise que deux marqueurs et ne pratique que la rotation du document. Contrairement ce que nous pensions, les deux derniers marqueurs ne sont pas utiliss. Nous comptons donc utiliser un troisime marqueur pour ajuster une dformation ventuelle. Les documents tant scanns ou directement produits depuis un chier latex, cette fonctionnalit nest pas primordiale, mais nous essaierons den implmenter une solution viable. Nous chercherons utiliser le quatrime marqueur pour dtecter le sens de la page, en le direnciant soit par la forme, soit par le remplissage (les autres marqueurs possdant un centre vide). I.A.3 Achage du chier

Cette partie ne contient pas de nouvelles fonctionnalits, par consquent le code de cette partie ne sera pas priori pas modi.

19

I.B
I.B.1

Slection des champs


Choix du taux de noir pour quun(e) case/ratio soit considr(e) comme rempli(e)

Cette nouvelle fonctionnalit consiste ajouter une barre dans le logiciel qui orira au client la possibilit de choisir un "pourcentage seuil" de noir. Un seuil par dfaut sera tout de mme prsent lors du lancement du logiciel. Toute case insusamment noircie, ce qui correspond un pourcentage de noircissement en dessous du seuil choisi, sera de ce fait considre comme blanche en dautres termes non coche. I.B.2 Amliorer la dtection des cases/ratios noircies

Cette partie consiste amliorer la dtection de case an de rendre le logiciel plus ecace et plus facile utiliser. La mthode qui est explique dans la partie prcdente nest pas susante pour augmenter lecacit de notre logiciel. Si le rectangle choisi est largement plus grand que la vraie case, mme avec la possibilit de choisir le taux de noir, le logiciel risque de ne pas fonctionner correctement. Cest pourquoi il est ncessaire dajouter une amlioration. Algorithme "Snake" Lalgorithme Snake permet de tracer le contour dune zone irrgulire en dformant progressivement une courbe de dpart. Grce cet algorithme, on est capable de retrouver la frontire dune case et donc le pourcentage de noir. Pour dtecter une case noircie, on peut augmenter drastiquement de le paramtre 35% environ 80%. Deux solutions ... A laide de lalgorithme de "contour actif", deux solutions sont fournies aprs une tude ralise sur les exemplaires de QCM. La premire solution est dutiliser le mme mcanisme que la mthode existante, puis ajouter la n lapplication de lalgorithme "snake". Cest--dire que le logiciel laisse le client dlimiter une zone rectangulaire et puis excute lalgorithme lintrieur de cette zone jusqu ce quil retrouve la frontire de la forme. La deuxime solution consiste pour lutilisateur cliquer intrieur de la case cocher avant dappliquer lolgorithme "snake" de lintrieur de la case vers lextrieur. Leur Avantage ... Chaque solution a son propre avantage. La premire solution permet toujours de retrouver ce que lon veut car il est toujours possible de tracer 20

Figure 5.1 Contour actif

Figure 5.2 Dlimiter une zone le rectangle trs proche de la vraie forme. Cependant, la seconde solution est plus pfrable. Sachant que cliquer dans la case est plus facile faire et que normalement il ny a quune couleur dans cette zone, elle est plus adapte aux besoins de client en terme dutilisation et au niveau de la complexit en temps de lalgorithme (temps dexcution plus rapide). Appartition de problmes Dans les deux cas, il est possible que lalgorithme se trompe. Puis, il est ncssaire davoir un moyen de mmoriser les coordonnes du dernir clic de client. La solution que lon a choisie consite excuter instantanment lalgorithme aprs chaque clic lors de la cration du QCM modle. Le problme ach dans la gure 5.4 est rsolue pour limiter le temps dexcution de lalgorithme.

21

Figure 5.3 Clic lintrieur de la case

Figure 5.4 Deux checs I.B.3 Choix de lordre dans lequel les informations sont inscrites sur le chier de rsultat

An que lutilisateur puisse obtenir un chier csv avec les direntes donnes analyses dans lordre quil souhaite, linterface graphique sera modie de manire permettre lutilisateur lors de la gnration du chier modle de visualiser dans la partie gauche du logiciel lordre dans lesquels les informations (rponses aux questions,code barre...) apparaitront sur le csv. Il pourra galement modier cette ordre en dplaant les champs slectionns vers le haut ou vers le bas. De ce fait lorganisation des dirents champs dans leur page respective sera supprime au prot dune organisation simplement ordonne par les choix de lutilisateur.

I.C

Sauvegarde des informations slectionnes

Cette partie ne contient pas de nouvelles fonctionnalits, par consquent le code de cette partie ne sera pas priori pas modi.

22

II
II.A

Analyse du QCM
Chargement du chier modle

Chargement de plusieurs chiers modle An de rpondre au besoin cit en II.C.1, il sera ncessaire de pouvoir charger un chier modle lors de la cration dun autre chier modle. Dans ce cas, seuls les champ de marqueurs binaires (contenant numro du QCM et numro de page du QCM) seront conservs.

II.B

Lecture du code barre

An didentier les QCMs remplis par les tudiants, un code-barre propre chaque tudiant apparatra sur le QCM (il faut bien prendre en compte le fait que celui-ci ne sera pas forcment prsent sur la premire page du QCM), le numro dudiant devra alors tre prsent dans le chier csv. En eet, il est ncessaire de pouvoir connatre ltudiant sans avoir la copie sous la main. Le logiciel permet dja lutilisateur dencadrer la zone tudier en spciant la nature de lobjet : un code-barre. Il est donc prsent dans larbre xml cr. Les actions que nous devons fournir se rsument lire la zone slectionne par lutilisateur contenant le code-barre, lanalyser et retourner le numro correspondant au code-barre. Nous allons voir les 2 mthodes que nous avons retenues pour rsoudre le problme. La permire est lutilisation dun logiciel externe et la deuxime est la lecture du code-barre par nos propre moyen. Premire mthode Le logiciel BarCapture permet de lire 4 types de codes-barre (EAN8, EAN13, QRcode et DataMatrix). Dvelopp par la socit JaxoSystem, le logiciel est gratuit mais nest pas open-source. En se mettant en partenariat avec cette entreprise nous allons donc lutiliser dans le programme pour pouvoir lire des codes-barre. Le logiciel est programm en Java. Ainsi, en dsassemblant le code source du logiciel, nous pourrons nous infterfacer avec les bibliothques pour lire le codebarre. Deuxime mthode 23

Dans le cas o lutilisation du logiciel est impossible cause de lentreprise, nous devrons programmer nous mme la lecture du code-barre. Plusieurs tapes an dobtenir le numro dtudiant sont mettre en oeuvre : Le code-barre prsent sur le QCM peut tre inclin, en eet, ltudiant aura la possibilit de coller ltiquette du code-barre. Le motif du code-barre tant rptitif, par une transforme de Fournier (Fast Fourier Transform = FFT), nous pouvons dterminer linclinaison du code-barre pour pouvoir lanalyser. Nous eectuons ensuite un balayage horizontal sur le code-barre an dobtenir la largeur de chaque barre. A partir de cela, un algorithme se basant sur des calculs arithmtiques simples (additions, multiplications) permet de retrouver le numro associ ltudiant, algorithme qui varie selon le type de code-barre. An dviter les erreurs (prsence de bruit, tches...) plusieurs balayages seffectueront et la largeur dune barre est calcule laide de la moyenne des balayages.

Figure 5.5 Balayage du code-barre Autre mthode de lecture Suite a notre rencontre avec la direction informatique de Bordeaux 1, nous avons vu un autre moyen pour reconnaitre lidentiant dun tudiant. Il savre que, dans les QCms de luniversit de Bordeaux 1, le code-barre ne sut parfois pas. Ainsi, le QCM inclus un module dans lequel il est possible de rcrire son identiant. Le but est donc de lire les cases de ce module de la mme faon que lon lit les cases du QCM (cf partie reconnaissance des cases). Voici un exemple de module dun QCM de Bordeaux 1 :

24

Figure 5.6 Cadre de code-barre de Bordeaux 1

II.C
II.C.1

Lecture du chier QCM rempli


Reconnaissance du format du chier

Reconnaissance de chiers contenant plusieurs QCM dirents ou non Il serait fastidieux pour un utilisateur du logiciel de devoir charger chaque QCM scann au format pdf quil veut analyser, dautant plus que cest un logiciel qui cible des utilisateurs comme des professeurs duniversits qui ont un trs grand nombre dlves et donc de QCM analyser. Cest pourquoi il sera ncessaire de pouvoir charger plusieurs chiers PDF en mme temps pour les analyser ensemble. De mme, il doit pouvoir tre possible danalyser un chier PDF contenant plusieurs QCM. Une demande du client est que ces QCM puissent tre dirents ie que le logiciel puisse analyser un ensemble de QCM dans un mme chier PDF ou dans des chiers PDF dirents. De ce fait, il faudra que lutilisateur puisse slectionner autant de chiers modle dirents (.xml) que de chiers PDF. Pour que le systme fonctionne les QCM analyser ensemble devront tous possder au mme endroit un champ numro de questionnaire (cod par un vecteur de bits), dont la zone aura t repre prcdemment lors de la gnration des chiers modles. Cela permettra de savoir quel chier modle correspond chaque QCM. A noter que ce champ sera utilis galement pour grer la numrotation des QCM multi-pages.

25

II.C.2

Calibrage du chier

Cette partie ne contient pas de nouvelles fonctionnalits, par consquent le code de cette partie ne sera pas priori pas modi.

II.D

Recherche des rponses

Cette partie ne contient pas de nouvelles fonctionnalits, par consquent le code de cette partie ne sera pas priori pas modi.

II.E
II.E.1

Gnration du chier rsultat


Sauvegarde des rsultats de lanalyse du QCM

Une des modications majeures qui vont tre apportes en plus lensemble existant est celle ayant trait la gnration du chier rsultat CSV. En eet le client a mis le souhait de pouvoir utiliser un tableur qui lui permettra partir du chier CSV de gnrer automatiquement la note des lves ayant rpondu au QCM. Etant donn que la cration du tableur est laisse aux soins du client, le CSV en question devra donc respecter un certain nombre de contraintes spcies correspondant aux attentes de ce dernier. Des changements seront ainsi oprer sur le chier dorigine. En voici la liste : chaque QCM analys correspondra dans le csv une ligne avec tous les lments slectionns par lutilisateur, et qui permettront la gnration du rsultat souhait. Par exemple dans le cas dun chier de n QCM (possiblement dirents) remplis par des lves on retrouvera les lments : numro du QCM, numero du code barre i.e. de ltudiant, cases coches... ; et il y aura au total n lignes sur le csv (possiblement plusieurs lignes pour un mme tudiant sil a rpondu plusieurs QCM dirents), chaque ligne correspondant un QCM analys. un chier type csv sera de la forme : 4625 : 5 : 1 : 8 : 0 : 3 : 1 : 2 : 5233 : 6 : 2 : 4 : 2 : 4 : 8 : 3 : 6217 : 8 : 5 : 2 : 9 : 0 : 0 : 0 : Pour un radio buttom on aura -1 si plusieurs cases sont coches, 0 si aucune case nest coche, et la n-ime case du radio-buttom est coche. Pour une case cocher simple on aura 0 si aucune case nest cohe et le nombre obtenu par addition des valeurs binaires des cases

26

lors de la dlimitation des cases rponses des questions le respect de lordre des pages nest pas primordial, une amlioration qui pourra tre apporte sera lajout dune contrainte spciant un ordre de parcours croissant du QCM avec une dtection automatique de la dernire page traite. lordre dachage des direntes informations dans une ligne du csv devra correspondre lordre dni par lutilisateur lors de la slection des dirents champs dans la gnration du chier modle Ceci pourra facilement se faire dans la mesure o le csv est cr grce au parcours de larborescence des zones dlimites comme cela est visible dans la partie Arbre dachage des zones dlimites de notre interface graphique. Il faudra cependant stocker les informations lues lors de lanalyse dans une structure avant de les crire dans le csv puisque le parcours du PDF ne correspondra pas forcment lordre voulu dans le chier rsultat. lutilisateur pourra choisir un nom de chier csv dans lequel il veut enregister son chier rsultat, si ce chier existe dj les donnes seront ajouts la n du chier (en mode append)

III

Gnration dun code barre

En marge du dveloppement du logiciel, le client nous a demand de crer un package Latex, lequel pourra tre inclus par les crateurs de QCMs. Celui-ci naura qu choisir le format de code-barre quil souhaite utiliser et de prciser ensuite le code quil souhaite insrer dans le code-barre. Les dirents formats que nous allons utiliser sont pour le moment les 3 codes les plus utiliss : EAN 8, EAN 13 et le QRcode. Les 2 premiers sont trs utilise notamment au niveau commercial. Ils permettent de coder respectivement 8 et 13(voire 12) chires. (cf annexe pour exemples) Le QRcode permet quant lui de coder jusqu 4296 caractres. Cela permet dans certains cas de prciser de nombreuses informations rien que dans le code-barre. On remarquera cependant que le programme permet de crer de nombreux dautres codes-barre. La gnration devra pouvoir se faire suivant des options telles que : linclinaison (seulement un Nombre compris entre 0 et 360) la couleur la taille

27

Pour ce qui est de limplmentation de toutes ces options par le crateur du QCM, si ce dernier ne prcise pas les options, chaque option aura des attributs de bases (noir pour la couleur, 0 pour linclinaison). Pour ceci, les packages qui vont tre crs vont se baser sur un package bien connu de Latex : PSTricks et plus particulirement pst-barcode. Cest un package crer par Terry Burton et Herbert Vo. (cf Webographie pour une documentation complte en anglais) Aprs concertation avec le client, la mthode propose lui convient et une premire documentation lui a t fournie. Une documentation plus dtaille, notamment au niveau des options possibles dans le package, lui sera fournie lors de la remise nale du projet (ou avant).

Besoins non fonctionnels


III.A Portabilit du logiciel
Une des contraintes majeures de ce projet est la portabilit. En eet, il a t spci par le client que le logiciel devait pouvoir au moins fonctionner sur les ystmes dexploitation Linux, MacOS et Windows. Or prsentement il ne fonctionne que sous java. Limplmentation devra donc tre eectue entirement en java qui tait le langage implmentant la premire version de ce logiciel. Par ailleurs, comme il la t prcis prcdemment la blibliothque C++ Pandore actuellement utilise par le logiciel devra tre remplace par une bibliothque java quivalente.

III.B
III.B.1

Simplication de lutilisation du logiciel


Contrainte

Le client a demand ce que le logiciel soit simple dusage ce qui implique quil soit relativement ergonomique et quun utilisateur ne connaissant pas le logiciel puisse lutiliser. Or ce nest pas vraiment le cas actuellement. En eet la premire utilisation du logiciel ncessite de disposer du manuel dutilisation ct de soi pour pouvoir se servir du logiciel. De plus, ce manuel dutilisation actuel nest pas complet et pas totalement clair. III.B.2 Solutions proposes

Nous ne disposerons probablement pas assez de temps pour rendre linterface graphique plus ergonomique quelle ne lait prsentement sur les fonctionnalits dj implmentes. En revanche, nous tacherons den tenir compte lors des modications du code dj existant et nous chercherons implmenter la partie graphique 28

des solutions aux nouvelles fonctionnalits de manire ce quelle soit la plus intuitive possible pour lutilisateur. Par ailleurs an de rendre la prise en main du logiciel plus facile, le manuel dutilisation sera mis jour et rendu plus explicite. Il sera galement mis en place une aide lors du survol dun lment de manire ne pas avoir besoin de toujours se rfrer la documentation.

III.C

Facilit dinstallation

Le logiciel doit pouvoir tre install par un plus grand nombre de personnes, certains usagers pouvant ne pas tre informaticiens, il est important de faciliter linstallation du logiciel. Dans ce but une java-archive (.jar) devra tre fournie pour chacun des systmes dexploitation suivant : Linux, Windows, MacOS. Eventuellement, si la phase de dveloppement prend de lavance sur les dlais il est envisag de raliser pour Windows et MacOS une installation graphique via un assitant dinstallation. Tandis que lutilisation dun systme de gestion de paquets RPM sous Linux pourra complter la facilit dinstallation du logiciel.

29

Chapitre 6 Diagramme de Gantt


Voici le planning que lon a prvu pour le droulement du projet :

Figure 6.1 Diagramme de Gantt

Ce diagramme montre comment va sorganiser notre projet. Notre quipe sera compose de 3 binmes qui seront chacun assign a une tche. Par exemple le binme 1 va soccuper de tous ce qui est en rapport avec la bibliothque de reconnaissance des formes tandis que le binme 3 travaillera plutt les parties concernant le code barre. Bien que nous allons tenter de respecter ce planning, ce diagramme sera a coup sr modier, puisquil est compliqu dvaluer ds aujourdhui la complexit de chaque tche sparemment. Il sera donc interressant de comparer ce diagramme avec le diagramme nal, lequel sera cr au fur et mesure du projet.

30

Enn on remarque que les parties Interface Graphique, JavaDoc, Rapport sont supperposes a lensemble du projet. Pour ce qui est de linterface graphique, sachant que chaque modication risque de modier les fonctionnalits du logiciel, il faudra tre ractif et la modier en consquance.

31

Chapitre 7 Conclusion
La premire version existante du logiciel ne semble pas aboutie, elle contient de nombreux bug et ne correspond pas totalement aux attentes des utilisateurs ce qui reprsente un dfaut majeur concenant la correction des QCMs. De plus sa premire prise en main est loin dtre intuitive ce qui laisse la fade impression dinachev. Nanmoins, le travail fourni par lquipe prcdente facilite notre tache dans le fait quil souligne les points du logiciel amliorer ou retravailler. Ce cahier des charges spcie les besoins en se basant sur le retour de plusieurs utilisateurs an de le rendre plus ergonomique, portable et able. Nous esprons de plus ajouter des fonctionnalits additionelles an de simplier lutilisation du logiciel, de traiter le chier csv ou de crr son propre QCM qui sadaptera au logiciel.

32

Chapitre 8 Lexique
Codage RGB Pour reprsenter une couleur, lun des codages possible est le RGB (Red, Green, Blue). Ce codage consiste reprsenter lespace des couleurs partir de trois rayonnements monochromatiques de couleurs : rouge (R), vert (G), bleu(B). Cet espace de couleur correspond la faon dont les toutes les couleurs sont codes informatiquement. La bibliothque Pandore commence donc par rcuprer une image du QCM au format GIF quelle convertit dans un format propre Pandore (PAN). Ensuite on extrait de cette image la composante verte. Le rsultat correspond une image en niveau de gris de codage RGB. Binarisation La binarisation consiste considrer chaque pixel comme noir ou comme blanc. Ceci est dtermin en dnissant un seuil au dessus duquel le pixel est noir et au dessous duquel il est blanc. Cette tape permet un traitement plus simple de limage et est donc plus rapide. Ouverture Louverture en morphologie mathmatique correspond lapplication successive dune rosion et dune dilatation, avec un lment structurant. Dans lapplication, pour rechercher les marqueurs on applique ce principe sur limage avec pour lment structurant un cercle du rayon du marqueur. Il doit rsulter de cette opration limage ne contenant que les marqueurs. Il est alors ais de reprer leurs centres, permettant ainsi de redresser la feuille du QCM scann (ces points formant un rectangle dont les cts sont parallles au bord de la feuille). Erosion et Dilatation Pour expliquer simplement, on peut dire que lrosion rduit tous les ensembles de pixels en suivant la forme et la taille de llment structurant. Elle permet donc deacer peu prs tout ce qui ne ressemble pas llment stucturant. La dilatation est le procd inverse.

33

Lapplication de lrosion avec llment structurant cercle de rayon Rmarqueurs , permet deacer tous les lments autres que les marqueurs. Mais ils auront eux aussi t touchs et en seront ressortis avec une taille rduite. Pour pallier ce problme, on applique une dilatation avec le mme lment structurant. Ceci va permettre de rcuprer les marqueurs avec leur taille dorigine. EAN Le code-barre EAN (European Article Numbering) est trs utilis dans le commercial cest le code utilis pour les produits du quotidien. Il permet dans ses 2 versions les plus rpendues de coder 8 caractre (resp 13) pour le code EAN8 (resp EAN13). QRcode Le QRcode (Quick Response Code) est un code qui permet de coder jusqu 4296 caractres. Ce code peut contenir toute sorte dinformation telles que des URL, du texte, un numro de tlphone, ... Cest son codage en 2 dimensions grce des modules noirs qui permet de coder autant de donnes.

34

Chapitre 9 Bibliographie/Webographie
Source pour la bibliothque de gnration de codes-barre pst-barcode : http://ctan.org/tex-archive/graphics/pstricks/contrib/pst-barcode Source de BarCapture pour la lecture de codes-barre : http://www.jaxo-systems.com/solutions/barcapture/ Site du logiciel AMC de correction automatise de formulaires QCM : http://home.gna.org/auto-qcm/index.fr

35

Vous aimerez peut-être aussi