Title: L
1Lécole dingénieurs des sciences et
technologies de linformation et de la
communication
Le Conservatoire National des Arts et Métiers
- 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,
2Présentation et plan
- Jean-Michel DOUIN (CNAM Paris) Denis BUREAU
(ESIEE) - I. Introduction
- II. Loutil JNEWS
- III. Technique et outils
- IV. Bilan au CNAM
- V. Bilan à lESIEE
- VI. Perspectives conclusion
- Questions ?
3Contenu de la partie I.
- I. Introduction
- I.1 Présentation des intervenants
- I.2 Historique de JNEWS à lESIEE
- I.3 Démonstration
- pour étudiant
- pour enseignant
4I.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)
5I.2 Historique de JNEWS à lESIEE
- 1998/1999 et 1999/2000 rendu par mail !
- 2000/2001 et 2001/2002 dépôtbalbutiements
Brazil, requêtes SQL par les enseignants !
- 2002/2003 et 2003/2004 dépôtlien 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ôtpage web avec applettes et
sources sur serveur cnam
- 2005/2006 et 2006/2007 autoévaluation et
dépôtjunit3 sur serveur a2si depot sources
par php (pas BdD) sur serveur a2si
6Démonstration depuis Bluej, outil submitter
7Soumettre ses travaux
8Le résultat des tests unitaires
9Accès aux sources des tests référents
10Bravo !!
11Bonne documentation ?
12Métriques de Berkeley
- PMD(http//pmd.sourceforge.net/) , etc
13Se situer
14Dépôt des sources et du rapport
15I.3 Démonstration
- 2007/2008 junit3 et depot à lESIEE (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 !
16Contenu de la partie II.
- II. Loutil JNEWS
- II.1 Objectifs Principe
- II.2 Côté enseignant gains
- II.3 Quelques statistiques
- II.4 Quelques interrogations
17II.1 Objectifs
- Enseignement de la programmation
- Cours magistral et éventuellement des Exercices
Dirigés - Travaux Pratiques (pour de futurs professionnels)
- Quels types dapplications ?
- 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
18II.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,
dassertions - 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
19II.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é
- ...
20II.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
21II.3 Ratio échecs/succès taux de complexité ?
- Un exemple dinterrogation
- tp7 et tp8
- tp9 en cours
22II.3 Aide à la correction dun TP (1/2)
- Par tp, le tp8 était facile
23II.3 Aide à la correction dun TP (2/2)
- Le tp7 était moins facile
- Traces sur la console détectées
System.out.print indésirables ?
24II.3 Tous les résultats par étudiant
25II.3 Assertions référentes du correcteur
- Quels échecs rencontrés ? Quelles mesures ?
26II.3 Assertions en clair et statistiques
- Soit pour cette assertion du tp7
27II.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 ?
28II.4 Interface administrateur
29II.4 Interface administrateur agenda et outils
30Contenu 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
31III.1 Objectifs
- Accessible depuis internet
- Étudiants et enseignants, correcteurs et
administrateurs - Assurer un couplage faible
- JNEWS / Outils
- Nimporte quel outil, nimporte quel exécutable ?
- Quel que soit le système dexploitation ?
- Sécurité, permissions ?
32III.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
33III.2 IDE, plugin
- BlueJ
- IDE avec Outil submitter intégré,
- envoi des travaux au protocole HTTP
- Via un simple formulaire
34III.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 ??? Cest le
commentaire retourné à létudiant
35III.4 Agenda, soumissions et dépôt
- Échéances gérées par lagenda 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
36III.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
37III.6 Ajout dun nouvel outil
- Scénario pour un couplage faible JNEWS / Outil
- Envoi du travail de létudiant
- Exécution de loutil côté serveur
- Analyse de laffichage résultant
- Transmission des résultats d'évaluation
- 2. Exécution de loutil
- Une balise BSL ltexec nouvel_outil
paramètresgt - 3-4. Analyse de laffichage résultant
- Une nouvelle balise BSL
- ltnouvel_outil paramètresgt
- Déclenche un programme Java danalyse de
laffichage et de calcul du résultat
38III.6 Table OUTILS_JNEWS
- pmd http//pmd.sourceforge.net/
- checkstyle http//checkstyle.sourceforge.net/
- findbugs http//findbugs.sourceforge.net/
- escjava http//kindsoftware.com/products/opensou
rce/ESCJava2/ - prolog http//www.swi-prolog.org/
39III.7 Sécurité, permissions
- Exécution dun Outil ?
- À lidentique dune commande effectuée localement
- Exécution du programme dun é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
40Contenu 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
41IV.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 dingénieurs notamment lESCPI-CNAM.
42IV.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
43IV.3 Observations
- NFP121 Côté auditeur ( cours/ED en présentiel,
TP à domicile) - Les tests/JNEWS deviennent lobjet de
discussions animées sur le forum - je ne comprend pas, mes tests fonctionnent
- à la soumission, jai 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
44IV.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
45Contenu de la partie V.
- V. Bilan à lESIEE
- 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
46V.1 IN413 passées
- Statistiques sur les 4 premiers TP 2006/2007686
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 ( gt à lESIEE !)43 soumissions pmd
par 17 étudiants25 soumissions findbugs par 15
étudiants62, 62, 58, 57 sur 65 ont rendu leur
TP 1, 2, 3, 4
47V.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, junit
- Clients et Serveurs Web junit, HttpUnit
48V.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, junit
- Clients et serveur RMI, junit
- Clients et Serveurs Web junit, HttpUnit
- Dépôt du projet
49V.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 74donc 2/3
hors des TP et 1/4 hors heures scolaires - Les étudiants vont au bout de chaque questionet
acceptent les remarques de lordinateur !- 4,
1, 3, nest pas acceptable- 4,1,3 est
différent de 4, 1, 3
50Contenu 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(à lESIEE / ailleurs
?)
51VI.1 Analyse des sources
- Existant PMD, FindBugs, CheckStyle, non
adaptés à chaque questionExemple Certains
attributs ne servent à rien. - A faire vérifier la méthode employée par
létudiant pour résoudre une question, même sil
a 0 échecgt introspection Java et/ou
décompilationExemple Pour résoudre ce
problème, une HashMap serait plus appropriée
quune ArrayList.
52VI.2 Autres développements futurs
- Intégration dautres outils
- JDepend, JavaNCSS, Dependency finder (métriques
de qualité), - JPlag (plagiat)
- Outil de gestion des versions de fichierspour
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
53VI.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.
54VI.4 Utilisations futures
- A lESIEE
- 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,
55VI.5 Conclusion
- Lutilisation de JNEWS est un succès -
fiabilité, performance, apport pratique- travail
effectif à domicile des étudiants- suivi et
amélioration de lunité pour les enseignants - Il reste beaucoup à faire !
- http//jfod.cnam.fr/jnews/
- Vos questions ?