Revue critique (claude.ai) intégrée : - Point 3 : versionnage formules indices + date disponibilité effective - Point 4 : critères sélection amorçage (stresser les mécanismes) - Point 6 : réversibilité dans le spike technique - Point 7 : SCOR/ISO en contrepoint, axes validation complémentaires - Point 8 : interface concrète IRON (3 cas d'usage) - Point 12 : projection qualitative/chiffrée selon confiance, rétro-analyse calibration - Point 13 : deux sorties bus (situationnelle/structurelle), coût IA différé - Contraintes transversales : décisions différées avec signaux déclencheurs Réorganisation document : - Vue 1 en en-tête (principe fondamental) - Ordre de réalisation aligné sur les 4 vues - Progression architecturale (Vue 1→4) en fin de document - DAF et DAT mis à jour (8 fonctions, bus d'impact, structurel/situationnel) - Vue 4 corrigée (veille propose, ne injecte pas ; flèche API restaurée ; sortie structurelle du bus) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
153 lines
7.7 KiB
Plaintext
153 lines
7.7 KiB
Plaintext
digraph macro_daf {
|
|
rankdir=TB;
|
|
fontname="Arial";
|
|
node [fontname="Arial", fontsize=10, style=filled, shape=box];
|
|
edge [fontname="Arial", fontsize=9];
|
|
label="FabNum — Macro-DAF (Dossier d'Architecture Fonctionnel)\n\n";
|
|
labelloc=t;
|
|
fontsize=16;
|
|
compound=true;
|
|
|
|
// F1. Modéliser
|
|
subgraph cluster_F1 {
|
|
label="F1. MODÉLISER LA CHAÎNE DE VALEUR";
|
|
style=filled; color="#E3F2FD"; fontsize=12; fontcolor="#1565C0";
|
|
|
|
F1_1 [label="F1.1\nValider les niveaux\nde décomposition", fillcolor="#BBDEFB"];
|
|
F1_2 [label="F1.2\nDéfinir les intitulés\ngénériques", fillcolor="#BBDEFB"];
|
|
F1_3 [label="F1.3\nDéfinir les critères\nd'arrêt (profondeur)", fillcolor="#BBDEFB"];
|
|
F1_4 [label="F1.4\nGérer chaînes\nessentielles / connexes", fillcolor="#BBDEFB"];
|
|
F1_5 [label="F1.5\nGérer les matières\ncomposées (NMC...)", fillcolor="#BBDEFB"];
|
|
|
|
F1_1 -> F1_2 -> F1_3 -> F1_4 -> F1_5;
|
|
acteur_F1 [label="Acteur : Admin", shape=ellipse, fillcolor="#E3F2FD", fontsize=9];
|
|
}
|
|
|
|
// F2. Structurer et qualifier
|
|
subgraph cluster_F2 {
|
|
label="F2. STRUCTURER ET QUALIFIER LES DONNÉES";
|
|
style=filled; color="#E8F5E9"; fontsize=12; fontcolor="#2E7D32";
|
|
|
|
F2_1 [label="F2.1\nSpécifier données\n(essentielles / info)", fillcolor="#C8E6C9"];
|
|
F2_2 [label="F2.2\nDéfinir périmètre\nmesuré", fillcolor="#C8E6C9"];
|
|
F2_3 [label="F2.3\nIdentifier et catégoriser\nles sources", fillcolor="#C8E6C9"];
|
|
F2_4 [label="F2.4\nAttribuer tiers\nde confiance\n(par domaine)", fillcolor="#C8E6C9"];
|
|
F2_5 [label="F2.5\nQualifier données\n(filtres qualité)", fillcolor="#C8E6C9"];
|
|
F2_6 [label="F2.6\nArbitrer divergences\n(tier 1 par défaut,\nconvergence → alerte)", fillcolor="#C8E6C9"];
|
|
F2_7 [label="F2.7\nCalculer indice\nde fiabilité", fillcolor="#C8E6C9"];
|
|
|
|
F2_1 -> F2_2 -> F2_3 -> F2_4 -> F2_5 -> F2_6 -> F2_7;
|
|
acteur_F2 [label="Acteur : Admin", shape=ellipse, fillcolor="#E8F5E9", fontsize=9];
|
|
}
|
|
|
|
// F3. Surveiller et maintenir
|
|
subgraph cluster_F3 {
|
|
label="F3. SURVEILLER ET MAINTENIR (cycle structurel — trimestriel)";
|
|
style=filled; color="#FFF3E0"; fontsize=12; fontcolor="#E65100";
|
|
|
|
F3_1 [label="F3.1\nVeiller sur\nles sources\n(huginn)", fillcolor="#FFE0B2"];
|
|
F3_2 [label="F3.2\nDétecter variations\nanormales (alertes)", fillcolor="#FFE0B2"];
|
|
F3_3 [label="F3.3\nContrôler\ncitations\n(verify-citations)", fillcolor="#FFE0B2"];
|
|
F3_4 [label="F3.4\nHistoriser données\net indices", fillcolor="#FFE0B2"];
|
|
F3_5 [label="F3.5\nAuditer exhaustivité\ndes matières premières", fillcolor="#FFE0B2"];
|
|
|
|
F3_1 -> F3_2;
|
|
F3_3 -> F3_4;
|
|
acteur_F3 [label="Acteurs : Admin (gouv.)\nServices internes (auto.)", shape=ellipse, fillcolor="#FFF3E0", fontsize=9];
|
|
}
|
|
|
|
// F4. Calculer les indices
|
|
subgraph cluster_F4 {
|
|
label="F4. CALCULER LES INDICES DE CRITICITÉ";
|
|
style=filled; color="#FCE4EC"; fontsize=12; fontcolor="#C62828";
|
|
|
|
F4_1 [label="F4.1\nCalculer IHH, ICS\nIVC, ISG (+ futurs)\nstructurels et situationnels", fillcolor="#F8BBD0"];
|
|
F4_2 [label="F4.2\nPré-calculer à\nchaque MAJ graphe", fillcolor="#F8BBD0"];
|
|
F4_3 [label="F4.3\nMéta-indices\ndynamiques\n(sur sélection)", fillcolor="#F8BBD0"];
|
|
F4_4 [label="F4.4\nRétro-analyser\n(backtesting)", fillcolor="#F8BBD0"];
|
|
F4_5 [label="F4.5\nPropager les impacts\net projeter\ntemporellement", fillcolor="#F8BBD0"];
|
|
|
|
F4_1 -> F4_2;
|
|
F4_3 -> F4_4;
|
|
acteur_F4 [label="Acteur : Services internes", shape=ellipse, fillcolor="#FCE4EC", fontsize=9];
|
|
}
|
|
|
|
// F5. Produire les fiches
|
|
subgraph cluster_F5 {
|
|
label="F5. PRODUIRE LES FICHES";
|
|
style=filled; color="#F3E5F5"; fontsize=12; fontcolor="#6A1B9A";
|
|
|
|
F5_1 [label="F5.1\nGénérer depuis\ndonnées via templates", fillcolor="#E1BEE7"];
|
|
F5_2 [label="F5.2\nAdapter par niveau\n(matière première,\ncomposant, composé...)", fillcolor="#E1BEE7"];
|
|
F5_3 [label="F5.3\nAdapter par usage\n(expertise, synthèse,\nAPI/JSON)", fillcolor="#E1BEE7"];
|
|
|
|
F5_1 -> F5_2 -> F5_3;
|
|
acteur_F5 [label="Acteur : Services internes", shape=ellipse, fillcolor="#F3E5F5", fontsize=9];
|
|
}
|
|
|
|
// F6. Exposer et servir
|
|
subgraph cluster_F6 {
|
|
label="F6. EXPOSER ET SERVIR";
|
|
style=filled; color="#E0F2F1"; fontsize=12; fontcolor="#00695C";
|
|
|
|
F6_1 [label="F6.1\nRequêtage graphe\n(expert / simplifié)", fillcolor="#B2DFDB"];
|
|
F6_2 [label="F6.2\nConsultation\nfiches", fillcolor="#B2DFDB"];
|
|
F6_3 [label="F6.3\nAnalyse vulnérabilité\net scénarios", fillcolor="#B2DFDB"];
|
|
F6_4 [label="F6.4\nExport\n(PDF, JSON, DOT)", fillcolor="#B2DFDB"];
|
|
F6_5 [label="F6.5\nContextualisation\nclient", fillcolor="#B2DFDB"];
|
|
F6_6 [label="F6.6\nIntégration\nécosystème 360°", fillcolor="#B2DFDB"];
|
|
F6_7 [label="F6.7\nScénarios multi-impacts\n(combinatoire)", fillcolor="#B2DFDB"];
|
|
|
|
acteur_F6 [label="Acteurs : Expert, Client\nCOMEX, Métiers, DSI", shape=ellipse, fillcolor="#E0F2F1", fontsize=9];
|
|
}
|
|
|
|
// F7. Capter et traduire les événements
|
|
subgraph cluster_F7 {
|
|
label="F7. CAPTER ET TRADUIRE LES ÉVÉNEMENTS (bus d'impact)";
|
|
style=filled; color="#FBE9E7"; fontsize=12; fontcolor="#BF360C";
|
|
|
|
F7_1 [label="F7.1\nRecevoir événements\n(veille 360°,\nsignaux faibles)", fillcolor="#FFCCBC"];
|
|
F7_2 [label="F7.2\nTraduire en impacts\nchiffrés (IA)", fillcolor="#FFCCBC"];
|
|
F7_3 [label="F7.3\nValidation expert\navant injection", fillcolor="#FFCCBC"];
|
|
F7_4 [label="F7.4\nMaintenir la mémoire\nsituationnelle\n(accumule, archive)", fillcolor="#FFCCBC"];
|
|
F7_5 [label="F7.5\nMettre à jour\nle graphe situationnel", fillcolor="#FFCCBC"];
|
|
|
|
F7_1 -> F7_2 -> F7_3 -> F7_4 -> F7_5;
|
|
acteur_F7 [label="Acteurs : Veille 360° (input)\nIA (traduction)\nExpert (validation)", shape=ellipse, fillcolor="#FBE9E7", fontsize=9];
|
|
}
|
|
|
|
// F8. Sécuriser et contrôler (transversal)
|
|
subgraph cluster_F8 {
|
|
label="F8. SÉCURISER ET CONTRÔLER (transversal)";
|
|
style=filled; color="#ECEFF1"; fontsize=12; fontcolor="#37474F";
|
|
|
|
F8_1 [label="F8.1 Auth\n(user / API key)", fillcolor="#CFD8DC"];
|
|
F8_2 [label="F8.2 Rôles\n(admin/expert/service)", fillcolor="#CFD8DC"];
|
|
F8_3 [label="F8.3 Profils\nvisibilité", fillcolor="#CFD8DC"];
|
|
F8_4 [label="F8.4 Rate limiting\n+ Monitoring", fillcolor="#CFD8DC"];
|
|
|
|
F8_1 -> F8_2 -> F8_3;
|
|
acteur_F8 [label="Acteurs : Admin (config)\nSystème (exécution)", shape=ellipse, fillcolor="#ECEFF1", fontsize=9];
|
|
}
|
|
|
|
// Flux principal
|
|
F1_5 -> F2_1 [lhead=cluster_F2, ltail=cluster_F1, penwidth=2, color="#333333"];
|
|
F2_7 -> F3_1 [lhead=cluster_F3, ltail=cluster_F2, penwidth=2, color="#333333"];
|
|
F3_4 -> F4_1 [lhead=cluster_F4, ltail=cluster_F3, penwidth=2, color="#333333"];
|
|
F4_2 -> F5_1 [lhead=cluster_F5, ltail=cluster_F4, penwidth=2, color="#333333"];
|
|
F5_3 -> F6_1 [lhead=cluster_F6, ltail=cluster_F5, penwidth=2, color="#333333"];
|
|
|
|
// F3 en continu
|
|
F3_2 -> F3_1 [style=dashed, color="#E65100", label="boucle\ncontinue"];
|
|
|
|
// F7 alimente F4 (impacts → calcul)
|
|
F7_5 -> F4_5 [lhead=cluster_F4, ltail=cluster_F7, penwidth=2, color="#BF360C", label="impacts\nchiffrés"];
|
|
|
|
// F7 boucle situationnelle
|
|
F7_4 -> F7_1 [style=dashed, color="#BF360C", label="mise à jour\ncontinue"];
|
|
|
|
// F8 transversal
|
|
F8_3 -> F5_1 [style=dotted, color="#37474F", lhead=cluster_F5, label="filtre"];
|
|
F8_3 -> F6_1 [style=dotted, color="#37474F", lhead=cluster_F6, label="filtre"];
|
|
}
|