Le Conservatoire National des Arts et Métiers L’école d’ingénieurs des sciences et technologies de l’information et de la communication JNEWS (Java New Evaluation Web Service) Une.

Download Report

Transcript Le Conservatoire National des Arts et Métiers L’école d’ingénieurs des sciences et technologies de l’information et de la communication JNEWS (Java New Evaluation Web Service) Une.

Le Conservatoire National
des Arts et Métiers
L’école d’ingénieurs des sciences et technologies
de l’information et de la communication
JNEWS
(Java New Evaluation Web Service)
Une plate-forme de dépôt, test fonctionnel,
et analyse de code source pour
Travaux Pratiques en programmation
ESIEE,
Présentation et plan
Jean-Michel DOUIN (CNAM Paris) & Denis BUREAU (ESIEE)
• I. Introduction
• II. L’outil JNEWS
• III. Technique et outils
• IV. Bilan au CNAM
• V. Bilan à l’ESIEE
• VI. Perspectives & conclusion
• Questions ?
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
2 / 46
Contenu de la partie I.
• I. Introduction
• I.1 Présentation des intervenants
• I.2 Historique de JNEWS à l’ESIEE
• I.3 Démonstration
• pour étudiant
• pour enseignant
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
3 / 46
I.1 Présentation des intervenants
• Jean-Michel Douin :
• Enseignant au CNAM Paris(Cedric)
• concepteur et implémenteur de JNEWS
• Denis Bureau :
• Enseignant permanent à ESIEE Paris (A2SI)
• Spécialisé en langages de programmation (M. OO)
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
4 / 46
I.2 Historique de JNEWS à l’ESIEE
• 1998/1999 et 1999/2000 : rendu par mail !
• 2000/2001 et 2001/2002 : dépôt
balbutiements : Brazil, requêtes SQL par les enseignants !
• 2002/2003 et 2003/2004 : dépôt
lien vers page web avec applettes et sources
(serveur cnam, mais consultation étudiants)
- risque de copie sauvage dénoncé par les étudiants
- risque d’ inaccessibilité des pages web par les enseignants
• 2004/2005 : dépôt
page web avec applettes et sources sur serveur cnam
• 2005/2006 et 2006/2007 : autoévaluation et dépôt
junit3 : sur serveur a2si
depot : sources par php (pas BdD) sur serveur a2si
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
5 / 46
Démonstration depuis Bluej, outil submitter
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
6 / 46
Soumettre ses travaux
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
7 / 46
Le résultat des tests unitaires
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
8 / 46
Accès aux sources des tests « référents »
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
9 / 46
Bravo !!
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
10 / 46
Bonne documentation ?
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
11 / 46
Métriques de Berkeley
• PMD(http://pmd.sourceforge.net/) , etc…
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
12 / 46
Se situer …
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
13 / 46
Dépôt des sources et du rapport
• En fonction d’un agenda
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
14 / 46
I.3 Démonstration
2007/2008 : junit3 et depot à l’ESIEE (serveur a2si)
En résumé (étudiant / enseignant) :
• Compilateur : erreurs de syntaxe
• Tests locaux : fournis, ou pensés par l’étudiant
• Tests distants : pensés par les enseignants
• Consultations : historique, et résultats des autres
• Visualisations : erreurs, assertion, source
• Analyses des sources : outils pointilleux, verbeux
• Dépôt des sources : TP rendu !
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
15 / 46
Contenu de la partie II.
• II. L’outil JNEWS
• II.1 Objectifs & Principe
• II.2 Côté enseignant : gains
• II.3 Quelques statistiques
• II.4 Quelques interrogations
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
16 / 46
II.1 Objectifs
• Enseignement de la programmation …
• Cours magistral et éventuellement des Exercices Dirigés
• Travaux Pratiques (pour de futurs professionnels)
• Quels types d’applications ?
• Combien de classes ? de lignes ? Complexité ?
• Qualité des programmes ?
• Tests fonctionnels, analyse des sources, documentation, preuves ?
• Comment encourager les étudiants ?
• Comment vérifier le travail fourni ?
• Étudiants comme enseignants
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
17 / 46
II.1 Principe
•
Principe initial de JNEWS
•
Auto-évaluation
•
•
Pour les étudiants : une aide à la réponse attendue
Pour les enseignants : mesures et statistiques
•
•
Enseignant/correcteur : mise en place de tests, d’assertions
JNEWS maintenant
•
•
Une analyse des sources et du code par des outils existants
Un dépôt des travaux effectués avec un échéancier
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
18 / 46
II.2 Enseignants : gains escomptés
• Identifier les échecs/réussites rencontrés afin de :
• Reprendre une partie du cours,
• Vérifier les acquisitions
• Ajouter d'autres questions,
• Retirer les questions triviales,
• Ajouter de nouveaux tests,
• Retirer certaines ambiguïtés de l’énoncé
• ...
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
19 / 46
II.2 Quelles mesures ?
• Statistiques pendant et après la remise du TP
• Le nombre d'auditeurs et leurs tentatives,
• Les échecs et leur occurrence,
• Le nombre d'auditeurs ayant réussi, en une seule soumission,
• Les échecs les plus fréquents pour un TP donné,
• Des ratios comme le nombre d'échecs sur le nombre de réussites,
• Le source des assertions ayant engendré un échec,
• Le nombre de réussites ou d’échecs pour chaque assertion
• …
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
20 / 46
II.3 Ratio échecs/succès : taux de complexité ?
• Un exemple d’interrogation
•
•
tp7 et tp8
tp9 en cours
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
21 / 46
II.3 Aide à la correction d’un TP (1/2)
• Par tp, le tp8 était facile
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
22 / 46
II.3 Aide à la correction d’un TP (2/2)
• Le tp7 était moins facile …
•
* Traces sur la console détectées System.out.print indésirables ?
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
23 / 46
II.3 Tous les résultats par étudiant
• Un bilan
• En détail ou une mesure de l’effort ?
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
24 / 46
II.3 Assertions référentes du correcteur
• Quels échecs rencontrés ? Quelles mesures ?
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
25 / 46
II.3 Assertions en clair et statistiques
• Soit pour cette assertion du tp7 :
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
26 / 46
II.4 Accès aux échecs rencontrés pendant le TP
• En temps-réel, un poste/portable dédié
• Moniteurs de TP, vacataires
• Accès aux sources des tests établis par le correcteur
 Réponse immédiate
• Aux doutes, aux questions de l’étudiant :
« expected: "az" but was: "bz" »
mais à quel test ?
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
27 / 46
II.4 Interface administrateur
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
28 / 46
II.4 Interface administrateur : agenda et outils
• Interface extensible
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
29 / 46
Contenu de la partie III.
III. Objectifs, technique et outils
III.1 Brazil et HSQLDB
III.2 Java, IDE, plugin : JDK6, BlueJ, Submitter
III.3 Tests et java : junit
III.4 Dépôt
III.5 Autres outils distants
(pmd, findbugs, jass, esc/java, prolog, …)
• III.6 Ajouter un nouvel outil
• III.7 Sécurité, permissions
•
•
•
•
•
•
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
30 / 46
III.1 Objectifs
• Accessible depuis internet
• Étudiants et enseignants, correcteurs et administrateurs
• Assurer un couplage faible
• JNEWS / Outils
• N’importe quel outil, n’importe quel exécutable ?
• Quel que soit le système d’exploitation ?
• Sécurité, permissions ?
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
31 / 46
III.1 Brazil et HSQLDB
• Technologies utilisées
• Serveur Brazil de Sun, 100% Java (Sun Public License)
•
•
•
•
Choix historique
Boîte à outils pour la construction de serveurs Web
Modulaire, léger, simple
BSL langage de script associé (cf. PHP, …)
• HSQLDB, 100% Java (BSD License)
• Base de données éprouvée (OpenOffice 2.0, Hibernate, …)
• 20 classes développées + une vingtaine de scripts BSL
• 2 JVM indépendantes
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
32 / 46
III.2 IDE, plugin
• BlueJ :
• IDE avec Outil submitter intégré,
• envoi des travaux au protocole HTTP
• Via un simple formulaire
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
33 / 46
III.3 Tests et java
•Tests fonctionnels en « Boîtes Noires »
• Outil www.junit.org ou www.httpUnit.org
•Exemple :
void test_ajouter_référent() {
• liste.ajouter(3);
// méthode ajouter de la solution de l’étudiant
• assertTrue("ajouter est en échec ???", liste.contient(3)); // le test
}
ajouter est en échec ???
C’est le commentaire retourné à l’étudiant
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
34 / 46
III.4 Agenda, soumissions et dépôt
• Échéances gérées par l’agenda de JNEWS
• Échéance rappelée à chaque soumission
• Dépôt de la solution de l’étudiant
• Un document HTML comme rapport de TP (avec ou sans applette)
• Seul ou en binôme,
• À temps, en retard …
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
35 / 46
III.5 Autres outils distants implémentés
• Autres tests unitaires (inspirés de jUnit)
• HttpUnit, jWebUnit,
• Pour Prolog (swi-prolog),
• Analyse de sources
• PMD, checkstyle, findbugs, jlint
• Programmation par contrats
• Jass3, ModernJass
• Aide à la « Preuve » de programme
• ESC/JAVA2
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
36 / 46
III.6 Ajout d’un nouvel outil
•
Scénario pour un couplage faible JNEWS / Outil
1.
2.
3.
4.
Envoi du travail de l’étudiant
Exécution de l’outil côté serveur
Analyse de l’affichage résultant
Transmission des résultats d'évaluation
2. : Exécution de l’outil
Une balise BSL <exec nouvel_outil paramètres>
3-4. : Analyse de l’affichage résultant
Une nouvelle balise BSL
<nouvel_outil paramètres>
Déclenche un programme Java d’analyse de l’affichage et de calcul du résultat
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
37 / 46
III.6 Table OUTILS_JNEWS
pmd
checkstyle
findbugs
escjava
prolog
…
http://pmd.sourceforge.net/
http://checkstyle.sourceforge.net/
http://findbugs.sourceforge.net/
http://kindsoftware.com/products/opensource/ESCJava2/
http://www.swi-prolog.org/
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
38 / 46
III.7 Sécurité, permissions
• Exécution d’un « Outil » ?
• À l’identique d’une commande effectuée localement
• Exécution du programme d’un étudiant
• Qui boucle ?
•  délai de garde
• Qui exécute des appels systèmes ? (fichiers, requêtes, …)
•  SecurityManager en Java,
• adaptable en fonction du TP ou de la question
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
39 / 46
Contenu de la partie IV.
• IV. Bilan au CNAM
• IV.1 CNAM Paris
(plusieurs unités, plusieurs années)
• IV.2 Les centres associés CNAM
(diffusion, utilisation locale, agrégation)
• IV.3 Observations
- sur étudiants (monôme, à distance)
- sur enseignants
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
40 / 46
IV.1 CNAM Paris
• Programmation Avancée (niveau L3) (NFP121)
• 250 auditeurs/an, 10 TP, plus de 10000 soumissions
• « Il est fortement conseillé de faire les TP »
• environ 150 auditeurs/an pour plusieurs UE en M1 et M2
• 20 auditeurs pour une unité M1 totalement à distance (FOD)
• Écoles d’ingénieurs notamment l’ESCPI-CNAM.
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
41 / 46
IV.2 Les centres associés CNAM
• Un site JNEWS par centre associé CNAM
• Gestion/soumissions autonomes
• Diplôme national : même contenu et même examen
• Exemple : NFP121 (Programmation Avancée L3)
• Collecte des résultats des Centres Cnam,
• Statistique nationale des tentatives aux mêmes TP,
• Export en XML des journaux de JNEWS
• Cf. projet ESIEE/IN4 en 2007
• par Aymen Boudrigua et Aymen Bouzouita
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
42 / 46
IV.3 Observations
• NFP121 : Côté auditeur ( cours/ED en présentiel, TP à domicile)
• + Les tests/JNEWS deviennent l’objet de discussions animées
sur le forum
• « je ne comprend pas, mes tests fonctionnent …
à la soumission, j’ai les problèmes suivants … »
• +
Motivation accrue,
• + Interactions avec les enseignants en ED !
• - Critiques
•Sur le canevas des classes imposé
•Sur le nom imposé des méthodes
 Créativité moindre
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
43 / 46
IV.3 Observations
• Côté correcteur
• + Un cadre imposé des réponses attendues,
• + Tests/JNEWS + rapport = correction facilitée
(ou bien les tests réussis induisent une lecture plus rapide du rapport …
en moyenne 120 TP à corriger par semaine !)
• - Un test référent se construit sur au moins 2 années
• + Acquis effectifs pour la poursuite de la formation
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
44 / 46
Contenu de la partie V.
• V. Bilan à l’ESIEE
• V.1 IN413 passées (depuis 1999)
• V.2 IN413 2007/2008 (junit3, depot)
• V.3 OV5-SEJA 2007/2008 (junit3, depot)
• V.4 Observations
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
45 / 46
V.1 IN413 passées
• Statistiques sur les 4 premiers TP 2006/2007
686 soumissions junit3 :
réparties entre 9h40 et 19h24, + 1 22h10
dont 368 avec 0 fautes
dont 285 hors créneaux de TP
dont 5 le week-end ( => à l’ESIEE !)
43 soumissions pmd par 17 étudiants
25 soumissions findbugs par 15 étudiants
62, 62, 58, 57 sur 65 ont rendu leur TP 1, 2, 3, 4
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
46 / 46
V.2 IN413 2007/2008
• 1735 soumissions (dont 850 succès et 135 exceptions)
•
•
•
•
Seulement 20 findbugs et 14 pmd
Et 525 dépôts (dont 450 à temps)
67 (60) étudiants sur 69 ont soumis (déposé) 7 TP
groupe1: 456, groupe 2 : 478, groupe 3 : 649
• Tests unitaires pour
• Applettes, graphique,
• Clients et Serveurs Web
junit
junit, HttpUnit
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
47 / 46
V.3 OV5-SEJA (COSI) 2007/2008
• 221 soumissions (dont 107 succès et 41 exceptions)
• Et 60 dépôts (dont 38 à temps)
• Tests unitaires pour
• Applettes, graphique,
• Clients et serveur RMI,
• Clients et Serveurs Web
junit
junit
junit, HttpUnit
• Dépôt du projet
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
48 / 46
V.4 Observations
• Les étudiants travaillent !
- pendant les 2h de TP : 611 dont 498
- pendant les heures scolaires - TP : 1125 dont 738
- 7h30-8h, 12h-13h, 19h-22h : 447 dont 188
- 22h-2h20 : 109 dont 74
donc 2/3 hors des TP et 1/4 hors heures scolaires
• Les étudiants vont au bout de chaque question
et acceptent les remarques … de l’ordinateur !
- [4, 1, 3, ] n’est pas acceptable
- [4,1,3] est différent de [4, 1, 3]
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
49 / 46
Contenu de la partie VI.
• VI. Perspectives & conclusion
• VI.1 Analyse des sources
(générale ou particulière)
• VI.2 Autres développements futurs
• VI.3 Développement « en cours »
• VI.4 Utilisations futures
(à l’ESIEE / ailleurs ?)
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
50 / 46
VI.1 Analyse des sources
• Existant : PMD, FindBugs, CheckStyle, … :
non adaptés à chaque question
Exemple : « Certains attributs ne servent à rien. »
• A faire : vérifier la méthode employée par l’étudiant
pour résoudre une question, même s’il a 0 échec
=> introspection Java et/ou décompilation
Exemple : « Pour résoudre ce problème, une
HashMap serait plus appropriée qu’une ArrayList. »
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
51 / 46
VI.2 Autres développements futurs
• Intégration d’autres outils
• JDepend, JavaNCSS, Dependency finder (métriques de qualité), …
• JPlag (plagiat)
• Outil de gestion des versions de fichiers
pour développeurs JNEWS :
• .java : solution, extraits pour énoncé
• tests : pour jnews, extraits pour énoncé
• différentes années, essais avec erreurs
• Nouvel « outil » autour de gcc
• Tests supplémentaires pour éviter les « erreurs »
• Formulation des résultats plus claire, en français
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
52 / 46
VI.3 Développement « en cours »
• En 2008 : Julien MEDDAH (étudiant I4)
• Plug-in de soumissions des travaux
• Pour les IDE NetBeans et Eclipse
Phase préparatoire commencée.
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
53 / 46
VI.4 Utilisations futures
A l’ESIEE :
• IN4A21 (depuis lundi : junit3 et depot)
• PR3S02 (avant la fin de ce mois : depot)
• IN101 (de février à mai : junit3 et depot)
• PR102 (début juin : depot)
• …
Diffusion de JNEWS
• Centralisée : intégré au site ESIEE ou du Cnam
• Répartie : site complètement autonome
 Reste un travail important de mise à disposition, notices, suivi, …
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
54 / 46
VI.5 Conclusion
• L’utilisation de JNEWS est un succès :
- fiabilité, performance, apport pratique
- travail effectif & à domicile des étudiants
- suivi et amélioration de l’unité pour les enseignants
• Il reste beaucoup à faire !
http://jfod.cnam.fr/jnews/
Vos questions ?
17/01/08 - L’école d’ingénieurs des sciences et technologies de l’information et de la communication
55 / 46