Aller au contenu

Modèle conceptuel

Ce document pose le vocabulaire, le modèle de données et les règles métier sur lesquels s'aligne tout le reste du dossier d'analyse et de conception. Toute évolution du brief qui touche ces concepts doit être répercutée ici avant de s'attaquer aux parcours, aux stories ou aux maquettes.

Convention de nommage : les noms d'entités, d'attributs et de statuts adoptés ici sont les noms qui doivent apparaître dans l'IHM. On évite à dessein le jargon technique (formats de fichiers, sigles, anglicismes) pour ne pas rendre l'application illisible aux utilisateurs cibles (O2 - Facilité d'apprentissage, SC1 - Onboarding).

🛈 Statut : la structure des entités et de leurs associations est validée. Les attributs détaillés (types précis, contraintes, valeurs énumérées) restent à affiner au fil des étapes suivantes (parcours, stories, maquettes) en fonction des besoins concrets qui émergeront.

Vue d'ensemble

L'application VigieChiro PR Companion organise les données autour d'un utilisateur unique (mono-utilisateur, hors-ligne). Cet utilisateur déclare un ou plusieurs sites de suivi, chaque site contenant un ou plusieurs points d'écoute. Sur chaque point, il réalise des passages (= une nuit complète d'enregistrement). Chaque passage produit une capture : les enregistrements originaux copiés depuis la SD, les séquences d'écoute (ralenties ×10 et découpées en 5 s) prêtes à être déposées sur Vigie-Chiro, ainsi que le journal du capteur et le relevé climatique de l'enregistreur utilisé.

Une fois les séquences d'écoute produites, l'utilisateur vérifie l'enregistrement par échantillonnage (sound check global). S'il est satisfait, il prépare le lot prêt à déposer et téléverse manuellement sur le portail Vigie-Chiro. Le retour de Tadarida (résultats d'identification) arrive ensuite, et le passage entre alors en validation taxonomique (espèce par espèce).

classDiagram
    direction LR

    class Utilisateur {
      identifiant local
      nom affiché
    }
    class SiteDeSuivi["Site de suivi"] {
      n° carré
      nom convivial
      protocole
    }
    class PointDEcoute["Point d'écoute"] {
      code
      coordonnées GPS
      descriptif
    }
    class Enregistreur {
      n° de série
      modèle / version
    }
    class Passage {
      n° de passage
      année
      date de capture
      heure début / fin
      verdict de vérification
      statut workflow
    }
    class Capture {
      chemin racine
      volume total
    }
    class EnregistrementOriginal["Enregistrement original"] {
      nom de fichier
      durée
      échantillonnage
    }
    class SequenceDEcoute["Séquence d'écoute"] {
      nom de fichier
      index
      durée
    }
    class JournalDuCapteur["Journal du capteur"] {
      chemin
      évènements parsés
      anomalies détectées
    }
    class ReleveClimatique["Relevé climatique"] {
      chemin
      mesures
    }
    class SelectionDEcoute["Sélection d'écoute"] {
      méthode de constitution
      taille
    }
    class ResultatsIdentification["Résultats d'identification"] {
      chemin
      format détecté
      date d'import
    }
    class Observation {
      temps début
      temps fin
      taxon Tadarida
      probabilité Tadarida
      taxon observateur
      probabilité observateur
    }
    class Taxon {
      code
      nom latin
      nom vernaculaire FR
    }
    class GroupeTaxonomique["Groupe taxonomique"] {
      niveau
      nom
    }

    Utilisateur "1" --> "1..*" SiteDeSuivi : possède
    SiteDeSuivi "1" --> "1..*" PointDEcoute : contient
    PointDEcoute "1" --> "0..*" Passage : fait l'objet de
    Enregistreur "1" --> "1..*" Passage : a produit
    Passage "1" --> "1" Capture : produit
    Capture "1" --> "1..*" EnregistrementOriginal : contient
    Capture "1" --> "1..*" SequenceDEcoute : contient
    Capture "1" --> "1" JournalDuCapteur : référence
    Capture "1" --> "0..1" ReleveClimatique : référence
    EnregistrementOriginal "1" --> "1..*" SequenceDEcoute : découpé en
    Passage "1" --> "0..1" SelectionDEcoute : à vérifier par
    SelectionDEcoute "1" --> "1..*" SequenceDEcoute : porte sur
    Passage "1" --> "0..1" ResultatsIdentification : annoté par
    ResultatsIdentification "1" --> "1..*" Observation : agrège
    Observation "0..*" --> "1" SequenceDEcoute : détectée dans
    Observation "0..*" --> "1" Taxon : classée comme
    Taxon "1..*" --> "1" GroupeTaxonomique : appartient

🖼️ Ouvrir le diagramme dans une vue plein écran ↗

Ce diagramme reste conceptuel (proche d'un MCD) plutôt qu'un diagramme de classes d'implémentation : pas de visibilité (+/-), pas de méthodes, pas de types Java. C'est le vocabulaire métier et la topologie des associations qui comptent. Vous re-spécifierez les classes Java de votre implémentation séparément, en y ajoutant typage, méthodes et héritages selon vos choix d'architecture.

Le diagramme rend visible la séparation entre deux moments du workflow : la chaîne Passage → Capture → Séquence d'écoute → Sélection d'écoute (avant le dépôt VigieChiro, MUST du MVP), puis la chaîne Résultats d'identification → Observation → Taxon (après le retour Tadarida, SHOULD/cible étirable).

Sommaire des fiches

Le modèle conceptuel est éclaté en plusieurs fiches pour rester lisible. Chaque fiche est accessible depuis la barre latérale ; les liens ci-dessous servent de table des matières.

Entités

# Entité Rôle métier
C1 Utilisateur L'unique utilisateur de l'app (mono-utilisateur, hors-ligne).
C2 Site de suivi Unité géographique déclarée sur Vigie-Chiro web.
C3 Point d'écoute Code 2 caractères dans un site.
C4 Enregistreur Matériel terrain (Passive Recorder Teensy).
C5 Passage Une nuit complète sur un point. Entité centrale.
C6 Capture Agrégat de données produit par un passage.
C7 Enregistrement original Fichier audio brut, ultrason, inaudible.
C8 Séquence d'écoute Fichier audible (×10, 5 s) déposé sur Vigie-Chiro.
C9 Journal du capteur LogPR<n>.txt du firmware Teensy.
C10 Relevé climatique *_THLog.csv (optionnel).
C11 Sélection d'écoute Sous-ensemble de séquences pour la vérification.
C12 Résultats d'identification Fichier Tadarida (post-dépôt, SHOULD).
C13 Observation Une ligne de résultats Tadarida.
C14 Taxon Code 6 lettres (genre + espèce).
C15 Groupe taxonomique Niveau hiérarchique au-dessus du taxon.

Autres fiches