# **Manuel Utilisateur \- Analyseur de Traces BAOBAB**

Bienvenue dans le manuel de l'outil d'analyse de traces BAOBAB. Cet outil est conçu pour traiter des fichiers de logs (traces) au format XML/Texte et calculer automatiquement des indicateurs quantitatifs et qualitatifs définis par l'utilisateur.

## **1\. Interface Utilisateur**

L'interface est divisée en trois zones principales :

### **A. Zone de Description des Indicateurs (Gauche)**

C'est ici que vous écrivez les "recettes" de vos indicateurs.

* **Format** : Texte brut.  
* **Structure** : Les indicateurs s'écrivent par blocs stricts de 6 lignes.  
* **Aide** : Une numérotation dans la marge (1 à 6\) vous aide à respecter la structure. Le numéro **1** est en gras pour marquer le début d'un nouveau bloc.

### **B. Zone de Résultats (Haut Droite)**

C'est ici qu'apparaît le tableau de données après le calcul.

* **Colonnes** : La première colonne liste les noms des fichiers de traces ("Lot de Trace"). Les colonnes suivantes correspondent à vos indicateurs.  
* **Boutons** :  
  * **Recalculer** : Lance l'analyse des traces chargées en fonction des indicateurs définis.  
  * **Vider** : Efface le tableau de résultats.  
  * **Générer CSV** : Télécharge le tableau au format .csv pour l'ouvrir dans Excel ou LibreOffice.

### **C. Zone de Lots de Traces (Bas Droite)**

C'est ici que vous gérez les données brutes à analyser.

* **Charger lots de traces** : Permet de sélectionner un ou plusieurs fichiers (.trc, .txt) depuis votre ordinateur.  
* **Liste déroulante** : Permet de choisir quel fichier de trace visualiser dans l'éditeur.  
* **Barre de recherche** : Permet de trouver rapidement un mot-clé ou une balise dans la trace affichée (surlignage en jaune).  
* **Édition** : Vous pouvez modifier manuellement le texte d'une trace pour tester des hypothèses (les modifications sont temporaires et prises en compte au prochain clic sur "Recalculer").

## **2\. Syntaxe des Indicateurs**

La puissance de BAOBAB réside dans sa syntaxe de définition d'indicateurs. Chaque indicateur **doit** être défini par un bloc de **6 lignes exactement**.

### **Structure d'un bloc**

