RAPPORT DE STAGE DE MASTER 2 INFORMATIQUE - 9 JUIN 2015 - Indicateurs de pilotage du numérique en EPLE Observatoire des usages du numérique éducatif Stage réalisé du 12/01/2015 au 04/07/2015 Nicolas Defaÿ Numéro étudiant : 34003813 Tuteur professionnel M. François MILLET, Inspecteur d'Académie - Inspecteur Pédagogique Régional et Délégué Académique au Numérique dans l’académie de La Réunion. Tuteurs universitaires M. Frédéric MESNARD, Professeur des universités, M. Henri RALAMBONDRAINY Henri, Professeur des universités.
74
Embed
Indicateurs de pilotage du numérique en EPLElim.univ-reunion.fr/staff/fred/M2info/14-15/Soute... · Master 2 en informatique de l’université de la Réunion. Le but de ce travail
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
RAPPORT DE STAGE DE MASTER 2 INFORMATIQUE
- 9 JUIN 2015 -
Indicateurs de pilotage du
numérique en EPLE
Observatoire des usages du numérique
éducatif
Stage réalisé du 12/01/2015 au 04/07/2015
Nicolas Defaÿ
Numéro étudiant : 34003813
Tuteur professionnel
M. François MILLET, Inspecteur d'Académie - Inspecteur
Pédagogique Régional et Délégué Académique au Numérique
dans l’académie de La Réunion.
Tuteurs universitaires
M. Frédéric MESNARD, Professeur des universités,
M. Henri RALAMBONDRAINY Henri, Professeur des universités.
"Un fait mal observé est plus pernicieux qu'un mauvais raisonnement."
Paul Valéry, Tel quel, 1929
Rapport de stage de M2 Informatique / Nicolas Defaÿ
4
Résumé
Le pilotage d'une organisation nécessite de mettre en place des indicateurs de suivi
d’activité. Il a pour objectif de mesurer l’efficacité des actions menées et d'ajuster les
moyens en fonction des résultats observés. Cette démarche relève de l’informatique
décisionnelle.
La Délégation Académique au Numérique Éducatif (DANE), la Division des Services
Informatiques (DSI) et les personnels de direction des Établissements Publics Locaux
d'Enseignement (EPLE) ont besoin d'indicateurs pour suivre l'évolution des usages au
sein des Environnements Numériques de Travail (ENT). Ce projet consiste à offrir à ces
décideurs, des tableaux de bord pertinents et facilement accessibles afin qu'ils puissent
suivre l'évolution des pratiques et mesurer l'efficacité de leur stratégie. Ce travail s’intègre,
d’une manière plus globale, dans la mise en place d’un observatoire des usages du
numérique éducatif.
Mots-clés système éducatif environnement numérique de travail indicateur
pilotage observatoire
Abstract
The organization management steering is based on activity monitoring. Its key
objective is to measure the effectiveness of actions carried out and adjust the activities.
This approach is commonly called business intelligence.
The academic office of digital learning, the information system division and school
administrators need meaningful indicators to track Digital Working Environment (DWE)
practices. The aim of this project is to provide some scorecards to objectively evaluate the
effectiveness of their digital strategy. This work fits in with the project of the digital usage
observatory.
Keywords educational system digital working environment indicator steering
observatory
Rapport de stage de M2 Informatique / Nicolas Defaÿ
5
Remerciements
Je tiens à remercier dans un premier temps, M. François MILLET délégué
académique au numérique éducatif de l’académie de la Réunion pour la confiance qu’il
m’a accordée dès le lancement de ce projet.
Mes remerciements s’étendent également aux partenaires de ce projet pour leur
écoute et le temps qu’ils m’ont accordé. Je pense à M. Christophe PORLIER, chargé du
projet de mise en place de l’observatoire des usages du numérique à l’université, à M.
Jean SIMON, chargé de mission au numérique à l’École Supérieure du Professorat et de
l'Éducation (ESPE) ainsi qu’à M. Clément BREVART, directeur du Canopé.
Je remercie également toute l’équipe pédagogique du master informatique de
l’université de la Réunion et tout particulièrement messieurs Henri RALAMBONDRAINY et
Fréderic MESNARD pour leur soutien et leurs précieux conseils.
Pour finir, je remercie toutes les personnes de la DANE et de la DSI avec lesquelles
j’ai eu l’occasion de travailler pour leur écoute et leur précieuse collaboration.
Rapport de stage de M2 Informatique / Nicolas Defaÿ
Rapport de stage de M2 Informatique / Nicolas Defaÿ
18
3. De l’observation à l’observatoire
3.1 Enquêtes sur le numérique éducatif
« Élément clé de la refondation de l'École, la diffusion des usages du numérique dans
l'enseignement constitue un puissant levier de modernisation, d'innovation pédagogique
et de démocratisation du système scolaire » 12 . Plusieurs actions nationales ont été
menées en accord avec cette stratégie. Voici un rapide tour d’horizon de ces actions qui
concernent uniquement les observations liées aux usages.
Mesure d’audience des ENT13
Depuis 2005, la Caisse des Dépôts et Consignations offre un dispositif de mesure
d’audience des ENT (18 académies concernées en 2013). Les tableaux de bord proposés
permettent de suivre l’évolution des usages et d’ajuster la stratégie de déploiement des
ENT. Si l’académie de la Réunion n’est pas concernée par ce dispositif, la nomenclature
des services proposés dans les ENT est néanmoins utilisée. En janvier 2014, la
répartition des visites par profil d’utilisateur était la suivante : 53.1% élèves, 20.3%
enseignants, 22.3% parents et 4.3% pour les autre profils.
Enquête PROFETIC14
Menée en 2011, 2012 et 2014 auprès des enseignants du second degré cette
enquête a pour objectif de connaître les pratiques des enseignants en matière d'utilisation
du numérique. En 2014, 49% des enseignants sondés sont convaincus des atouts du
numérique dans l'éducation contre 39% en 2012.
Dispositif d'évaluation des usages des ENT15 (EVALuENT)
Le dispositif EVALuENT a pour objectif d’évaluer les usages des ENT sur 30
académies. À cet effet, deux enquêtes nationales ont été menées auprès des parties
prenantes (porteurs de projet, élèves, parents, enseignants, …). La première en 2012
l’autre en 2014. Si l’ENT contribue au rapprochement entre les familles et les
établissements, les principaux usages restent liés aux services de vie scolaire (cahier de
textes et suivi des notes).
12
Ministère de l’éducation nationale. Enseigner avec le numérique [en ligne] (page consultée le 30/05/2015) http://eduscol.education.fr/pid26435/enseigner-avec-le-numerique.html
Rapport de stage de M2 Informatique / Nicolas Defaÿ
20
B) Mission
1. Singularité du contexte de stage
Ce stage s’est déroulé alors que je poursuivais mon activité professionnelle
d’enseignant en informatique de gestion au lycée Bellepierre à Saint-Denis. Compte tenu
de la situation, il était indispensable que mon travail démarre avant la date officielle de
début de stage.
Mon intervention se poursuivra également au-delà de la période officielle de stage car
le succès du déploiement complet de la solution sera bien plus optimum au démarrage
d’une nouvelle année scolaire qu’en fin d’année.
2. Présentation et objectifs
Fin septembre 2014, je prends connaissance de la feuille de route académique du
numérique éducatif. La mise en place d’un « … observatoire des usages du numérique
éducatif, piloté par l’académie et impliquant le Canopé, l’ESPE et des laboratoires
universitaires. » (Rectorat de La Réunion - DANE, 2014, p. 8) attire tout particulièrement
mon attention. Je prends alors contact avec M. Millet, responsable de la DANE, pour
proposer mes services dans le cadre du stage de master 2 informatique qui doit se
dérouler du 12 janvier 2015 au 4 juillet 2015.
À l’issue de plusieurs échanges et rencontres, le périmètre du stage est établi.
L’objectif principal du travail mené consiste à mettre en place une solution applicative qui
offre aux chefs d’établissements des EPLE mais également aux personnels de la DANE
et de la DSI, des indicateurs de pilotage du numérique. Ces indicateurs concernent
exclusivement les usages observés dans l’ENT. Le développement de cet outil implique
naturellement de définir un processus d’importation et d’historisation des données
collectées. Il contribue ainsi à l’observatoire des usages.
Les objectifs secondaires sont axés sur les observatoires des usages du numérique
éducatif et la collaboration avec les différents acteurs. À cet effet, j’ai rencontré l’ensemble
des partenaires impliqués dans cette action et ai participé au groupe de pilotage de
l’observatoire des usages de l’université de la Réunion. L’intégration des données du
Canopé est également une piste de travail.
Rapport de stage de M2 Informatique / Nicolas Defaÿ
21
3. Plan d’action
À la lecture du paragraphe « A) 3. De l’observation à l’observatoire » (p.18), nous
pouvons conclure que la mise en place d’un observatoire est un travail de grande
envergure qui nécessite une réelle organisation.
Fort de ce constat, il s’est rapidement avéré que la mise en place d’un tel
observatoire, dans le cadre de mon stage, était prématurée. Les efforts devaient se porter
en premier lieu sur la récolte, la consolidation et l’analyse des données existantes.
Deux besoins forts ont été exprimés par M. Millet, responsable de la DANE :
Proposer des indicateurs de pilotage de l’ENT aux différents acteurs (PERDIR,
IA-IPR, DANE, DSI),
Mettre en place un outil de suivi des usages à destination de la DANE.
3.1 Priorité aux indicateurs de pilotage
« Une grande majorité des chefs d’établissement (entre 65% et 73% selon le type
d’établissement) considère l’ENT comme stratégique dans la mise en œuvre de son projet
et/ou de son contrat d’objectifs en cours »19.
« M. le Recteur a demandé aux chefs d’établissement d’intégrer à leur bilan
pédagogique annuel un compte rendu de ce qui a été mis en place pour favoriser le
pilotage et développer les usages du numérique éducatif au sein de leur établissement. »
(Académie de La Réunion - DANE, 2014, p. 5)
Le thème principal de l’étude de cas de la session 2015 du concours de recrutement
des personnels de direction concernait l’ENT20. L’une des missions confiée aux candidats
consistait à établir un plan de relance du développement de l’ENT.
Tous ces éléments confortent les priorités de la DANE et ont permis de délimiter le
périmètre du stage.
19
Direction générale de l’enseignement scolaire. EVALuENT Enquête nationale 2012 [en ligne] (page consultée le 30/05/2015) http://cache.media.eduscol.education.fr/file/ENT/46/6/EVALuENT-synthese-enquete-2012-VF_241466.pdf
20 Ministère de l’éducation nationale. Session 2015 du Concours de recrutement des
personnels de direction de première classe et de deuxième classe [en ligne] (page consultée le 30/05/15) http://www.cndp.fr/crdp-dijon/IMG/pdf/sujet-de-concours-des-personnels-de-direction-session-2015.pdf
Gestion des compétences cerise pro, lpc, melia, gestion b2i, gestion des competences
Gestion du temps calendrier, webcalendar
Orientation webclasseur
Parcours pédagogique devoir, eop, moodle
Réservation des
ressources
grr, glpi
Services académiques services académiques
Services vie scolaire absences, cdt, cdc, teleservices, gepi, pronote, sconetnote
Stockage et partage ajaxplorer, pydio, etherpad, ethercalc, limesurvey,
opensondage, owncloud
Travail collaboratif dokuwiki, fluxbb, statusnet, jappix, spip, taskfreak,
wordpress, piwigo
Figure 4 : Classification des indicateurs
3.4 Synergie avec l’université
Dans le cadre de ce projet, j’ai eu l’opportunité d’intégrer le groupe de travail dédié à
la création de l’observatoire des usages du numérique de l’université de la Réunion.
Cette participation avait pour objectif de partager les points de vue sur la notion
d’observatoire et de favoriser la coordination des actions menées à l’université et dans
l’académie. À ce titre, la classification des usages de la Caisse des Dépôts servira de
base commune aux deux observatoires. Ce référentiel facilitera les échanges de données
et le suivi des indicateurs communs. Dans le même ordre d’idée, le questionnaire de « La
grande enquête des usages du numérique » menée par l’université a été communiqué à
la DANE.
L’université travaille actuellement sur la mise en place un entrepôt de données. Il est
prévu à terme d’y intégrer les données collectées dans le cadre de mon travail.
23
Caisse des Dépôts. Educatice 2011 - Dispositif de mesure d’audience des ENT p. 48 [en ligne] (page consultée le 06/02/2015) http://projets-ent.com/wp-content/uploads/2011/11/Pr%C3%A9sentation%20EducaTICE%202_Les%20%C3%A9volutions%20du%20dispositif.pdf
Rapport de stage de M2 Informatique / Nicolas Defaÿ
40
J’ai par la suite utilisé MySQL Workbench39 pour les raisons suivantes :
Possibilité de synchroniser le modèle en fonction des évolutions de la base,
Possibilité d’afficher les déclencheurs des tables sur le modèle,
Aspect graphique plus agréable,
Modèle relationnel plus concis qu’un MCD dans ce contexte (absence des
entités « date »).
La modélisation objet (diagramme de classes et diagramme de séquence) a été
réalisée avec le logiciel libre de création de diagramme Dia40. Dia propose un paquetage
de formes dédiées aux diagrammes UML. C’est un logiciel « léger » qui offre l’avantage
de générer des squelettes de classe dans différents langages (C++, Java, Python, …). La
génération de code PHP nécessite l’installation du greffon (plugin) UML2PHP541. Les
spécifications indiquées lors de la conception sont intégrées sous forme de commentaires
dans le code en respectant les conventions exploitées par les outils de génération
automatique de documentation comme ApiGen.
1.3 Environnement de développement intégré
Cela fait plusieurs années que j’utilise l’IDE 42 NetBeans pour mes projets
PHP/MySQL. NetBeans permet l’intégration d’outils très pratiques pour produire du code
de qualité tout en améliorant sa productivité :
- Débogage avec Xdebug (http://xdebug.org/),
- Génération automatique de documentation avec ApiGen (http://www.apigen.org/),
- Analyse du code avec PHPMD - PHP Mess Detector (http://phpmd.org/),
- Tests unitaires avec PHPUnit (https://phpunit.de/).
39
MySQL Workbench est disponible sur http://dev.mysql.com/downloads/workbench/ (licence GPL). C’est un outil complet d’administration et de gestion de bases MySQL
40 https://wiki.gnome.org/Apps/Dia
41 http://uml2php5.zpmag.com/index.php
42 IDE : Integrated Development Environment. Environnement de développement intégré (EDI).
Rapport de stage de M2 Informatique / Nicolas Defaÿ
42
L’intégration de PHPUnit dans NetBeans permet de visualiser graphiquement l’état des
tests. Des captures d’écran qui illustrent des tests de régression sont fournies dans le
paragraphe « 3.4.2 Exemple de mise en œuvre » (p. 47).
Si l’on considère que le principal reproche qui est généralement fait au sujet des tests
unitaires est leur vision fonctionnelle de bas niveau, cette méthode est parfaitement
adaptée au contexte du projet où la partie la plus critique concerne l’importation et des
données.
2. Modélisation objet
2.1 Diagramme de classe épuré
Le diagramme présenté ci-après a pour objectif d’offrir une approche globale de
l’application et de justifier certains aspects techniques. Il permet également d’avoir une
approche fonctionnelle de la solution conformément à l’organigramme technique du
projet. (cf. « 2. Organigramme technique du projet » p. 35).
Ainsi, on retrouve les différentes classes associées aux fonctionnalités suivantes :
« Général », « Importation », « Données », « Synchronisation » et « Reporting ». La partie
« IHM » qui relève du côté client de l’application est naturellement absente du modèle.
Figure 8 : Diagramme de classes épuré
Rapport de stage de M2 Informatique / Nicolas Defaÿ
43
2.2 Argumentation des concepts mis en œuvre
Le « groupe Général » (sur fond gris) contient les classes techniques utilisées par les
autres classes.
Afin d’optimiser les opérations sur la base de données en évitant d’initier une
connexion à chaque requête, j’ai défini un singleton. Ce type de classe a la
particularité de ne produire qu’une instance matérialisée par une propriété
statique.
La classe « Config » permet de gérer le fichier de configuration de l’application
(fichier de type « .INI »). Les éléments de ce fichier sont accessibles à partir
d’un couple (rubrique, clé). C’est également un singleton.
L’application définit son propre système de gestion d’erreur. La classe
« Error » est dérivée de « ErrorException », classe de la librairie PHP (SPL :
Standard PHP Library). Cette spécialisation permet de consigner
automatiquement les éventuelles erreurs rencontrées lors de l’exécution.
Afin de factoriser la partie de code commune à toutes les classes, j’ai utilisé un
trait. Introduits en 2012 dans la version 5.4.0 de PHP les traits sont également
une alternative à l’absence de mécanisme d’héritage multiple. Dans ce
contexte, il est utilisé pour gérer la mise à jour des fichiers de log, l’envoi de
courriel, etc.
La classe abstraite « Etab » a pour objectif de mettre l’accent sur la nécessité d’une
structure de données commune. En effet, pour être comparées en mémoire, les
informations issues des fichiers CSV et celles contenues dans la base doivent avoir la
même structure afin de faciliter le processus de synchronisation.
La classe « EtabFromSrc » est dédiée à l’importation des données en provenance des
fichiers CSV. « EtabFromDb » gère les données issues de la base. Ces deux classes sont
liées, à la classe « SyncEtab » chargée de la synchronisation.
Rapport de stage de M2 Informatique / Nicolas Defaÿ
44
3. Importation des données
3.1 Sources de données
Les deux principales sources de données relevant des observations sont des fichiers
plats au format CSV. Ces fichiers sont générés par la DSI depuis l’application Sentinelle.
Ils contiennent les informations du jour qui précède l’extraction.
Fichier OBUS_711.csv
Ce fichier donne pour chaque établissement, le nombre de comptes Scribe (total et
actif) par catégorie d’utilisateur ainsi que le nombre de connexions observées depuis le
début du mois pour chaque catégorie d’usage. Voici sa structure (ligne 1) accompagnée
d’un premier enregistrement (ligne 2) :
Figure 9 : Structure du fichier OBUS_771.csv
Fichier OBUS_777.csv
Ce fichier fournit pour chaque établissement la liste des applications activées sur
l’ENT pour chaque catégorie d’utilisateur. Il donne également le nombre de connexions
global à l’ENT pour le mois en cours. Voici sa structure (ligne 1) accompagnée d’un
premier enregistrement (ligne 2) :
Figure 10 : Structure du fichier OBUS_777.csv
Rapport de stage de M2 Informatique / Nicolas Defaÿ
45
3.2 Processus d’importation
Les fichiers CSV destinés à être importés sont « déposés » dans un même dossier du
serveur tous les jours à 05:00 GMT+4. Ces fichiers sont ensuite archivés dans un autre
dossier pour ne pas être écrasés.
Fichiers générés par la DSI
Tous les jours à 5h
Serveur ObUS
\home\sentinelle\OBUS_971.CSV
\home\sentinelle\OBUS_977.CSV
Tous les jours à 5h15
archive.sh
\home\sentinelle\archives\
AAAA-MM-AA_OBUS_971.CSV
\home\sentinelle\archives\
AAAA-MM-AA_OBUS_977.CSV
obus_update_obs.php
Tous les jours à 5h30
L’importation est lancée par le processus de synchronisation.
Figure 11 : Schéma de principe de l’importation des fichiers CSV
Exécuté tous les jours à 05:30 GMT+4 par une tâche cron43 , ce processus a la
particularité de « rattraper » automatiquement les importations avortées les jours
précédents. Dans ce cas, il suffit de placer les nouveaux fichiers CSV dans le dossier
« archives » afin qu’ils soient intégrés lors de la prochaine importation. Ce rattrapage peut
également être lancé en ligne de commandes. Une fois exploités les fichiers prennent
l’extension .bak et sont conservés pendant deux mois.
43
Gestionnaire de tâches planifiées sous Linux.
Rapport de stage de M2 Informatique / Nicolas Defaÿ
46
3.3 Enjeu et problématique
Dans ce type d’application, un soin tout particulier doit être accordé à l’importation et à
la synchronisation des données afin d’assurer leur intégrité. Les fichiers CSV sont balayés
par un script chargé d’en extraire le contenu. Ce script se base sur la structure annoncée
en première ligne.
Le développement de tests unitaires automatisés m’a été d’une aide précieuse pour
assurer la fiabilité du processus d’importation. Si ces tests m’ont par exemple permis de
détecter une erreur sur une expression régulière chargée d’extraire le nombre de visites
associé à un indicateur, ils ont été essentiels lorsque les fichiers CSV ont évolué.
Lors de l’ajout de nouvelles informations, l’évolution de la structure du fichier CSV
entraîne une modification du code. Cette situation est apparue pendant le développement
et se reproduira lors de l’ajout de nouvelles données. La maintenance évolutive du code
peut malencontreusement engendrer des erreurs. Dans ce contexte, les tests unitaires
automatisés sont une aide précieuse pour le développeur car ils permettent de réaliser
des tests de régression.
3.4 Tests de régression
3.4.1 Principe
Avant de préciser techniquement les tests mis en place, il est important de rappeler
l’essence même de ce terme. Le comité français des tests logiciels, donne la définition
suivante du terme « test de régression » (CFTL, 2012, p. 53).
Test de régression : tests d’un programme préalablement testé, après une
modification, pour s’assurer que des défauts n’ont pas été introduits ou découverts dans
des parties non modifiées du logiciel, comme suites des modifications effectuées. Ces
tests sont effectués quand le logiciel ou son environnement est modifié.
Ce processus de vérification s’appuie sur les tests unitaires existants et sur ceux
correspondant aux nouvelles données. Le principe consiste à rejouer cette batterie de
tests pour valider la solution.
Rapport de stage de M2 Informatique / Nicolas Defaÿ
47
3.4.2 Exemple de mise en œuvre
Fin avril, le nombre de connexion à l’ENT pour chaque établissement a été rajouté
dans l’un des fichiers CSV. J’ai du reprendre le code lié à l’importation afin d’intégrer ce
nouveau champ. Naturellement, tous les tests unitaires précédents échouaient car un
dépassement d’indice était provoqué par la présence d’une nouvelle valeur.
Figure 12 : Échec des tests unitaires automatisés
Pour prendre en charge la nouvelle valeur, j’ai adopté la technique du développement
piloté par les tests (TDD : test-driven development). J’ai donc codé la méthode de test
avant de coder la fonctionnalité. Ce processus est décrit en .
Figure 13 : Tests unitaires de prise en charge du nombre de connexions
Après une succession d’itérations réusinage/tests la solution a pu être validée et la
nouvelle version intégrée. La première modification dans le code consistait à réduire le
tableau contenant les différents types d’application.
Rapport de stage de M2 Informatique / Nicolas Defaÿ
48
Cette instruction a été rajoutée dans la
méthode setEtabsApp() de la classe
« EtabFromSrc ».
Figure 14 : Itération de réusinage/tests unitaires
4. Modélisation des données
4.1 Dictionnaire des données
L’essentiel des données concerne les établissements scolaires, les applications
installées dans leur ENT et les observations relevées. Le tableau ci-après recense les
principales informations et donne des exemples de valeurs pour les propriétés
significatives.
Propriété Type Signification et exemples de valeurs
rne_etab Chaîne(8) Identifiant d’un établissement. Le code du répertoire national des établissements (RNE) est majoritairement utilisé même si le terme UAI (Unité Administrative Immatriculée) devrait être préféré. Exemples : "9741046U", "9740043D", …
type_etab Chaîne(4) Type d’établissement. Exemples : "CLG", "LYC", …
det_on_etab Booléen Détermine si un établissement est destinataire ou non des tableaux de bord.
stat_ok Booléen Précise si les observations relatives à un établissement sont prises en compte lors du calcul des indicateurs.
code_type_app Chaîne(50) Désigne la catégorie d’utilisateur à associer aux applications. Exemples : "app_eleves", "app_enseignants", …
code_usage Chaîne(50) Code associé à la catégorie d’usage conformément à la classification de la Caisse des dépôts. Exemples : "cat_travailcollaboratif", …
date_obs Date Date d’observation des données recueillies.
nb_cnx_usage Entier Nombre de visites observées pour une catégorie d’usage.
code_app Chaîne(150) Code des applications intégrées dans l’ENT. Exemples : "moodle", "services academiques" " ressdoc_lexilogos : dictionnaires dans toutes les langues, cartes de tous les pays, documents en
Rapport de stage de M2 Informatique / Nicolas Defaÿ
49
ligne."
date_on Date Date d’activation d’une application dans l’ENT d’un établissement.
nb_cpt_scribe Entier Nombre de compte Scribe créés dans un établissement.
nb_cpt_scribe_actif Entier Nombre de compte actif (nombre d’utilisateurs qui se sont connectés au moins une fois à l’ENT).
nb_cnx Entier Nombre de visites sur l’ENT d’un établissement.
Figure 15 : Dictionnaires des données (extraits)
4.2 Modèle relationnel épuré
La figure ci-dessous présente un extrait du schéma relationnel de la base de données
MySQL.
Figure 16 : Schéma relationnel épuré.
Rapport de stage de M2 Informatique / Nicolas Defaÿ
50
Ce schéma met en évidence les tables dédiées à l’historisation des données :
La table « compte_etab_histo » recense pour chaque établissement le nombre
de comptes (créés/actifs) par catégorie d’utilisateur ainsi que le nombre de
visites observés à une date donnée (historisation mensuelle).
La table « usage_etab_histo » contient les données relatives aux observations
d’usages.
La table « usage_ress_doc_etab_histo » contient les données relatives aux
observations d’usages des ressources documentaires.
La table « app_active » recense les applications activées dans l’ENT des
établissements.
4.3 Caractéristiques et optimisations des données
J’ai fait le choix d’utiliser le moteur MySQL InnoDB pour toutes les tables. En effet,
l’intégrité référentielle devait être appliquée afin d’assurer la cohérence des données et
garantir les résultats des traitements statistiques. La fréquence des mises à jour étant très
faible (1 fois par jour), il n’y avait pas de contrainte de performance.
Afin d’optimiser l’encombrement mémoire, la taille des champs numériques a été
ajustée en prenant en compte le fait de valeurs non signées.
Champ Description Type Taille (octet) Intervalle
id_app Identifiant des applications
(webmail, moodle, …)
smallint
unsigned
2 0 à 65535
id_type_app Identifiant des types
d’application (app_eleves,
app_enseignants, …)
tinyint
unsigned
1 0 à 255
nb_cpt_scribe,
nb_cnx, …
Nombre de comptes Scribe,
de visites, …
smallint
unsigned
2 0 à 65535
Figure 17 : Exemples d’optimisations des types des données.
Toutes les requêtes (jointures, regroupement, …) sont basées sur les clés (primaires
et étrangères) indexées automatiquement par défaut. Il n’a pas été nécessaire d’indexer
d’autres colonnes.
Afin de simplifier les requêtes, plusieurs vues ont été définies, des tables
intermédiaires et temporaires (moteur « MEMORY ») ont été créées.
La synchronisation des données met en œuvre des transactions et des déclencheurs.
Rapport de stage de M2 Informatique / Nicolas Defaÿ
51
5. Synchronisation et historisation des données
5.1 Principe général
Une fois les données importées et chargées (fichiers CSV et base de données), la
synchronisation peut être lancée. Ce processus nécessite de définir les mêmes structures
de données en mémoire de manière à pouvoir les comparer facilement. Chaque type
d’information est stocké dans une collection (type array() en PHP). Le langage PHP
offre une grande palette d’outils permettant de gérer les tableaux. Si la différence entre
deux tableaux simples peut être réalisée avec la fonction array_diff() ou
array_diff_assoc(), le cas des tableaux à plusieurs dimensions nécessite cependant
un traitement spécifique.
Le diagramme de séquence présenté en Annexe 8 p.72 détaille ce processus. Toutes
les opérations sont consignées dans un fichier de log et un état peut être envoyé par
courriel si nécessaire (paramètre dans le fichier de configuration de l’application). Un
exemple de message est donné en Annexe 9 p. 73.
Dans les paragraphes suivants je présente le cas de la synchronisation des
applications disponibles dans l’ENT puis je détaille le processus d’historisation. Dans les
deux cas, les mises à jour passent par des tables intermédiaires.
5.2 Synchronisation des « applications ENT » des établissements.
L’importation quotidienne des données nécessite d’actualiser la table « app_active »
en fonction des nouvelles applications ajoutées et des éventuelles suppressions.
Cette opération se décompose en plusieurs étapes :
1. Vidage de la table « app_active_tmp »
2. Peuplement de la table « app_active_tmp » 44 avec toutes les données
importées
3. Contrôle d’intégrité : Signalement (log/mél) du nombre d’établissements
présents dans le fichier des observations mais absents de la table
établissement
4. Ajout dans la table « app_active » de toutes les applications non encore
référencées et signalement (log/mél).
44
Afin d’optimiser le temps des traitements, le moteur utilisé pour cette table est MEMORY.
Rapport de stage de M2 Informatique / Nicolas Defaÿ
52
5. Mise à jour du champ date_off en cas de suppression d’une application et
signalement (log/mél).
6. Mise à jour du champ date_on en cas de réactivation d’une application et
signalement (log/mél).
Les traitements 4, 5 et 6 ont étés avantageusement réalisés sur la base de données à
l’aide de vues mettant en œuvre des opérations de différences entre table (LEFT JOIN et
RIGHT JOIN). La Figure 18 ci-après présente le code de la vue utilisée pour alimenter la
table « app_etablissement » de nouvelles données. On remarquera que la jointure porte
sur un triplet de valeurs (ren_etab, id_type_app, id_app) et qu’une restriction est
faite (app_active.rne_etab IS NULL) afin de traiter uniquement les établissements
recensés.
Sans cette condition, l’apparition d’un nouvel établissement (cf. étape 3 du processus)
provoquerait une erreur d’intégrité référentielle lors de l’actualisation.
Figure 18 : Vue utilisée lors de l'ajout d'applications associées à un établissement.
Cette vue est utilisée par la méthode updateEtabApp() de la classe
« EtabFromDb » dont un extrait est présenté ci-après.
Rapport de stage de M2 Informatique / Nicolas Defaÿ
53
Figure 19 : Extrait de code utilisant la vue définie dans la Figure 18
5.3 Historisation des données
Les informations relatives aux observations quotidiennes sont dans un premier temps
stockées dans deux tables temporaires. Ces tables conservent l’ensemble des données
importées sur une période glissante de deux mois afin de pouvoir faire face à un éventuel
incident. Les tables concernées sont les suivantes :
La table « compte_etab_histo_tmp »
Cette table contient pour chaque établissement, le nombre de comptes (total/actif) par
catégories d’utilisateurs (élève, responsable, …) ainsi que le nombre de connexions
observées depuis le début du mois.
Figure 20 : Extrait de la table « compte_etab_histo_tmp »
Rapport de stage de M2 Informatique / Nicolas Defaÿ
54
La table « usage_etab_histo_tmp »
Cette table contient pour chaque établissement, le nombre de connexions aux
différentes catégories d’usages (courrier électronique, travail collaboratif, …)
Figure 21 : Extrait de la table « usage_etab_histo_tmp »
Les tables de référence ont exactement la même structure et sont actualisées de
manière automatique à l’aide de déclencheurs (triggers).
La Figure 22 présente le code du déclencheur exécuté après insertion d’une ligne
dans la table « etab_histo_tmp ». Il se charge d’actualiser la table « etab_histo » avec les
dernières valeurs. Le principe est le même pour la mise à jour de la table
« compte_etab_histo ».
Figure 22 : Déclencheur d'historisation des connexions par catégorie d’usage
Rapport de stage de M2 Informatique / Nicolas Defaÿ
55
La gestion des incohérences d’évolution du nombre de connexions est assurée par
d’autres déclencheurs. Ci-après le cas du nombre de visites observé par catégories
d’usages.
Figure 23 : Déclencheur de vérification de la cohérence de l’évolution des connexions
Le code PHP associé à ces traitements est présenté en « Annexe 10 : Méthode de
classe dédiée à l’historisation des données » (p. 74). On remarquera également la
présence d’une transaction afin de garantir la fiabilité du traitement.
6. Génération des tableaux de bord
6.1 Extraction des données
Le calcul des différentes moyennes s’appuie sur la classe « ReportEtab ». Cette
classe met en œuvre tous les calculs dédiés aux indicateurs propres à un établissement.
Les informations sont retournées au format JSON afin d’être exploitées par la solution de
communication de données (reporting) Highcharts.
6.1.1 Moyennes standards
Trois moyennes doivent être calculées sur la période observée. Le tableau ci-après
rappelle ces moyennes ainsi que les sources de données utilisées.
Moyenne Source de données
Moyenne académique v_obs_aca_moy_cpt
v_obs_aca_moy_cnx_usage
Moyenne pour le même type
d’établissement
v_obs_type_etab_moy_cnx
v_obs_type_etab_moy_cnx_usage
Moyenne de l’année précédente compte_etab_histo
Figure 24 : Sources de données pour le calcul des moyennes standards
Rapport de stage de M2 Informatique / Nicolas Defaÿ
56
Le traitement consiste alors à réaliser une série de jointures avec l’établissement
observé pour fournir l’ensemble des moyennes.
6.1.2 Moyenne de référence des k plus proches voisins
La méthode de calcul étant définie (cf. « 3. Méthode des k plus proches voisins » p.
30), il s’agit ici de trouver une solution technique de mise œuvre optimale. L’exemple qui
suit concerne les indicateurs de connexion (nombre de visites à l’ENT d’un
établissement).
La vue « v_ppv_etab_cpt_ref » fournit pour chaque établissement et chaque type
d’utilisateur, le nombre de comptes Scribe créés pour les mois de mai et de novembre
indépendamment de l’année. Elle donne également les poids pour chacune des variables
utilisées. Cette vue s’appuie sur les données des tables « param_ppv » et
« compte_etab_histo ».
La figure ci-après présente le code de la méthode setEtabsPpv() de la classe
« ReportEtab ». Cette fonction retourne la liste des établissements les plus proches de
l’établissement observé.
Figure 25 : Méthode retournant les plus proches voisins d’un établissement
Une fois les plus proches voisins déterminés, le traitement consiste à calculer la
moyenne des connexions pour les établissements retenus. Le principe est le même pour
les autres indicateurs.
Rapport de stage de M2 Informatique / Nicolas Defaÿ
57
6.2 Présentation des données
6.2.1 Le Framework JQuery mobile
Développé par l’équipe du framework JQuery, cette bibliothèque permet de
développer rapidement des interfaces Web compatibles avec la plupart des navigateurs
que ce soit sur smartphone, tablette, ou ordinateur. Le site http://jquerymobile.com/
propose un grand nombre d’exemples qui peuvent facilement être adaptés.
Les personnels de la DANE et de la DSI sont souvent en déplacement dans les
établissements. L’accès aux indicateurs sur tout type de matériel connecté à Internet était
essentiel.
6.2.2 Le framework Highcharts
Highcharts est un framework écrit en JavaScript. Il propose une bibliothèque d’outils
dédiés à la réalisation de tableaux de bord. Cette solution professionnelle de reporting est
utilisable librement dans le cadre d’une activité non commerciale. J’ai fait le choix de cet
outil pour les raisons suivantes :
- La satisfaction des utilisateurs finaux :
o Le rendu visuel est soigné et attractif, les graphiques sont interactifs (zones
cliquables),
o L’intégration dans une solution de site web adaptatif (responsive web
design),
o La possibilité de générer les graphiques de manière asynchrone (appels
non bloquants).
- La maintenabilité applicative :
o C’est un outil connu par les informaticiens de la DSI (maintenance
facilitée),
o Interactions relativement simples avec PHP/MySQL,
o Popularité de la solution (documentation riche, nombreux tutoriels, …)