Reporting
Module Reporting — Génération de Preuves & Tableaux de Bord
Ce module est la “Tour de Contrôle” de la traçabilité. Il transforme les données brutes du graphe (liens) et les résultats de conformité en artefacts exploitables pour :
- L’Ingénieur : Visualisation de la couverture (Matrices).
- L’Auditeur : Rapports de conformité (DO-178C, EU AI Act).
- L’Assistant IA : Synthèses textuelles pour le RAG (Retrieval Augmented Generation).
🏗️ Flux de Données
Le reporting agrège les données venant du moteur traceability et du module ai/assurance.
graph TD
Model[ProjectModel] -->|Input| MatrixGen[MatrixGenerator]
Model -->|Input| AuditGen[AuditGenerator]
subgraph "Traceability Core"
Tracer[Tracer]
AICheck[AiGovernanceChecker]
end
MatrixGen -->|Use| Tracer
AuditGen -->|Use| AICheck
AICheck -->|Use| Tracer
MatrixGen -->|Output| CSV["Matrice (.csv)"]
AuditGen -->|Output| JSON["Rapport d'Audit (.json)"]
AuditGen -->|Output| Text["Synthèse IA (.txt)"]
📊 1. Matrice de Traçabilité (trace_matrix.rs)
Génère des vues croisées pour vérifier la couverture des exigences ou des fonctions.
Fonctionnalité : SA ➔ LA
Vérifie comment les Fonctions Système (SA) sont réalisées par les Composants Logiques (LA).
- Statut Calculé :
Covered: La fonction est allouée à au moins un composant.Uncovered: La fonction est orpheline (Dette technique).- Gestion des Noms : Supporte les types de noms complexes (
NameType::String,NameType::I18n). Exemple de sortie (CSV) :
Source ID,Source Name,Coverage Status,Target IDs
func_sa_01,"Calculer Trajectoire",Covered,"comp_la_nav_01; comp_la_nav_02"
func_sa_02,"Afficher Alerte",Uncovered,""
🛡️ 2. Rapport d’Audit (audit_report.rs)
C’est l’artefact le plus critique. Il combine deux types d’analyses :
A. Conformité Normative (Static)
Exécute les checkers classiques sur l’ensemble du modèle :
- DO-178C : Sécurité logicielle (Aéronautique).
- ISO-26262 : Sécurité fonctionnelle (Automobile).
- EU AI Act : Transparence et gestion des risques (Réglementaire).
B. Gouvernance IA (Deep Scan) [NOUVEAU]
Utilise le Tracer pour auditer spécifiquement les composants marqués comme nature: "AI_Model".
Il vérifie la présence des preuves générées par le module ai/assurance :
- ✅ QualityReport : Le modèle a-t-il passé ses tests de performance/biais ?
- ✅ XaiFrame : Le modèle est-il explicable ? Structure du Rapport (JSON) :
{
"project_name": "RAISE Pilot",
"date": "2025-10-12T10:00:00Z",
"model_stats": {
"total_elements": 150,
"total_functions": 45
},
"compliance_results": [
{
"standard": "DO-178C",
"passed": true,
"violations": []
},
{
"standard": "RAISE AI Governance",
"passed": false,
"violations": [
{
"rule_id": "AI-GOV-CHECK",
"severity": "Critical",
"description": "Composant IA 'Vision Module' non conforme : Missing valid Quality Report"
}
]
}
]
}
🤖 3. Synthèse pour l’IA
Le module expose une fonction generate_ai_summary qui transforme le rapport JSON en texte narratif. Cela permet à l’Assistant RAISE de répondre à des questions comme :
“Est-ce que le projet est prêt pour la certification ?” Exemple de résumé généré : “Le projet ‘RAISE Pilot’ contient 150 éléments.
- DO-178C : ✅ CONFORME.
- RAISE AI Governance : ❌ NON-CONFORME. ⚠️ Violation Critique : Le composant ‘Vision Module’ n’a pas de rapport de qualité validé.”
💻 Utilisation Technique
use crate::traceability::reporting::{MatrixGenerator, AuditGenerator, ReportExporter};
// 1. Générer la matrice
let matrix = MatrixGenerator::generate_sa_to_la(&model);
// 2. Générer l'audit complet
let audit = AuditGenerator::generate(&model);
// 3. Exporter sur le disque
ReportExporter::export_matrix_csv(&matrix, Path::new("trace.csv"))?;
ReportExporter::export_audit_json(&audit, Path::new("audit.json"))?;
// 4. Obtenir le résumé pour le Chatbot
let summary = ReportExporter::generate_ai_summary(&audit);
✅ Tests
# Lancer les tests du module de reporting uniquement
cargo test traceability::reporting -- --nocapture