| Ligne | Description | Exemple |
| :---- | :---- | :---- |
| **1** | **Nom de l'indicateur** (Sans espace de préférence) | NbClicsBouton |
| **2** | **Motif de trace principal** (ou de début) | \<CLICK\_LINK/\> |
| **3** | **Motif de trace de fin** (Utilisé *uniquement* pour Interval ou Duration) | *(Laisser vide si inutile)* |
| **4** | **Attribut à extraire** (Nom de l'attribut dans la balise XML) | URL |
| **5** | **Opérateur** (Type de calcul) | Count |
| **6** | **Séparateur** (Doit contenir des tirets) | \-------------------- |

### **Règles de correspondance (Matching)**

Pour la ligne 2 et 3, vous définissez un "modèle" de trace.

* Si vous écrivez \<MON\_EVENT/\>, l'outil cherchera toutes les lignes contenant cette balise.  
* Si vous écrivez \<MON\_EVENT ID='12'/\>, l'outil ne gardera que les lignes contenant \<MON\_EVENT **ET** l'attribut ID='12'.  
* L'ordre des attributs dans le fichier de trace n'a pas d'importance, mais la syntaxe XML doit être respectée (guillemets simples ' ou doubles ").

## **3\. Les Opérateurs Disponibles (Ligne 5\)**

Voici la liste des opérations que vous pouvez écrire à la ligne 5\.

### **Opérateurs de Comptage et Présence**

* **Count** : Compte combien de fois la trace définie en Ligne 2 apparaît dans le fichier.  
  * *Usage : Fréquence d'actions, nombre d'erreurs.*  
* **First** : Récupère la valeur de l'attribut (Ligne 4\) de la **première** occurrence de la trace (Ligne 2).  
  * *Usage : Date de début, premier choix utilisateur.*  
* **Last** : Récupère la valeur de l'attribut (Ligne 4\) de la **dernière** occurrence de la trace (Ligne 2).  
  * *Usage : Score final, dernier état.*

### **Opérateurs Temporels**

* **Duration** : Calcule le temps (en secondes) écoulé entre la **première** occurrence de la trace de début (Ligne 2\) et la **première** occurrence de la trace de fin (Ligne 3\) qui la suit.  
  * *Attribut requis (Ligne 4\)* : STAMP (ou tout attribut contenant un timestamp en millisecondes).  
* **Interval** : Calcule la **somme** de toutes les durées entre chaque paire (Début \-\> Fin).  
  * *Algorithme* : Trouve un début, cherche la fin suivante, calcule la durée, puis cherche un *nouveau* début après cette fin.  
  * *Usage : Temps total passé sur une tâche répétitive.*

### **Opérateurs Mathématiques et Logiques**

* **Min** : Trouve la valeur minimale numérique de l'attribut (Ligne 4\) parmi toutes les traces correspondantes (Ligne 2).  
* **Max** : Trouve la valeur maximale numérique.  
* **Sum** : Calcule la somme de toutes les valeurs numériques de l'attribut.  
* **Merge** : Concatène toutes les valeurs de l'attribut (Ligne 4\) séparées par des virgules.  
  * *Usage : Lister toutes les pages visitées dans l'ordre.*

### **Clause Spéciale : After**

Vous pouvez ajouter After \<MOTIF\> à la fin de la ligne 5 pour filtrer les traces.

* **Syntaxe** : Count After \<START\_TASK/\>  
* **Effet** : L'outil ignore tout le début du fichier de traces jusqu'à ce qu'il rencontre la balise \<START\_TASK/\>. Le calcul ne se fait que sur la partie restante.

## **4\. Exemples Concrets**

Voici des exemples prêts à être copiés-collés dans l'analyseur.

### **Exemple 1 : Compter le nombre de clics**

On veut savoir combien de fois l'utilisateur a cliqué sur un lien.

NbClicsTotal  
\<CLICK\_LINK/\>

Count  
\--------------------

*(Notez les lignes 3 et 4 vides car inutiles pour un simple comptage de balises)*

### **Exemple 2 : Identifier l'utilisateur**

On veut récupérer l'ID de l'utilisateur stocké au début du fichier.

IdentifiantUtilisateur  
\<PARTICIPANT/\>

ID  
First  
\--------------------

### **Exemple 3 : Durée d'une étape spécifique**

Calculer le temps entre le début et la fin de l'étape "Tuto".

TempsTutoriel  
\<DEBUT\_ETAPE NOM='Tuto'/\>  
\<FIN\_ETAPE NOM='Tuto'/\>  
STAMP  
Duration  
\--------------------

### **Exemple 4 : Temps total de consultation d'aide (Interval)**

L'utilisateur peut ouvrir et fermer l'aide plusieurs fois. On veut le temps cumulé.

CumulTempsAide  
\<OPEN\_HELP/\>  
\<CLOSE\_HELP/\>  
STAMP  
Interval  
\--------------------

### **Exemple 5 : Liste des pages visitées après le login**

On veut la liste concaténée des URL, mais seulement celles visitées après l'événement de connexion.

ParcoursPostLogin  
\<URL/\>

URL  
Merge After \<LOGIN\_SUCCESS/\>  
\--------------------

### **Exemple 6 : Score Maximum atteint**

On cherche la valeur maximale de l'attribut VAL dans les balises SCORE.

MeilleurScore  
\<SCORE/\>

VAL  
Max  
\--------------------

## **5\. Procédure d'Analyse (Pas à Pas)**

1. **Préparation** : Ayez vos fichiers de traces (.trc ou .txt) prêts sur votre ordinateur.  
2. **Chargement** :  
   * Cliquez sur le bouton **"Charger lots de traces"**.  
   * Sélectionnez tous vos fichiers (Ctrl+Clic ou Shift+Clic pour en sélectionner plusieurs).  
   * Ils apparaissent dans la liste déroulante en bas à droite.  
3. **Définition** :  
   * Dans la zone de gauche, écrivez vos indicateurs en respectant les blocs de 6 lignes.  
   * Vous pouvez utiliser le menu **Fichier \> Sauvegarder les indicateurs...** pour réutiliser vos définitions plus tard.  
4. **Calcul** :  
   * Cliquez sur **"Recalculer"**.  
   * Le tableau en haut à droite se remplit. Chaque ligne correspond à un fichier de trace.  
5. **Export** :  
   * Cliquez sur **"Générer CSV"**.  
   * Le fichier téléchargé peut être importé dans Excel (Données \> À partir du texte/CSV) pour faire des graphiques ou des moyennes.

## **6\. Dépannage**

* **Le bouton "Recalculer" ne fait rien ou affiche une erreur de syntaxe :**  
  * Vérifiez que chaque bloc fait exactement 6 lignes.  
  * Vérifiez que la 6ème ligne contient des tirets \----.  
  * Vérifiez qu'il n'y a pas de lignes vides "perdues" entre deux blocs (les blocs doivent se suivre ou être séparés proprement).  
* **La colonne affiche "Type inconnu" :**  
  * Vérifiez l'orthographe de l'opérateur ligne 5 (ex: Count, pas Compter).  
* **La colonne est vide ou à 0 :**  
  * Vérifiez que le modèle de trace (Ligne 2\) correspond exactement à ce qui est dans le fichier (Attention aux majuscules/minuscules dans les noms de balises).  
  * Pour Duration ou Interval, vérifiez que l'attribut (Ligne 4\) est bien présent dans les balises de début ET de fin (généralement STAMP).