1. Création et développement d’une application Java de
génération de contenu à partir de fichiers CSV sur une
plateforme web d’e-coaching
eBusiness Information
Vanessa Pasquet
Mars – Août 2012
2. Projet de fin d’études 2
Projet de fin d’études
I. Groupe Excilys
II. eBusiness Information : produit Capico
III. Enjeux du projet « Orthographe et
Conjugaison »
IV. Etapes de développement
V. Déploiement et tests
VI. Conclusion
3. I. Groupe Excilys 3
I. Groupe Excilys
7 sociétés de services en informatique
Technologies Java/JEE
Secteurs d’activités:
Santé, Banque, Sécurité, Fret, …
4. II. eBusiness Information, Capico 4
II. eBusiness Information
Conseil et développement
Expertise Java/JEE
Produit d’e-learning, e-coaching :
CAPICO
5. II. eBusiness Information, Capico 5
II. Capico
Plateforme web d’ e-learning / e-coaching
Apprentissage et suivi
Mise en commun des connaissances
6. II. eBusiness Information, Capico 6
Elève et Coach
Mode élève :
Consultation de cours
Cours sonorisés
Exercices QCM et questions à trous
Travail à faire et évaluation
Communication et commentaires
Mode coach:
Edition de cours
Sonorisation personnalisée
Edition exercices QCM et questions à trous
Classes : Travail à faire, évaluations et suivi des élèves
7. III. Enjeux du projet « Orthographe et
Conjugaison » 7
III. Enjeux du projet « Orthographe
et Conjugaison »
Académie de Créteil
Classes « pilotes » de primaire (CP au CM2)
Thèmes pédagogiques et programmes scolaires
Rentrée Septembre 2012
8. III. Enjeux du projet « Orthographe et
Conjugaison » 8
Formats de l’archive Orthographe
CSV Comma-Separated Values
Tabulaire
Encodage UTF-8
Orthographe.csv
pistache,picetache,pystache,pistacheux,pistache.mp3
piste,pystte,pisteux,pyste,piste.mp3
pistolet,pistaulet,pistoler,pystolet,pistolet.mp3
Audio format MP3
9. III. Enjeux du projet « Orthographe et
Conjugaison » 9
Dimensionnement
Orthographe
• QCM & question à trous
• CSV : 20 000 lignes/mots
• 40 000 questions
• Sonorisation
• Rapport d’état de sonorisation
Conjugaison
• Questions à trous
• 468 CSV : Lettre/Mode/Temps
• 80 000 questions
10. III. Enjeux du projet « Orthographe et
Conjugaison » 10
Développement
Méthodes
de création de cours Capico
communes
Hiérarchies de dossiers
Méthodes de « Parsing » adaptées
Sonorisation et gestion de contenu
11. III. Enjeux du projet « Orthographe et
Conjugaison » 11
Déploiement
Cycle de déploiement
Gestion de contenu
Flot d’exécution
Temps d’exécution
Rapports d’erreurs
Rapports d’état du gestionnaire de contenu
12. III. Enjeux du projet « Orthographe et
Conjugaison » 12
Gestion de projet
Equipe : 2 développeurs et 1 chef de projet
Intégration dans projet global « Capico
Condor »
13. IV. Etapes de développement 13
IV. Etapes de développement
A. Environnement de développement
B. Suivi de projet
C. Gestionnaire de versions
D. Choix technologiques
E. « Orthographe »
F. « Conjugaison »
14. IV. Etapes de développement
A. Environnement 14
A. Environnement de développement
Langage Java, version Java 6
Compatibilité avec projet « Capico Condor »
eBusiness Information : Java/JEE
Eclipse, version Indigo
Développement sous Windows 7
Machine virtuelle de tests Capico : Ubuntu
15. IV. Etapes de développement
B. Suivi de projet 15
B. Suivi de projet
2 étapes : « Orthographe » puis « Conjugaison »
Dimension du traitement des fichiers CSV
Scrum
Sprints
Scrum Master
Planification
Daily Scrum
AgileFant
Outil Open-Source
Gestion et visualisation des Sprints : burndown
16. IV. Etapes de développement
C. Gestionnaire de versions 16
C. Gestionnaire de versions
Gestion de versions
Git
Branche principale « master » du projet Capico
condor
Branche dédiée « CSVConverterBeforeMerge »
17. IV. Etapes de développement
D. Choix technologiques 17
D. Choix technologiques
Framework Spring
Java/JEE
Alternative aux EJB
Gestion des transactions
Intégration « Capico Condor »
Injection de dépendances
Accès aux données via JDBC
Pattern MVC
18. IV. Etapes de développement
D. Choix technologiques 18
D. Choix technologiques
Hibernate
Librairie Java
ORM : Mapping Relationnel d’Objets
Liaison
Objets Java et Objets persistés en base de
données
Méthodes d’accès aux données, s’affranchir de
requêtes SQL
Etats
des objets, gestion des écritures en base de
données
19. IV. Etapes de développement
D. Choix technologiques 19
D. Choix technologiques
Outil Maven
Version Maven2
Intégration plugin Eclipse
Gestion et génération de projets Java/JEE
Génération de module jar
Utilisable au déploiement
Intégration « Capico Condor »
Structure en POM, gestion de dépendances
20. IV. Etapes de développement
D. Choix technologiques 20
D. Choix technologiques
Log4J
API Java
Intégration à l’outil Maven
Logging
Rapport d’erreurs
Temps d’exécution
Rapport d’état des objets persistés
21. IV. Etapes de développement
E. Orthographe 21
E. Orthographe
Hiérarchie dossiers pour 20 000 mots
Contrainte: 50 éléments par dossier
Orthographe
20 dossiers
20 sous-dossiers
10 cours
10 questions = 10 mots
22. IV. Etapes de développement
E. Orthographe 22
E. Orthographe
Gestion de ressources
Alfresco
Contenu Audio
Attachement à objets en base de données par
connexions Alfresco
Chargement des fichiers MP3 de l’archive
Temps d’exécution
23. IV. Etapes de développement
E. Orthographe 23
E. Orthographe
Parsing CSV
Parsing linéaire
Création des mots au fur et à mesure du parcours
du fichier CSV
Organisation selon la hiérarchie
24. IV. Etapes de développement
E. Orthographe 24
E. Orthographe
Transactions avec Spring
Création de la hiérarchie de dossier
Création d’élément (cours/exercice)
Sonorisation
Chargement de fichier
Annotations
@Transactional en tête de méthode
Roll-back en cas d’erreur
Limiter impact du code sur reste de l’application
25. IV. Etapes de développement
F. Conjugaison 25
F. Conjugaison
Parsing
CSV
Opencsv, librairie Java, Sourceforge
Réécriture de fichiers CSV
Parcours de l’arborescence initiale
Conjugaison >> Lettre >> Mode >> fichier CSV avec
verbes et différents temps et différents groupes
Conjugaison >> Lettre >> Groupe >> Mode >> Temps >>
verbe
Séparateur « , » ou « ; » uniformisé à « ; »
Encodage UTF-8
CSVReader : lecteur d’objet File
InputStreamReader : Wrapper pour l’encodage
26. IV. Etapes de développement
F. Conjugaison 26
F. Conjugaison/Orthographe
Paramètres de lignes de commande
--archivePath
--targetFolder
--questionType (Orthographe)
--begin (Conjugaison)
--end (Conjugaison
--number (Orthographe)
Scripts lancés au déploiement sur serveur
27. V. Déploiement et tests 27
V. Déploiement et tests
Processus de livraison
28. V. Déploiement et tests 28
V. Déploiement et tests
Tests et Résultats « Orthographe »
Local :
VM Ubuntu, Virtual Box avec configuration
d’intégration « Capico Condor »
15 heures d’exécution
1 à 2 secondes par question
Contenu présent sur serveur local Alfresco
Diagnostic : Problème de performances
29. V. Déploiement et tests 29
V. Déploiement et tests
Tests et Résultats « Orthographe »
Recette:
Moins de mots
Confirmer diagnostic de performance
Erreur timeout Alfresco
Segmentation en paquets de 1000 mots à
chaque script
Création manuelle du dossier parent Orthographe
Récupération de l’id pour création de la
hiérarchie
30. V. Déploiement et tests 30
V. Déploiement et tests
Tests et Résultats « Orthographe »
Pré-production:
1000 mots en 80 minutes
Déploiement par paquets de 1000 mots
Maximum de 3 paquets lancés simultanément
pour garder visibilité sur l’exécution et la
connexion Alfresco
Passage en Production
31. V. Déploiement et tests 31
V. Déploiement et tests
Tests et Résultats « Conjugaison »
Local:
Temps de création de question croissant
10ms à 3 secondes après 30 minutes
Persistance de plus en plus d’objets
Cascade d’exécution
Clear() session Hibernate dans méthode de
création d’un DAO
Back-end de Capico embarqué dans jar généré
par Maven
32. V. Déploiement et tests 32
V. Déploiement et tests
Tests et Résultats « Conjugaison »
Recette:
Pas de conflits ni de problèmes de performances
diagnostiqués et réglés en local
Pas de sonorisation prévue
45 minutes ensemble des fichiers 468 CSV
Passage en Pré-production et Production
35. VI. Conclusion 35
VI. Conclusion
Réponse au besoin pour rentrée 2012
Déploiements réussis
Contenus répertoriés pour sonorisation future
Formation en début de stage
Projet pratique
Projet en situation
Gestion de projet
Technologies Java/JEE
36. Création et développement d’une application Java de
génération de contenu à partir de fichiers CSV sur une
plateforme web d’e-coaching
eBusiness Information
Vanessa Pasquet
Mars – Août 2012