La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

JNEWS (Java New Evaluation Web Service)

Présentations similaires


Présentation au sujet: "JNEWS (Java New Evaluation Web Service)"— Transcription de la présentation:

1 JNEWS (Java New Evaluation Web Service)
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,

2 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 ?

3 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

4 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)

5 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

6 Démonstration depuis Bluej, outil submitter

7 Soumettre ses travaux

8 Le résultat des tests unitaires

9 Accès aux sources des tests « référents »

10 Bravo !!

11 Bonne documentation ?

12 Métriques de Berkeley PMD( , etc…

13 Se situer …

14 Dépôt des sources et du rapport
En fonction d’un agenda

15 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 !

16 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 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

18 II.1 Principe Principe initial de JNEWS JNEWS maintenant
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

19 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é ...

20 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

21 II.3 Ratio échecs/succès : taux de complexité ?
Un exemple d’interrogation tp7 et tp8 tp9 en cours

22 II.3 Aide à la correction d’un TP (1/2)
Par tp, le tp8 était facile

23 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 ?

24 II.3 Tous les résultats par étudiant
Un bilan En détail ou une mesure de l’effort ?

25 II.3 Assertions référentes du correcteur
Quels échecs rencontrés ? Quelles mesures ?

26 II.3 Assertions en clair et statistiques
Soit pour cette assertion du tp7 :

27 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 ?

28 II.4 Interface administrateur

29 II.4 Interface administrateur : agenda et outils
Interface extensible

30 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

31 III.1 Objectifs Accessible depuis internet Assurer un couplage faible
É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 ?

32 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

33 III.2 IDE, plugin BlueJ : Via un simple formulaire
IDE avec Outil submitter intégré, envoi des travaux au protocole HTTP Via un simple formulaire

34 III.3 Tests et java Tests fonctionnels en « Boîtes Noires »
Outil ou 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

35 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 …

36 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

37 III.6 Ajout d’un nouvel outil
Scénario pour un couplage faible JNEWS / Outil 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

38 III.6 Table OUTILS_JNEWS
pmd checkstyle findbugs escjava prolog

39 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

40 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

41 IV.1 CNAM Paris Programmation Avancée (niveau L3) (NFP121)
250 auditeurs/an, 10 TP, plus de 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.

42 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

43 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

44 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

45 Contenu de la partie V. V. Bilan à l’ESIEE
V.1 IN413 passées (depuis 1999) V.2 IN /2008 (junit3, depot) V.3 OV5-SEJA 2007/2008 (junit3, depot) V.4 Observations

46 V.1 IN413 passées Statistiques sur les 4 premiers TP 2006/ soumissions junit3 :     réparties entre 9h40 et 19h24, h10     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

47 V.2 IN /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

48 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, junit Clients et serveur RMI, junit Clients et Serveurs Web junit, HttpUnit Dépôt du projet

49 V.4 Observations Les étudiants travaillent ! - pendant les 2h de TP : 611 dont pendant les heures scolaires - TP : 1125 dont h30-8h, 12h-13h, 19h-22h : 447 dont h-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]

50 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 ?)

51 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. »

52 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

53 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.

54 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, …

55 Vos questions ? 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 ! Vos questions ?


Télécharger ppt "JNEWS (Java New Evaluation Web Service)"

Présentations similaires


Annonces Google