Canevas 7D — Spécification détaillée des interfaces » History » Version 15
Redmine Admin, 06/19/2026 05:32 AM
| 1 | 1 | Redmine Admin | # Canevas 7D — Spécification détaillée des interfaces |
|---|---|---|---|
| 2 | |||
| 3 | ## 1. Objet du document |
||
| 4 | |||
| 5 | ### 1.1 Finalité de la spécification détaillée des interfaces |
||
| 6 | |||
| 7 | Cette partie précise l’objectif du document. |
||
| 8 | |||
| 9 | La spécification détaillée des interfaces décrit l’ensemble des points d’échange entre les composants du système ou entre le système et son environnement. Elle formalise les interfaces hardware, software, réseau, API, fichiers, IHM, maintenance, supervision, sauvegarde, systèmes tiers et procédures associées. |
||
| 10 | |||
| 11 | Ce document est essentiel dès qu’un projet comporte plusieurs sous-systèmes ou plusieurs équipes : hardware, software embarqué, serveur, infrastructure, réseau, IHM, maintenance, validation, client, fournisseur ou sous-traitants. Il permet d’éviter les zones floues entre les responsabilités et de garantir que chaque composant pourra effectivement communiquer ou interagir avec les autres. |
||
| 12 | |||
| 13 | **Exemple :** |
||
| 14 | |||
| 15 | > Le présent document a pour objectif de spécifier de manière détaillée les interfaces internes et externes du système, incluant les interfaces matérielles, logicielles, réseau, API, fichiers, IHM, maintenance, supervision et systèmes tiers. Il précise pour chaque interface les responsabilités, les données échangées, les formats, les protocoles, les conditions d’utilisation, les erreurs possibles, les exigences de sécurité et les tests associés. |
||
| 16 | |||
| 17 | ### 1.2 Positionnement dans le cycle en V |
||
| 18 | |||
| 19 | Cette partie situe le document dans le cycle en V. |
||
| 20 | |||
| 21 | La spécification détaillée des interfaces est produite à partir de la spécification globale, de l’architecture système, du dossier infrastructure et des spécifications détaillées des sous-systèmes. Elle sert d’entrée à la conception détaillée, au développement, au câblage, à l’intégration, aux tests d’interfaces, aux tests d’intégration et à la validation système. |
||
| 22 | |||
| 23 | Elle est particulièrement importante pour les tests d’intégration, car une grande partie des anomalies d’intégration provient d’interfaces incomplètes, ambiguës ou interprétées différemment par les équipes. |
||
| 24 | |||
| 25 | ```text |
||
| 26 | Spécification globale |
||
| 27 | ↓ |
||
| 28 | Architecture système / conception globale |
||
| 29 | ↓ |
||
| 30 | Spécifications détaillées hardware / software / serveur / infrastructure |
||
| 31 | ↓ |
||
| 32 | Spécification détaillée des interfaces |
||
| 33 | ↓ |
||
| 34 | Conceptions détaillées et réalisation |
||
| 35 | ↑ |
||
| 36 | Tests unitaires |
||
| 37 | ↑ |
||
| 38 | Tests d’interfaces |
||
| 39 | ↑ |
||
| 40 | Tests d’intégration |
||
| 41 | ↑ |
||
| 42 | Tests système |
||
| 43 | ↑ |
||
| 44 | Validation client |
||
| 45 | ``` |
||
| 46 | |||
| 47 | ### 1.3 Différence avec l’architecture système |
||
| 48 | |||
| 49 | Cette partie précise la frontière avec le dossier d’architecture. |
||
| 50 | |||
| 51 | L’architecture système identifie les interfaces principales et leur rôle. |
||
| 52 | La spécification détaillée des interfaces décrit précisément leur contenu, leur format, leur comportement, leurs contraintes, leurs erreurs possibles et leurs critères de test. |
||
| 53 | |||
| 54 | **Exemple :** |
||
| 55 | |||
| 56 | ```text |
||
| 57 | Architecture système : |
||
| 58 | L’équipement embarqué communique avec le serveur applicatif via une interface réseau sécurisée. |
||
| 59 | |||
| 60 | Spécification détaillée des interfaces : |
||
| 61 | L’interface IF-NET-001 utilise HTTPS ou MQTT/TLS. Elle transporte des messages de type MEASURE, ALARM, STATE et DIAGNOSTIC. Chaque message contient un identifiant équipement, un horodatage, un type de message, une version de protocole, un identifiant de message et une charge utile. Le serveur retourne un acquittement ACCEPTED, REJECTED ou RETRY. |
||
| 62 | ``` |
||
| 63 | |||
| 64 | ### 1.4 Différence avec les spécifications détaillées des sous-systèmes |
||
| 65 | |||
| 66 | Cette partie explique pourquoi un document spécifique aux interfaces est utile. |
||
| 67 | |||
| 68 | Les spécifications détaillées hardware, software embarqué et serveur décrivent les exigences propres à chaque sous-système. Le document d’interfaces décrit ce qui est partagé entre eux. Il constitue donc un contrat entre sous-systèmes. |
||
| 69 | |||
| 70 | **Exemple :** |
||
| 71 | |||
| 72 | ```text |
||
| 73 | Spécification software embarqué : |
||
| 74 | Le firmware doit transmettre les mesures au serveur. |
||
| 75 | |||
| 76 | Spécification serveur : |
||
| 77 | Le serveur doit recevoir les mesures transmises par les équipements. |
||
| 78 | |||
| 79 | Spécification d’interface : |
||
| 80 | Le message MEASURE doit contenir les champs equipment_id, message_id, timestamp_device, measure_type, value, unit, quality et protocol_version. Le serveur doit répondre par un acquittement contenant message_id, status et optional_error_code. |
||
| 81 | ``` |
||
| 82 | |||
| 83 | ### 1.5 Responsabilités de rédaction et d’approbation |
||
| 84 | |||
| 85 | Cette partie précise qui rédige, contribue et approuve le document. |
||
| 86 | |||
| 87 | La spécification d’interfaces doit être rédigée par l’ingénieur système ou l’architecte, avec les contributions des responsables hardware, software embarqué, serveur, infrastructure, réseau, cybersécurité, validation, maintenance et systèmes tiers. |
||
| 88 | |||
| 89 | **Exemple :** |
||
| 90 | |||
| 91 | ```text |
||
| 92 | Rédaction : ingénieur système / architecte système / responsable intégration |
||
| 93 | Contribution : hardware, firmware, backend, frontend, infrastructure, réseau, cybersécurité, validation |
||
| 94 | Relecture : responsables de sous-systèmes, qualité, exploitation, maintenance |
||
| 95 | Approbation : responsable technique fournisseur et client si les interfaces sont contractuelles ou impliquent le SI client |
||
| 96 | ``` |
||
| 97 | |||
| 98 | --- |
||
| 99 | |||
| 100 | ## 2. Références et documents applicables |
||
| 101 | |||
| 102 | ### 2.1 Documents d’entrée |
||
| 103 | |||
| 104 | Cette partie liste les documents utilisés pour définir les interfaces. |
||
| 105 | |||
| 106 | **Exemples :** |
||
| 107 | |||
| 108 | ```text |
||
| 109 | - Cahier des charges / expression de besoin |
||
| 110 | - Spécification globale / système |
||
| 111 | - Architecture système / conception globale |
||
| 112 | - Dossier des modes de fonctionnement |
||
| 113 | - Dossier infrastructure informatique / réseau / sauvegarde |
||
| 114 | - Spécification détaillée hardware |
||
| 115 | - Spécification détaillée software embarqué |
||
| 116 | - Spécification détaillée serveur / application |
||
| 117 | - Spécification cybersécurité |
||
| 118 | - Contraintes réseau client |
||
| 119 | - Documentation des équipements tiers |
||
| 120 | - Documentation des API externes |
||
| 121 | - Procédures d’exploitation et de maintenance |
||
| 122 | ``` |
||
| 123 | |||
| 124 | ### 2.2 Documents applicables |
||
| 125 | |||
| 126 | Cette partie liste les standards, normes ou contraintes à respecter. |
||
| 127 | |||
| 128 | **Exemples :** |
||
| 129 | |||
| 130 | ```text |
||
| 131 | - standard de câblage client ; |
||
| 132 | - standard de connectique ; |
||
| 133 | - référentiel réseau client ; |
||
| 134 | - politique cybersécurité ; |
||
| 135 | - standard API REST ou MQTT ; |
||
| 136 | - format d’échange imposé ; |
||
| 137 | - politique de nommage des équipements ; |
||
| 138 | - règles de journalisation ; |
||
| 139 | - politique d’authentification ; |
||
| 140 | - contraintes RGPD si données personnelles ; |
||
| 141 | - règles de versionnement des interfaces. |
||
| 142 | ``` |
||
| 143 | |||
| 144 | ### 2.3 Documents produits à partir de cette spécification |
||
| 145 | |||
| 146 | Cette partie liste les documents qui utiliseront cette spécification. |
||
| 147 | |||
| 148 | **Exemples :** |
||
| 149 | |||
| 150 | ```text |
||
| 151 | - conception détaillée hardware ; |
||
| 152 | - conception détaillée software embarqué ; |
||
| 153 | - conception détaillée serveur ; |
||
| 154 | - conception détaillée réseau ; |
||
| 155 | - conception API ; |
||
| 156 | - schémas de câblage ; |
||
| 157 | - dictionnaire de données ; |
||
| 158 | - procédures de tests d’interfaces ; |
||
| 159 | - procédures de tests d’intégration ; |
||
| 160 | - simulateurs d’équipements ; |
||
| 161 | - simulateurs serveur ; |
||
| 162 | - manuel d’installation ; |
||
| 163 | - manuel maintenance ; |
||
| 164 | - dossier de validation. |
||
| 165 | ``` |
||
| 166 | |||
| 167 | ### 2.4 Gestion des versions d’interface |
||
| 168 | |||
| 169 | Cette partie précise comment les évolutions d’interface sont maîtrisées. |
||
| 170 | |||
| 171 | Une interface est souvent partagée par plusieurs équipes. Sa modification peut donc provoquer des incompatibilités. Les versions doivent être identifiées et les évolutions incompatibles doivent être explicitement tracées. |
||
| 172 | |||
| 173 | **Exemple :** |
||
| 174 | |||
| 175 | > Toute modification d’un format de message, d’un connecteur, d’un brochage, d’un protocole, d’un endpoint API, d’un champ obligatoire, d’un code erreur ou d’un comportement d’acquittement doit faire l’objet d’une analyse d’impact sur les sous-systèmes concernés et sur les tests d’intégration. |
||
| 176 | |||
| 177 | --- |
||
| 178 | |||
| 179 | ## 3. Définitions, acronymes et conventions |
||
| 180 | |||
| 181 | ### 3.1 Définitions |
||
| 182 | |||
| 183 | Cette partie définit les termes utilisés dans le document. |
||
| 184 | |||
| 185 | **Exemples :** |
||
| 186 | |||
| 187 | ```text |
||
| 188 | Interface : |
||
| 189 | Point d’échange entre deux composants, deux sous-systèmes ou entre le système et un élément externe. |
||
| 190 | |||
| 191 | Interface interne : |
||
| 192 | Interface entre deux composants appartenant au système. |
||
| 193 | |||
| 194 | Interface externe : |
||
| 195 | Interface entre le système et un élément hors périmètre : réseau client, équipement tiers, utilisateur, système externe. |
||
| 196 | |||
| 197 | Protocole : |
||
| 198 | Ensemble de règles définissant la manière dont deux composants échangent des informations. |
||
| 199 | |||
| 200 | Message : |
||
| 201 | Unité d’échange structurée transportant des données, une commande, un événement, une alarme ou un acquittement. |
||
| 202 | |||
| 203 | Acquittement : |
||
| 204 | Réponse confirmant qu’un message a été reçu, accepté, rejeté ou devra être retransmis. |
||
| 205 | |||
| 206 | Contrat d’interface : |
||
| 207 | Ensemble des règles que les deux parties d’une interface doivent respecter. |
||
| 208 | ``` |
||
| 209 | |||
| 210 | ### 3.2 Acronymes |
||
| 211 | |||
| 212 | **Exemples :** |
||
| 213 | |||
| 214 | ```text |
||
| 215 | API : Application Programming Interface |
||
| 216 | CAN : Controller Area Network |
||
| 217 | CSV : Comma-Separated Values |
||
| 218 | GPIO : General Purpose Input/Output |
||
| 219 | HTTP : HyperText Transfer Protocol |
||
| 220 | HTTPS : HyperText Transfer Protocol Secure |
||
| 221 | IHM : Interface Homme-Machine |
||
| 222 | JSON : JavaScript Object Notation |
||
| 223 | MQTT : Message Queuing Telemetry Transport |
||
| 224 | REST : Representational State Transfer |
||
| 225 | RS485 : Bus série différentiel |
||
| 226 | TLS : Transport Layer Security |
||
| 227 | VPN : Virtual Private Network |
||
| 228 | XML : eXtensible Markup Language |
||
| 229 | ``` |
||
| 230 | |||
| 231 | ### 3.3 Convention d’identification des interfaces |
||
| 232 | |||
| 233 | Cette partie définit une codification claire. |
||
| 234 | |||
| 235 | **Exemple :** |
||
| 236 | |||
| 237 | ```text |
||
| 238 | IF-HW-001 : interface matérielle |
||
| 239 | IF-SW-001 : interface logicielle interne |
||
| 240 | IF-NET-001 : interface réseau |
||
| 241 | IF-API-001 : API applicative |
||
| 242 | IF-IHM-001 : interface utilisateur |
||
| 243 | IF-DOC-001 : interface fichier ou document |
||
| 244 | IF-MNT-001 : interface maintenance |
||
| 245 | IF-SUP-001 : interface supervision |
||
| 246 | IF-TIERS-001 : interface système tiers |
||
| 247 | ``` |
||
| 248 | |||
| 249 | ### 3.4 Convention de description d’une interface |
||
| 250 | |||
| 251 | Cette partie définit le format standard de description. |
||
| 252 | |||
| 253 | Chaque interface devrait être décrite avec une structure constante. |
||
| 254 | |||
| 255 | ```text |
||
| 256 | Identifiant interface : |
||
| 257 | Nom : |
||
| 258 | Type : |
||
| 259 | Source : |
||
| 260 | Destination : |
||
| 261 | Responsable source : |
||
| 262 | Responsable destination : |
||
| 263 | Sens d’échange : |
||
| 264 | Usage : |
||
| 265 | Données échangées : |
||
| 266 | Format : |
||
| 267 | Protocole : |
||
| 268 | Fréquence : |
||
| 269 | Criticité : |
||
| 270 | Sécurité : |
||
| 271 | Gestion des erreurs : |
||
| 272 | Logs associés : |
||
| 273 | Tests associés : |
||
| 274 | Commentaires : |
||
| 275 | ``` |
||
| 276 | |||
| 277 | ### 3.5 Convention de criticité des interfaces |
||
| 278 | |||
| 279 | Cette partie permet de prioriser les interfaces. |
||
| 280 | |||
| 281 | **Exemple :** |
||
| 282 | |||
| 283 | ```text |
||
| 284 | Critique : |
||
| 285 | interface liée à la sécurité, aux commandes critiques, aux alarmes critiques ou à l’état sûr. |
||
| 286 | |||
| 287 | Élevée : |
||
| 288 | interface nécessaire au fonctionnement principal du système. |
||
| 289 | |||
| 290 | Moyenne : |
||
| 291 | interface importante pour l’exploitation, la maintenance ou le confort d’usage. |
||
| 292 | |||
| 293 | Faible : |
||
| 294 | interface secondaire, optionnelle ou non bloquante. |
||
| 295 | ``` |
||
| 296 | |||
| 297 | --- |
||
| 298 | |||
| 299 | ## 4. Vue générale des interfaces du système |
||
| 300 | |||
| 301 | ### 4.1 Présentation générale |
||
| 302 | |||
| 303 | Cette partie donne une vue d’ensemble des interfaces du système. |
||
| 304 | |||
| 305 | Elle doit permettre de comprendre rapidement quels composants échangent avec quels autres composants et pour quel usage. |
||
| 306 | |||
| 307 | **Exemple :** |
||
| 308 | |||
| 309 | > Le système comporte des interfaces entre l’équipement embarqué et les capteurs, entre le firmware et le hardware, entre l’équipement et le serveur, entre le serveur et la base de données, entre l’application et l’IHM, entre le serveur et les systèmes tiers, entre les administrateurs et les fonctions de maintenance, ainsi qu’entre l’application et les mécanismes de sauvegarde et supervision. |
||
| 310 | |||
| 311 | ### 4.2 Liste synthétique des interfaces |
||
| 312 | |||
| 313 | Cette partie liste toutes les interfaces identifiées. |
||
| 314 | |||
| 315 | **Exemple :** |
||
| 316 | |||
| 317 | ```text |
||
| 318 | 2 | Redmine Admin | ID | Nom | Type | Source | Destination | Criticité |
| 319 | IF-HW-001 | alimentation équipement | hardware | alimentation site | équipement | critique |
||
| 320 | IF-HW-002 | entrée capteur température | hardware | capteur | carte contrôle | élevée |
||
| 321 | IF-SW-001 | lecture entrée numérique | software interne | hardware | firmware | élevée |
||
| 322 | IF-NET-001 | équipement vers serveur | réseau/API | équipement | serveur | élevée |
||
| 323 | IF-API-001 | API mesures | API | équipement | serveur | élevée |
||
| 324 | IF-IHM-001 | tableau de bord | IHM | utilisateur | serveur | moyenne |
||
| 325 | IF-DOC-001 | export CSV mesures | fichier | serveur | utilisateur | faible/moyenne |
||
| 326 | IF-MNT-001 | port maintenance local | maintenance | technicien | équipement | élevée |
||
| 327 | IF-TIERS-001 | export supervision | système tiers | serveur | supervision client | moyenne |
||
| 328 | 1 | Redmine Admin | ``` |
| 329 | |||
| 330 | ### 4.3 Synoptique des interfaces |
||
| 331 | |||
| 332 | Cette partie doit contenir un schéma général. |
||
| 333 | |||
| 334 | **Exemple textuel :** |
||
| 335 | |||
| 336 | ```text |
||
| 337 | Capteurs / Actionneurs |
||
| 338 | ↕ IF-HW |
||
| 339 | Équipement hardware |
||
| 340 | ↕ IF-SW-HW |
||
| 341 | Firmware embarqué |
||
| 342 | ↕ IF-NET / IF-API |
||
| 343 | Serveur applicatif |
||
| 344 | ↕ IF-DB |
||
| 345 | Base de données |
||
| 346 | ↕ IF-IHM |
||
| 347 | Interface utilisateur |
||
| 348 | ↕ IF-TIERS |
||
| 349 | Systèmes externes |
||
| 350 | ``` |
||
| 351 | |||
| 352 | ### 4.4 Interfaces internes et externes |
||
| 353 | |||
| 354 | Cette partie distingue les interfaces internes au système et celles avec l’extérieur. |
||
| 355 | |||
| 356 | **Exemple :** |
||
| 357 | |||
| 358 | ```text |
||
| 359 | Interfaces internes : |
||
| 360 | - firmware / hardware ; |
||
| 361 | - firmware / stockage local ; |
||
| 362 | - serveur / base de données ; |
||
| 363 | - backend / frontend ; |
||
| 364 | - serveur / supervision applicative. |
||
| 365 | |||
| 366 | Interfaces externes : |
||
| 367 | - équipement / capteurs externes ; |
||
| 368 | - équipement / réseau client ; |
||
| 369 | - serveur / système tiers ; |
||
| 370 | - application / utilisateur ; |
||
| 371 | - serveur / annuaire client ; |
||
| 372 | - serveur / outil de sauvegarde externe. |
||
| 373 | ``` |
||
| 374 | |||
| 375 | ### 4.5 Interfaces critiques |
||
| 376 | |||
| 377 | Cette partie identifie les interfaces dont une défaillance a un impact fort. |
||
| 378 | |||
| 379 | **Exemples :** |
||
| 380 | |||
| 381 | ```text |
||
| 382 | - interface arrêt d’urgence ; |
||
| 383 | - interface commande relais critique ; |
||
| 384 | - interface équipement / serveur ; |
||
| 385 | - interface alarmes ; |
||
| 386 | - interface base de données ; |
||
| 387 | - interface configuration ; |
||
| 388 | - interface mise à jour ; |
||
| 389 | - interface authentification ; |
||
| 390 | - interface sauvegarde / restauration. |
||
| 391 | ``` |
||
| 392 | |||
| 393 | --- |
||
| 394 | |||
| 395 | ## 5. Interfaces hardware |
||
| 396 | |||
| 397 | ### 5.1 Objet des interfaces hardware |
||
| 398 | |||
| 399 | Cette partie décrit les interfaces physiques entre le matériel du système et les éléments externes ou internes : alimentation, capteurs, actionneurs, connecteurs, borniers, ports, bus, boutons, voyants, arrêts d’urgence et signaux électriques. |
||
| 400 | |||
| 401 | ### 5.2 Liste des interfaces hardware |
||
| 402 | |||
| 403 | **Exemple :** |
||
| 404 | |||
| 405 | ```text |
||
| 406 | 3 | Redmine Admin | ID | Nom | Type | Source | Destination | Usage | Criticité |
| 407 | IF-HW-001 | alimentation principale | électrique | alimentation site | équipement | alimentation | critique |
||
| 408 | IF-HW-002 | capteur température | analogique | capteur | carte contrôle | mesure température | élevée |
||
| 409 | IF-HW-003 | contact porte | numérique | contact sec | entrée carte | état porte | moyenne |
||
| 410 | IF-HW-004 | sortie relais | relais | carte contrôle | actionneur | commande | critique |
||
| 411 | IF-HW-005 | Ethernet | connecteur réseau | équipement | réseau site | communication | élevée |
||
| 412 | IF-HW-006 | port maintenance | USB/UART/Ethernet | technicien | équipement | diagnostic | élevée |
||
| 413 | 1 | Redmine Admin | ``` |
| 414 | |||
| 415 | ### 5.3 Description d’une interface d’alimentation |
||
| 416 | |||
| 417 | Cette partie décrit les interfaces d’alimentation. |
||
| 418 | |||
| 419 | **Exemple :** |
||
| 420 | |||
| 421 | ```text |
||
| 422 | Identifiant : IF-HW-001 |
||
| 423 | 4 | Redmine Admin | Nom : alimentation principale |
| 424 | Type : électrique |
||
| 425 | Source : alimentation site |
||
| 426 | Destination : équipement |
||
| 427 | Usage : fournir l’énergie nécessaire au fonctionnement |
||
| 428 | Tension nominale : 24 VDC |
||
| 429 | Plage admissible : à définir selon projet |
||
| 430 | Protection : fusible, protection inversion, surtension si applicable |
||
| 431 | Criticité : critique |
||
| 432 | Défauts possibles : absence alimentation, sous-tension, surtension, inversion polarité |
||
| 433 | 1 | Redmine Admin | Comportement attendu : arrêt contrôlé ou état sûr selon possibilités |
| 434 | 4 | Redmine Admin | Tests associés : TEST-HW-ALIM-001, TEST-HW-ALIM-002 |
| 435 | 1 | Redmine Admin | ``` |
| 436 | |||
| 437 | ### 5.4 Description d’une interface capteur |
||
| 438 | |||
| 439 | Cette partie décrit les interfaces entre un capteur et l’équipement. |
||
| 440 | |||
| 441 | **Exemple :** |
||
| 442 | |||
| 443 | ```text |
||
| 444 | 5 | Redmine Admin | Identifiant : IF-HW-002 |
| 445 | Nom : capteur température |
||
| 446 | Type : entrée analogique |
||
| 447 | Source : capteur température |
||
| 448 | Destination : carte de contrôle |
||
| 449 | Usage : mesurer la température interne ou externe |
||
| 450 | Donnée produite : température |
||
| 451 | Unité : °C |
||
| 452 | Plage attendue : selon capteur |
||
| 453 | 1 | Redmine Admin | Défauts détectables : capteur absent, valeur hors plage, court-circuit, rupture |
| 454 | 5 | Redmine Admin | Criticité : élevée |
| 455 | Traitement associé : acquisition, conversion, surveillance seuil |
||
| 456 | Tests associés : TEST-HW-CAPT-001, TEST-SW-ACQ-001, TEST-INT-CAPT-001 |
||
| 457 | 1 | Redmine Admin | ``` |
| 458 | |||
| 459 | ### 5.5 Description d’une interface actionneur ou relais |
||
| 460 | |||
| 461 | Cette partie décrit les sorties commandées. |
||
| 462 | |||
| 463 | **Exemple :** |
||
| 464 | |||
| 465 | ```text |
||
| 466 | 6 | Redmine Admin | Identifiant : IF-HW-004 |
| 467 | Nom : sortie relais de commande |
||
| 468 | Type : sortie relais |
||
| 469 | Source : carte de contrôle |
||
| 470 | Destination : actionneur externe |
||
| 471 | Usage : commander une action physique |
||
| 472 | État au repos : ouvert |
||
| 473 | État sûr : ouvert |
||
| 474 | 1 | Redmine Admin | Commande autorisée en mode : nominal, maintenance sous conditions |
| 475 | Commande interdite en mode : arrêt, secours, arrêt d’urgence |
||
| 476 | 6 | Redmine Admin | Défauts possibles : relais bloqué, charge absente, retour d’état incohérent |
| 477 | Criticité : critique |
||
| 478 | Tests associés : TEST-HW-REL-001, TEST-INT-CMD-001, TEST-SAFE-001 |
||
| 479 | 1 | Redmine Admin | ``` |
| 480 | |||
| 481 | ### 5.6 Brochage et connectique |
||
| 482 | |||
| 483 | Cette partie décrit les connecteurs, broches et câblages. |
||
| 484 | |||
| 485 | **Exemple :** |
||
| 486 | |||
| 487 | ```text |
||
| 488 | Connecteur J1 — alimentation |
||
| 489 | Broche 1 : +24 VDC |
||
| 490 | Broche 2 : 0 V |
||
| 491 | Broche 3 : terre fonctionnelle si applicable |
||
| 492 | |||
| 493 | Connecteur J2 — entrées numériques |
||
| 494 | Broche 1 : IN1 contact porte |
||
| 495 | Broche 2 : IN2 défaut externe |
||
| 496 | Broche 3 : commun |
||
| 497 | Broche 4 : réserve |
||
| 498 | ``` |
||
| 499 | |||
| 500 | ### 5.7 Contraintes de câblage |
||
| 501 | |||
| 502 | Cette partie décrit les règles à respecter pour le câblage. |
||
| 503 | |||
| 504 | **Exemples :** |
||
| 505 | |||
| 506 | ```text |
||
| 507 | - séparation puissance / signaux faibles ; |
||
| 508 | - blindage des câbles sensibles ; |
||
| 509 | - longueur maximale ; |
||
| 510 | - section minimale ; |
||
| 511 | - repérage des câbles ; |
||
| 512 | - détrompage connecteur ; |
||
| 513 | - rayon de courbure ; |
||
| 514 | - mise à la terre ; |
||
| 515 | - protection mécanique ; |
||
| 516 | - passage en presse-étoupe. |
||
| 517 | ``` |
||
| 518 | |||
| 519 | ### 5.8 Erreurs et défauts hardware à gérer |
||
| 520 | |||
| 521 | Cette partie liste les défauts possibles sur les interfaces hardware. |
||
| 522 | |||
| 523 | **Exemples :** |
||
| 524 | |||
| 525 | ```text |
||
| 526 | - capteur absent ; |
||
| 527 | - court-circuit ; |
||
| 528 | - rupture de câble ; |
||
| 529 | - inversion de câblage ; |
||
| 530 | - tension hors plage ; |
||
| 531 | - relais bloqué ; |
||
| 532 | - contact instable ; |
||
| 533 | - perte alimentation ; |
||
| 534 | - connecteur débranché ; |
||
| 535 | - module communication absent. |
||
| 536 | ``` |
||
| 537 | |||
| 538 | ### 5.9 Tests associés aux interfaces hardware |
||
| 539 | |||
| 540 | **Exemples :** |
||
| 541 | |||
| 542 | ```text |
||
| 543 | - test alimentation nominale ; |
||
| 544 | - test entrée capteur nominale ; |
||
| 545 | - test capteur hors plage ; |
||
| 546 | - test contact sec ouvert/fermé ; |
||
| 547 | - test sortie relais ; |
||
| 548 | - test état sûr relais ; |
||
| 549 | - test connecteur débranché ; |
||
| 550 | - test port maintenance ; |
||
| 551 | - test défaut câblage. |
||
| 552 | ``` |
||
| 553 | |||
| 554 | --- |
||
| 555 | |||
| 556 | ## 6. Interfaces firmware / hardware |
||
| 557 | |||
| 558 | ### 6.1 Objet des interfaces firmware / hardware |
||
| 559 | |||
| 560 | Cette partie décrit les interfaces logiques entre le logiciel embarqué et le matériel : entrées lues, sorties commandées, périphériques utilisés, bus internes, mémoire, horloge, watchdog, stockage et modules de communication. |
||
| 561 | |||
| 562 | Ces interfaces sont importantes car elles font le lien direct entre la spécification hardware et la spécification software embarqué. |
||
| 563 | |||
| 564 | ### 6.2 Liste des interfaces firmware / hardware |
||
| 565 | |||
| 566 | **Exemple :** |
||
| 567 | |||
| 568 | ```text |
||
| 569 | 7 | Redmine Admin | ID | Nom | Type | Hardware | Firmware | Usage |
| 570 | IF-SW-HW-001 | lecture entrée porte | GPIO | entrée numérique | InputManager | état porte |
||
| 571 | IF-SW-HW-002 | lecture température | ADC/I2C/SPI | capteur température | AcquisitionManager | mesure |
||
| 572 | IF-SW-HW-003 | commande relais | GPIO | sortie relais | OutputManager | commande |
||
| 573 | IF-SW-HW-004 | watchdog | périphérique sécurité | watchdog matériel | WatchdogManager | surveillance |
||
| 574 | IF-SW-HW-005 | stockage local | mémoire | mémoire non volatile | StorageManager | données locales |
||
| 575 | IF-SW-HW-006 | horloge RTC | RTC | horloge locale | TimeManager | horodatage |
||
| 576 | 1 | Redmine Admin | ``` |
| 577 | |||
| 578 | ### 6.3 Lecture des entrées par le firmware |
||
| 579 | |||
| 580 | Cette partie décrit comment les entrées matérielles sont exposées au logiciel. |
||
| 581 | |||
| 582 | **Exemples d’éléments à préciser :** |
||
| 583 | |||
| 584 | ```text |
||
| 585 | - nom logique de l’entrée ; |
||
| 586 | - polarité ; |
||
| 587 | - état actif ; |
||
| 588 | - état au repos ; |
||
| 589 | - fréquence de lecture ; |
||
| 590 | - filtrage logiciel ; |
||
| 591 | - défaut détectable ; |
||
| 592 | - criticité ; |
||
| 593 | - mode dans lequel l’entrée est utilisée. |
||
| 594 | ``` |
||
| 595 | |||
| 596 | **Exemple :** |
||
| 597 | |||
| 598 | ```text |
||
| 599 | Interface : IF-SW-HW-001 |
||
| 600 | 8 | Redmine Admin | Nom : lecture contact porte |
| 601 | Type : GPIO entrée numérique |
||
| 602 | Polarité : actif à 1 |
||
| 603 | 1 | Redmine Admin | Fréquence lecture : 1 seconde ou événement |
| 604 | 8 | Redmine Admin | Filtrage : anti-rebond logiciel 100 ms |
| 605 | 1 | Redmine Admin | Défaut détectable : incohérence si état impossible selon mode |
| 606 | 8 | Redmine Admin | Traitement : mise à jour état porte, génération événement si changement |
| 607 | 1 | Redmine Admin | ``` |
| 608 | |||
| 609 | ### 6.4 Commande des sorties par le firmware |
||
| 610 | |||
| 611 | Cette partie décrit la manière dont le firmware commande les sorties. |
||
| 612 | |||
| 613 | **Exemples :** |
||
| 614 | |||
| 615 | ```text |
||
| 616 | 9 | Redmine Admin | Interface : IF-SW-HW-003 |
| 617 | Nom : commande relais principal |
||
| 618 | Type : GPIO sortie |
||
| 619 | État actif : 1 |
||
| 620 | État sûr : 0 |
||
| 621 | 1 | Redmine Admin | État au démarrage : 0 |
| 622 | 9 | Redmine Admin | Modes autorisés : nominal, maintenance contrôlée |
| 623 | Modes interdits : arrêt, secours, arrêt d’urgence |
||
| 624 | Retour d’état : oui/non selon hardware |
||
| 625 | Test associé : TEST-INT-OUT-001 |
||
| 626 | 1 | Redmine Admin | ``` |
| 627 | |||
| 628 | ### 6.5 Accès au stockage local |
||
| 629 | |||
| 630 | Cette partie décrit l’interface entre firmware et mémoire locale. |
||
| 631 | |||
| 632 | **Exemples :** |
||
| 633 | |||
| 634 | ```text |
||
| 635 | - type de mémoire ; |
||
| 636 | - usage ; |
||
| 637 | - données stockées ; |
||
| 638 | - taille disponible ; |
||
| 639 | - comportement en saturation ; |
||
| 640 | - détection d’erreur ; |
||
| 641 | - intégrité ; |
||
| 642 | - nombre d’écritures ; |
||
| 643 | - effacement ; |
||
| 644 | - format logique ; |
||
| 645 | - tests associés. |
||
| 646 | ``` |
||
| 647 | |||
| 648 | ### 6.6 Accès à l’horloge |
||
| 649 | |||
| 650 | Cette partie décrit l’interface avec une horloge temps réel ou une référence temporelle. |
||
| 651 | |||
| 652 | **Exemples :** |
||
| 653 | |||
| 654 | ```text |
||
| 655 | - lecture date/heure ; |
||
| 656 | - synchronisation serveur ; |
||
| 657 | - maintien en absence réseau ; |
||
| 658 | - dérive acceptable ; |
||
| 659 | - état horloge incertain ; |
||
| 660 | - défaut batterie RTC ; |
||
| 661 | - horodatage des événements. |
||
| 662 | ``` |
||
| 663 | |||
| 664 | ### 6.7 Watchdog |
||
| 665 | |||
| 666 | Cette partie décrit l’interface avec le watchdog matériel ou logiciel. |
||
| 667 | |||
| 668 | **Exemples :** |
||
| 669 | |||
| 670 | ```text |
||
| 671 | - activation watchdog ; |
||
| 672 | - période de rafraîchissement ; |
||
| 673 | - conditions de rafraîchissement ; |
||
| 674 | - comportement en expiration ; |
||
| 675 | - cause du reset ; |
||
| 676 | - journalisation au redémarrage ; |
||
| 677 | - tests associés. |
||
| 678 | ``` |
||
| 679 | |||
| 680 | ### 6.8 Tests associés aux interfaces firmware / hardware |
||
| 681 | |||
| 682 | **Exemples :** |
||
| 683 | |||
| 684 | ```text |
||
| 685 | - lecture entrée nominale ; |
||
| 686 | - lecture entrée bruitée ; |
||
| 687 | - commande sortie ; |
||
| 688 | - état sûr au démarrage ; |
||
| 689 | - mémoire locale écriture/lecture ; |
||
| 690 | - saturation mémoire ; |
||
| 691 | - horloge absente ; |
||
| 692 | - synchronisation horaire ; |
||
| 693 | - watchdog déclenché ; |
||
| 694 | - version hardware lue par firmware. |
||
| 695 | ``` |
||
| 696 | |||
| 697 | --- |
||
| 698 | |||
| 699 | ## 7. Interfaces équipement embarqué / serveur |
||
| 700 | |||
| 701 | ### 7.1 Objet de l’interface équipement / serveur |
||
| 702 | |||
| 703 | Cette partie décrit l’interface principale entre les équipements embarqués et le serveur applicatif. |
||
| 704 | |||
| 705 | Elle est généralement critique, car elle permet la transmission des mesures, alarmes, événements, diagnostics, états et éventuellement la réception de configurations ou commandes. |
||
| 706 | |||
| 707 | ### 7.2 Nature de l’interface |
||
| 708 | |||
| 709 | Cette partie précise le type d’interface utilisé. |
||
| 710 | |||
| 711 | **Exemples :** |
||
| 712 | |||
| 713 | ```text |
||
| 714 | - HTTPS REST ; |
||
| 715 | - MQTT/TLS ; |
||
| 716 | - WebSocket ; |
||
| 717 | - TCP propriétaire ; |
||
| 718 | - UDP ; |
||
| 719 | - fichier déposé dans un SAS ; |
||
| 720 | - liaison série via passerelle ; |
||
| 721 | - protocole industriel. |
||
| 722 | ``` |
||
| 723 | |||
| 724 | **Exemple d’exigence :** |
||
| 725 | |||
| 726 | ```text |
||
| 727 | IF-NET-001 — L’équipement embarqué doit communiquer avec le serveur applicatif via le protocole défini pour l’interface équipement / serveur. |
||
| 728 | ``` |
||
| 729 | |||
| 730 | ### 7.3 Messages équipement vers serveur |
||
| 731 | |||
| 732 | Cette partie liste les messages montants. |
||
| 733 | |||
| 734 | **Exemples :** |
||
| 735 | |||
| 736 | ```text |
||
| 737 | 10 | Redmine Admin | - MEASURE : transmission de mesure ; |
| 738 | - ALARM : transmission d’alarme ; |
||
| 739 | - EVENT : transmission d’événement ; |
||
| 740 | - STATE : transmission d’état courant ; |
||
| 741 | 1 | Redmine Admin | - DIAGNOSTIC : transmission d’informations de diagnostic ; |
| 742 | 10 | Redmine Admin | - LOG : transmission de logs ; |
| 743 | - VERSION : transmission des versions ; |
||
| 744 | - SYNC_DATA : retransmission de données après perte réseau. |
||
| 745 | 1 | Redmine Admin | ``` |
| 746 | |||
| 747 | ### 7.4 Messages serveur vers équipement |
||
| 748 | |||
| 749 | Cette partie liste les messages descendants. |
||
| 750 | |||
| 751 | **Exemples :** |
||
| 752 | |||
| 753 | ```text |
||
| 754 | 11 | Redmine Admin | - ACK : acquittement ; |
| 755 | - CONFIG : configuration ; |
||
| 756 | - COMMAND : commande ; |
||
| 757 | - TIME_SYNC : synchronisation horaire ; |
||
| 758 | 1 | Redmine Admin | - UPDATE_REQUEST : demande de mise à jour ; |
| 759 | 11 | Redmine Admin | - DIAG_REQUEST : demande de diagnostic ; |
| 760 | - RESET_REQUEST : demande de redémarrage contrôlé ; |
||
| 761 | - NACK / REJECT : rejet de message. |
||
| 762 | 1 | Redmine Admin | ``` |
| 763 | |||
| 764 | ### 7.5 Structure commune des messages |
||
| 765 | |||
| 766 | Cette partie définit les champs communs. |
||
| 767 | |||
| 768 | **Exemple :** |
||
| 769 | |||
| 770 | ```text |
||
| 771 | 12 | Redmine Admin | Champ | Description | Obligatoire | Exemple |
| 772 | protocol_version | version du protocole | oui | 1.0 |
||
| 773 | message_id | identifiant unique du message | oui | MSG-20260703-0001 |
||
| 774 | equipment_id | identifiant équipement | oui | EQP-001 |
||
| 775 | message_type | type de message | oui | MEASURE |
||
| 776 | timestamp_device | horodatage équipement | oui si disponible | 2026-07-03T14:02:10Z |
||
| 777 | timestamp_server | horodatage serveur | non, ajouté à réception | 2026-07-03T14:02:15Z |
||
| 778 | payload | contenu spécifique | oui | selon type |
||
| 779 | 1 | Redmine Admin | ``` |
| 780 | |||
| 781 | ### 7.6 Exemple de message de mesure |
||
| 782 | |||
| 783 | Cette partie donne un exemple concret. |
||
| 784 | |||
| 785 | **Exemple JSON indicatif :** |
||
| 786 | |||
| 787 | ```json |
||
| 788 | { |
||
| 789 | "protocol_version": "1.0", |
||
| 790 | "message_id": "MSG-000123", |
||
| 791 | "equipment_id": "EQP-001", |
||
| 792 | "message_type": "MEASURE", |
||
| 793 | "timestamp_device": "2026-07-03T14:02:10Z", |
||
| 794 | "payload": { |
||
| 795 | "measure_type": "temperature", |
||
| 796 | "value": 42.5, |
||
| 797 | "unit": "degC", |
||
| 798 | "quality": "valid" |
||
| 799 | } |
||
| 800 | } |
||
| 801 | ``` |
||
| 802 | |||
| 803 | ### 7.7 Exemple de message d’alarme |
||
| 804 | |||
| 805 | ```json |
||
| 806 | { |
||
| 807 | "protocol_version": "1.0", |
||
| 808 | "message_id": "MSG-000124", |
||
| 809 | "equipment_id": "EQP-001", |
||
| 810 | "message_type": "ALARM", |
||
| 811 | "timestamp_device": "2026-07-03T14:03:00Z", |
||
| 812 | "payload": { |
||
| 813 | "alarm_code": "TEMP_HIGH", |
||
| 814 | "severity": "major", |
||
| 815 | "status": "active", |
||
| 816 | "description": "Temperature above configured threshold" |
||
| 817 | } |
||
| 818 | } |
||
| 819 | ``` |
||
| 820 | |||
| 821 | ### 7.8 Acquittements |
||
| 822 | |||
| 823 | Cette partie décrit les réponses du serveur. |
||
| 824 | |||
| 825 | **Exemple :** |
||
| 826 | |||
| 827 | ```json |
||
| 828 | { |
||
| 829 | "protocol_version": "1.0", |
||
| 830 | "message_id": "MSG-000124", |
||
| 831 | "ack_id": "ACK-000985", |
||
| 832 | "status": "ACCEPTED", |
||
| 833 | "timestamp_server": "2026-07-03T14:03:02Z" |
||
| 834 | } |
||
| 835 | ``` |
||
| 836 | |||
| 837 | **Statuts possibles :** |
||
| 838 | |||
| 839 | ```text |
||
| 840 | ACCEPTED : |
||
| 841 | message accepté et pris en compte. |
||
| 842 | |||
| 843 | REJECTED : |
||
| 844 | message rejeté, non pris en compte. |
||
| 845 | |||
| 846 | RETRY : |
||
| 847 | message non traité, retransmission demandée. |
||
| 848 | |||
| 849 | DUPLICATE : |
||
| 850 | message déjà reçu et déjà traité. |
||
| 851 | |||
| 852 | UNAUTHORIZED : |
||
| 853 | équipement ou message non autorisé. |
||
| 854 | ``` |
||
| 855 | |||
| 856 | ### 7.9 Gestion des erreurs de communication |
||
| 857 | |||
| 858 | Cette partie décrit les erreurs possibles. |
||
| 859 | |||
| 860 | **Exemples :** |
||
| 861 | |||
| 862 | ```text |
||
| 863 | - serveur non joignable ; |
||
| 864 | - timeout ; |
||
| 865 | - acquittement absent ; |
||
| 866 | - acquittement invalide ; |
||
| 867 | - message rejeté ; |
||
| 868 | - version protocole incompatible ; |
||
| 869 | - équipement non autorisé ; |
||
| 870 | - certificat invalide ; |
||
| 871 | - message dupliqué ; |
||
| 872 | - message trop volumineux ; |
||
| 873 | - erreur de format. |
||
| 874 | ``` |
||
| 875 | |||
| 876 | ### 7.10 Resynchronisation après perte réseau |
||
| 877 | |||
| 878 | Cette partie décrit le comportement après une coupure. |
||
| 879 | |||
| 880 | **Exemple :** |
||
| 881 | |||
| 882 | ```text |
||
| 883 | Lorsqu’une communication est rétablie : |
||
| 884 | 1. l’équipement vérifie l’accessibilité du serveur ; |
||
| 885 | 2. l’équipement transmet les messages stockés localement ; |
||
| 886 | 3. le serveur conserve l’horodatage d’origine ; |
||
| 887 | 4. le serveur détecte les doublons éventuels ; |
||
| 888 | 5. les messages acceptés sont acquittés ; |
||
| 889 | 6. l’équipement marque les messages comme transmis ; |
||
| 890 | 7. l’état de communication repasse au nominal si les conditions sont satisfaites. |
||
| 891 | ``` |
||
| 892 | |||
| 893 | ### 7.11 Sécurité de l’interface |
||
| 894 | |||
| 895 | Cette partie décrit les protections. |
||
| 896 | |||
| 897 | **Exemples :** |
||
| 898 | |||
| 899 | ```text |
||
| 900 | - chiffrement TLS ; |
||
| 901 | - authentification équipement ; |
||
| 902 | - certificat client ; |
||
| 903 | - jeton ; |
||
| 904 | - signature de message ; |
||
| 905 | - contrôle d’intégrité ; |
||
| 906 | - contrôle de version protocole ; |
||
| 907 | - filtrage IP ; |
||
| 908 | - journalisation des erreurs de sécurité. |
||
| 909 | ``` |
||
| 910 | |||
| 911 | ### 7.12 Tests associés |
||
| 912 | |||
| 913 | **Exemples :** |
||
| 914 | |||
| 915 | ```text |
||
| 916 | - transmission mesure nominale ; |
||
| 917 | - transmission alarme ; |
||
| 918 | - réception acquittement ACCEPTED ; |
||
| 919 | - réception REJECTED ; |
||
| 920 | - serveur indisponible ; |
||
| 921 | - coupure réseau ; |
||
| 922 | - retour réseau ; |
||
| 923 | - retransmission messages ; |
||
| 924 | - doublon ; |
||
| 925 | - message invalide ; |
||
| 926 | - équipement inconnu ; |
||
| 927 | - protocole incompatible ; |
||
| 928 | - certificat invalide. |
||
| 929 | ``` |
||
| 930 | |||
| 931 | --- |
||
| 932 | |||
| 933 | ## 8. Interfaces serveur / base de données |
||
| 934 | |||
| 935 | ### 8.1 Objet de l’interface serveur / base de données |
||
| 936 | |||
| 937 | Cette partie décrit les échanges entre l’application serveur et la base de données. |
||
| 938 | |||
| 939 | Elle est essentielle pour l’historisation, les alarmes, la configuration, les utilisateurs, les droits, les rapports et la restauration. |
||
| 940 | |||
| 941 | ### 8.2 Données écrites en base |
||
| 942 | |||
| 943 | **Exemples :** |
||
| 944 | |||
| 945 | ```text |
||
| 946 | - mesures ; |
||
| 947 | - alarmes ; |
||
| 948 | - événements ; |
||
| 949 | - états équipements ; |
||
| 950 | - utilisateurs ; |
||
| 951 | - rôles ; |
||
| 952 | - configurations ; |
||
| 953 | - commandes ; |
||
| 954 | - logs applicatifs ; |
||
| 955 | - exports ; |
||
| 956 | - rapports ; |
||
| 957 | - informations de maintenance. |
||
| 958 | ``` |
||
| 959 | |||
| 960 | ### 8.3 Données lues depuis la base |
||
| 961 | |||
| 962 | **Exemples :** |
||
| 963 | |||
| 964 | ```text |
||
| 965 | - configuration active ; |
||
| 966 | - liste équipements ; |
||
| 967 | - historique mesures ; |
||
| 968 | - alarmes actives ; |
||
| 969 | - droits utilisateurs ; |
||
| 970 | - paramètres applicatifs ; |
||
| 971 | - rapports ; |
||
| 972 | - données de tableau de bord ; |
||
| 973 | - état système ; |
||
| 974 | - historique d’audit. |
||
| 975 | ``` |
||
| 976 | |||
| 977 | ### 8.4 Contraintes d’intégrité |
||
| 978 | |||
| 979 | Cette partie décrit les règles à respecter. |
||
| 980 | |||
| 981 | **Exemples :** |
||
| 982 | |||
| 983 | ```text |
||
| 984 | - une mesure doit être associée à un équipement ; |
||
| 985 | - une alarme doit être associée à une source ; |
||
| 986 | - une action utilisateur doit être associée à un utilisateur connu ou à un compte système ; |
||
| 987 | - une configuration appliquée doit être versionnée ; |
||
| 988 | - les historiques ne doivent pas être supprimés lors de la désactivation d’un équipement ; |
||
| 989 | - une suppression doit être contrôlée et journalisée si elle concerne des données critiques. |
||
| 990 | ``` |
||
| 991 | |||
| 992 | ### 8.5 Transactions et cohérence |
||
| 993 | |||
| 994 | Cette partie décrit les opérations qui doivent être cohérentes. |
||
| 995 | |||
| 996 | **Exemple :** |
||
| 997 | |||
| 998 | ```text |
||
| 999 | Lors de la réception d’une alarme : |
||
| 1000 | 1. le message est validé ; |
||
| 1001 | 2. l’alarme est créée ou mise à jour ; |
||
| 1002 | 3. l’événement associé est historisé ; |
||
| 1003 | 4. l’état équipement est mis à jour ; |
||
| 1004 | 5. l’acquittement serveur est préparé. |
||
| 1005 | |||
| 1006 | Ces actions doivent être cohérentes : il ne doit pas y avoir une alarme créée sans événement associé si cette association est obligatoire. |
||
| 1007 | ``` |
||
| 1008 | |||
| 1009 | ### 8.6 Gestion des erreurs base de données |
||
| 1010 | |||
| 1011 | **Exemples :** |
||
| 1012 | |||
| 1013 | ```text |
||
| 1014 | - connexion impossible ; |
||
| 1015 | - timeout ; |
||
| 1016 | - contrainte d’intégrité violée ; |
||
| 1017 | - espace disque saturé ; |
||
| 1018 | - migration incomplète ; |
||
| 1019 | - écriture refusée ; |
||
| 1020 | - lecture incohérente ; |
||
| 1021 | - verrouillage prolongé ; |
||
| 1022 | - corruption détectée. |
||
| 1023 | ``` |
||
| 1024 | |||
| 1025 | ### 8.7 Tests associés |
||
| 1026 | |||
| 1027 | **Exemples :** |
||
| 1028 | |||
| 1029 | ```text |
||
| 1030 | - écriture mesure ; |
||
| 1031 | - écriture alarme ; |
||
| 1032 | - lecture historique ; |
||
| 1033 | - contrainte équipement inexistant ; |
||
| 1034 | - base indisponible ; |
||
| 1035 | - transaction interrompue ; |
||
| 1036 | - migration base ; |
||
| 1037 | - restauration base ; |
||
| 1038 | - performance requête ; |
||
| 1039 | - purge contrôlée. |
||
| 1040 | ``` |
||
| 1041 | |||
| 1042 | --- |
||
| 1043 | |||
| 1044 | ## 9. Interfaces backend / frontend / IHM |
||
| 1045 | |||
| 1046 | ### 9.1 Objet de l’interface backend / frontend |
||
| 1047 | |||
| 1048 | Cette partie décrit les échanges entre la partie serveur backend et l’interface utilisateur. |
||
| 1049 | |||
| 1050 | Elle peut être interne à l’application, mais doit être spécifiée si l’IHM est développée séparément, si des API sont exposées, ou si l’intégration doit être testée formellement. |
||
| 1051 | |||
| 1052 | ### 9.2 Fonctions accessibles par l’IHM |
||
| 1053 | |||
| 1054 | **Exemples :** |
||
| 1055 | |||
| 1056 | ```text |
||
| 1057 | - authentification ; |
||
| 1058 | - consultation tableau de bord ; |
||
| 1059 | - liste équipements ; |
||
| 1060 | - détail équipement ; |
||
| 1061 | - alarmes actives ; |
||
| 1062 | - historique alarmes ; |
||
| 1063 | - historique mesures ; |
||
| 1064 | - acquittement alarme ; |
||
| 1065 | - configuration ; |
||
| 1066 | - administration utilisateurs ; |
||
| 1067 | - exports ; |
||
| 1068 | - diagnostic ; |
||
| 1069 | - supervision. |
||
| 1070 | ``` |
||
| 1071 | |||
| 1072 | ### 9.3 Données affichées |
||
| 1073 | |||
| 1074 | Cette partie décrit les informations transmises à l’IHM. |
||
| 1075 | |||
| 1076 | **Exemple :** |
||
| 1077 | |||
| 1078 | ```text |
||
| 1079 | Écran tableau de bord : |
||
| 1080 | - nombre d’équipements actifs ; |
||
| 1081 | - nombre d’équipements en défaut ; |
||
| 1082 | - nombre d’équipements non joignables ; |
||
| 1083 | - nombre d’alarmes critiques ; |
||
| 1084 | - dernières alarmes ; |
||
| 1085 | - état global système. |
||
| 1086 | |||
| 1087 | Écran équipement : |
||
| 1088 | - identifiant ; |
||
| 1089 | - nom ; |
||
| 1090 | - site ; |
||
| 1091 | - mode courant ; |
||
| 1092 | - dernière communication ; |
||
| 1093 | - alarmes actives ; |
||
| 1094 | - mesures récentes ; |
||
| 1095 | - version firmware ; |
||
| 1096 | - configuration active. |
||
| 1097 | ``` |
||
| 1098 | |||
| 1099 | ### 9.4 Actions déclenchées depuis l’IHM |
||
| 1100 | |||
| 1101 | **Exemples :** |
||
| 1102 | |||
| 1103 | ```text |
||
| 1104 | - acquitter une alarme ; |
||
| 1105 | - modifier un paramètre ; |
||
| 1106 | - lancer un export ; |
||
| 1107 | - consulter des logs ; |
||
| 1108 | - créer un utilisateur ; |
||
| 1109 | - désactiver un équipement ; |
||
| 1110 | - demander un diagnostic ; |
||
| 1111 | - envoyer une commande ; |
||
| 1112 | - lancer une restauration si autorisée ; |
||
| 1113 | - lancer une mise à jour si autorisée. |
||
| 1114 | ``` |
||
| 1115 | |||
| 1116 | ### 9.5 Gestion des erreurs IHM |
||
| 1117 | |||
| 1118 | Cette partie décrit ce que l’utilisateur voit lorsqu’une action échoue. |
||
| 1119 | |||
| 1120 | **Exemples :** |
||
| 1121 | |||
| 1122 | ```text |
||
| 1123 | - message d’erreur clair ; |
||
| 1124 | - absence d’exposition de détails techniques sensibles ; |
||
| 1125 | - indication de l’action non autorisée ; |
||
| 1126 | - indication de session expirée ; |
||
| 1127 | - indication de serveur indisponible ; |
||
| 1128 | - indication de donnée introuvable ; |
||
| 1129 | - possibilité de réessayer si pertinent. |
||
| 1130 | ``` |
||
| 1131 | |||
| 1132 | ### 9.6 Contrôle des droits côté IHM et backend |
||
| 1133 | |||
| 1134 | Cette partie précise que l’IHM ne suffit pas à sécuriser une action. |
||
| 1135 | |||
| 1136 | **Exemple :** |
||
| 1137 | |||
| 1138 | ```text |
||
| 1139 | L’IHM peut masquer un bouton à un utilisateur non autorisé, mais le backend doit également refuser l’action si elle est appelée directement par API. |
||
| 1140 | ``` |
||
| 1141 | |||
| 1142 | **Exigences typiques :** |
||
| 1143 | |||
| 1144 | ```text |
||
| 1145 | IF-IHM-SEC-001 — Le backend doit contrôler les droits pour chaque action sensible. |
||
| 1146 | |||
| 1147 | IF-IHM-SEC-002 — L’IHM doit présenter uniquement les actions compatibles avec le profil utilisateur lorsque cela est possible. |
||
| 1148 | |||
| 1149 | IF-IHM-SEC-003 — Une action refusée doit produire un message compréhensible et être journalisée si nécessaire. |
||
| 1150 | ``` |
||
| 1151 | |||
| 1152 | ### 9.7 Tests associés |
||
| 1153 | |||
| 1154 | **Exemples :** |
||
| 1155 | |||
| 1156 | ```text |
||
| 1157 | - affichage tableau de bord ; |
||
| 1158 | - consultation équipement ; |
||
| 1159 | - filtre historique ; |
||
| 1160 | - acquittement alarme ; |
||
| 1161 | - action refusée par droits insuffisants ; |
||
| 1162 | - session expirée ; |
||
| 1163 | - backend indisponible ; |
||
| 1164 | - erreur API ; |
||
| 1165 | - message utilisateur ; |
||
| 1166 | - cohérence affichage backend. |
||
| 1167 | ``` |
||
| 1168 | |||
| 1169 | --- |
||
| 1170 | |||
| 1171 | ## 10. Interfaces utilisateurs physiques ou locales |
||
| 1172 | |||
| 1173 | ### 10.1 Objet des interfaces utilisateur locales |
||
| 1174 | |||
| 1175 | Cette partie décrit les interfaces physiques ou locales disponibles sur l’équipement : voyants, boutons, afficheur, buzzer, port maintenance, écran local, interrupteurs ou sélecteurs. |
||
| 1176 | |||
| 1177 | ### 10.2 Voyants et signalisation |
||
| 1178 | |||
| 1179 | **Exemples :** |
||
| 1180 | |||
| 1181 | ```text |
||
| 1182 | Voyant alimentation : |
||
| 1183 | - allumé fixe : alimentation présente ; |
||
| 1184 | - éteint : absence alimentation. |
||
| 1185 | |||
| 1186 | Voyant communication : |
||
| 1187 | - allumé fixe : communication serveur OK ; |
||
| 1188 | - clignotant : tentative connexion ; |
||
| 1189 | - éteint : communication absente. |
||
| 1190 | |||
| 1191 | Voyant défaut : |
||
| 1192 | - éteint : aucun défaut ; |
||
| 1193 | - allumé fixe : défaut actif ; |
||
| 1194 | - clignotant : défaut critique. |
||
| 1195 | ``` |
||
| 1196 | |||
| 1197 | ### 10.3 Boutons ou commandes locales |
||
| 1198 | |||
| 1199 | Cette partie décrit les commandes physiques. |
||
| 1200 | |||
| 1201 | **Exemples :** |
||
| 1202 | |||
| 1203 | ```text |
||
| 1204 | - bouton démarrage ; |
||
| 1205 | - bouton arrêt ; |
||
| 1206 | - bouton reset ; |
||
| 1207 | - bouton test ; |
||
| 1208 | - bouton acquittement local ; |
||
| 1209 | - bouton arrêt d’urgence ; |
||
| 1210 | - sélecteur maintenance ; |
||
| 1211 | - bouton export diagnostic. |
||
| 1212 | ``` |
||
| 1213 | |||
| 1214 | **Exemple de description :** |
||
| 1215 | |||
| 1216 | ```text |
||
| 1217 | Identifiant : IF-LOCAL-001 |
||
| 1218 | Nom : bouton reset local |
||
| 1219 | Type : bouton physique |
||
| 1220 | Usage : demander un redémarrage contrôlé |
||
| 1221 | Conditions d’utilisation : mode maintenance ou défaut non critique |
||
| 1222 | Effet attendu : redémarrage logiciel contrôlé |
||
| 1223 | Actions interdites : reset en commande critique active |
||
| 1224 | Journalisation : oui si possible |
||
| 1225 | Tests associés : TEST-LOCAL-RESET-001 |
||
| 1226 | ``` |
||
| 1227 | |||
| 1228 | ### 10.4 Afficheur local |
||
| 1229 | |||
| 1230 | Cette partie est utile si l’équipement possède un écran ou afficheur. |
||
| 1231 | |||
| 1232 | **Exemples d’informations affichables :** |
||
| 1233 | |||
| 1234 | ```text |
||
| 1235 | - état système ; |
||
| 1236 | - code défaut ; |
||
| 1237 | - adresse IP ; |
||
| 1238 | - mode courant ; |
||
| 1239 | - niveau batterie ; |
||
| 1240 | - état communication ; |
||
| 1241 | - version firmware ; |
||
| 1242 | - instructions maintenance ; |
||
| 1243 | - progression mise à jour. |
||
| 1244 | ``` |
||
| 1245 | |||
| 1246 | ### 10.5 Buzzer ou signal sonore |
||
| 1247 | |||
| 1248 | Cette partie décrit les signaux sonores éventuels. |
||
| 1249 | |||
| 1250 | **Exemples :** |
||
| 1251 | |||
| 1252 | ```text |
||
| 1253 | - alarme critique ; |
||
| 1254 | - défaut technique ; |
||
| 1255 | - confirmation action ; |
||
| 1256 | - fin de test ; |
||
| 1257 | - erreur utilisateur ; |
||
| 1258 | - durée maximale d’activation ; |
||
| 1259 | - inhibition en maintenance. |
||
| 1260 | ``` |
||
| 1261 | |||
| 1262 | ### 10.6 Tests associés |
||
| 1263 | |||
| 1264 | **Exemples :** |
||
| 1265 | |||
| 1266 | ```text |
||
| 1267 | - voyant alimentation ; |
||
| 1268 | - voyant communication ; |
||
| 1269 | - voyant défaut ; |
||
| 1270 | - bouton reset ; |
||
| 1271 | - bouton test ; |
||
| 1272 | - afficheur code défaut ; |
||
| 1273 | - buzzer alarme ; |
||
| 1274 | - inhibition signalisation en maintenance ; |
||
| 1275 | - état au démarrage. |
||
| 1276 | ``` |
||
| 1277 | |||
| 1278 | --- |
||
| 1279 | |||
| 1280 | ## 11. Interfaces de maintenance et diagnostic |
||
| 1281 | |||
| 1282 | ### 11.1 Objet des interfaces maintenance |
||
| 1283 | |||
| 1284 | Cette partie décrit les moyens permettant à un technicien ou à un administrateur de diagnostiquer, configurer, tester, mettre à jour ou restaurer un composant. |
||
| 1285 | |||
| 1286 | Les interfaces de maintenance peuvent être locales ou distantes. Elles doivent être contrôlées, sécurisées et documentées. |
||
| 1287 | |||
| 1288 | ### 11.2 Types d’interfaces de maintenance |
||
| 1289 | |||
| 1290 | **Exemples :** |
||
| 1291 | |||
| 1292 | ```text |
||
| 1293 | - port USB local ; |
||
| 1294 | - port série ; |
||
| 1295 | - port Ethernet local ; |
||
| 1296 | - interface web maintenance ; |
||
| 1297 | - accès SSH ; |
||
| 1298 | - outil de diagnostic ; |
||
| 1299 | - API diagnostic ; |
||
| 1300 | - export logs ; |
||
| 1301 | - écran maintenance ; |
||
| 1302 | - console administrateur ; |
||
| 1303 | - serveur SAS ; |
||
| 1304 | - VPN d’administration. |
||
| 1305 | ``` |
||
| 1306 | |||
| 1307 | ### 11.3 Fonctions accessibles en maintenance |
||
| 1308 | |||
| 1309 | **Exemples :** |
||
| 1310 | |||
| 1311 | ```text |
||
| 1312 | - consulter les versions ; |
||
| 1313 | - consulter l’état courant ; |
||
| 1314 | - exporter les logs ; |
||
| 1315 | - tester une entrée ; |
||
| 1316 | - tester une sortie ; |
||
| 1317 | - lire la configuration ; |
||
| 1318 | - charger une configuration ; |
||
| 1319 | - lancer un autotest ; |
||
| 1320 | - redémarrer un service ; |
||
| 1321 | - mettre à jour un firmware ; |
||
| 1322 | - vérifier la connectivité ; |
||
| 1323 | - lancer une sauvegarde ; |
||
| 1324 | - restaurer une configuration. |
||
| 1325 | ``` |
||
| 1326 | |||
| 1327 | ### 11.4 Sécurité de l’interface maintenance |
||
| 1328 | |||
| 1329 | Cette partie est critique car les interfaces de maintenance donnent souvent accès à des fonctions sensibles. |
||
| 1330 | |||
| 1331 | **Exemples d’exigences :** |
||
| 1332 | |||
| 1333 | ```text |
||
| 1334 | IF-MNT-SEC-001 — L’accès aux fonctions de maintenance doit être réservé aux utilisateurs ou techniciens habilités. |
||
| 1335 | |||
| 1336 | IF-MNT-SEC-002 — Les actions de maintenance critiques doivent être journalisées. |
||
| 1337 | |||
| 1338 | IF-MNT-SEC-003 — Une interface de maintenance ne doit pas permettre de contourner les règles de sécurité du système. |
||
| 1339 | |||
| 1340 | IF-MNT-SEC-004 — Les accès distants de maintenance doivent respecter les contraintes réseau et cybersécurité définies. |
||
| 1341 | ``` |
||
| 1342 | |||
| 1343 | ### 11.5 Export de diagnostic |
||
| 1344 | |||
| 1345 | Cette partie décrit les fichiers ou informations exportables. |
||
| 1346 | |||
| 1347 | **Exemples :** |
||
| 1348 | |||
| 1349 | ```text |
||
| 1350 | - version hardware ; |
||
| 1351 | - version firmware ; |
||
| 1352 | - version serveur ; |
||
| 1353 | - état des entrées/sorties ; |
||
| 1354 | - derniers défauts ; |
||
| 1355 | - logs locaux ; |
||
| 1356 | - logs serveur ; |
||
| 1357 | - configuration active ; |
||
| 1358 | - état stockage ; |
||
| 1359 | - état communication ; |
||
| 1360 | - cause dernier redémarrage ; |
||
| 1361 | - rapport de santé système. |
||
| 1362 | ``` |
||
| 1363 | |||
| 1364 | ### 11.6 Tests associés |
||
| 1365 | |||
| 1366 | **Exemples :** |
||
| 1367 | |||
| 1368 | ```text |
||
| 1369 | - accès maintenance autorisé ; |
||
| 1370 | - accès maintenance refusé ; |
||
| 1371 | - export logs ; |
||
| 1372 | - consultation version ; |
||
| 1373 | - test entrée ; |
||
| 1374 | - test sortie ; |
||
| 1375 | - redémarrage contrôlé ; |
||
| 1376 | - mise à jour firmware ; |
||
| 1377 | - action critique journalisée ; |
||
| 1378 | - accès distant via VPN. |
||
| 1379 | ``` |
||
| 1380 | |||
| 1381 | --- |
||
| 1382 | |||
| 1383 | ## 12. Interfaces fichiers et exports |
||
| 1384 | |||
| 1385 | ### 12.1 Objet des interfaces fichiers |
||
| 1386 | |||
| 1387 | Cette partie décrit les fichiers échangés, importés, exportés ou conservés par le système. |
||
| 1388 | |||
| 1389 | Les interfaces fichiers peuvent concerner la configuration, les historiques, les rapports, les logs, les sauvegardes, les mises à jour, les diagnostics ou les échanges avec des systèmes tiers. |
||
| 1390 | |||
| 1391 | ### 12.2 Types de fichiers |
||
| 1392 | |||
| 1393 | **Exemples :** |
||
| 1394 | |||
| 1395 | ```text |
||
| 1396 | - fichier de configuration ; |
||
| 1397 | - export CSV ; |
||
| 1398 | - export JSON ; |
||
| 1399 | - rapport PDF ; |
||
| 1400 | - fichier log ; |
||
| 1401 | - fichier diagnostic ; |
||
| 1402 | - fichier de sauvegarde ; |
||
| 1403 | - paquet de mise à jour ; |
||
| 1404 | - fichier d’import ; |
||
| 1405 | - fichier d’échange système tiers ; |
||
| 1406 | - fichier de mapping équipements. |
||
| 1407 | ``` |
||
| 1408 | |||
| 1409 | ### 12.3 Description d’un fichier de configuration |
||
| 1410 | |||
| 1411 | **Exemple :** |
||
| 1412 | |||
| 1413 | ```text |
||
| 1414 | Identifiant : IF-DOC-001 |
||
| 1415 | Nom : fichier de configuration équipement |
||
| 1416 | Format : JSON / YAML / XML / CSV selon choix |
||
| 1417 | Usage : définir les paramètres applicables à un équipement |
||
| 1418 | Producteur : serveur ou outil de configuration |
||
| 1419 | Consommateur : firmware embarqué |
||
| 1420 | Champs principaux : |
||
| 1421 | - equipment_id ; |
||
| 1422 | - acquisition_period ; |
||
| 1423 | - thresholds ; |
||
| 1424 | - communication_settings ; |
||
| 1425 | - enabled_features ; |
||
| 1426 | - version ; |
||
| 1427 | - checksum. |
||
| 1428 | Sécurité : contrôle d’intégrité, accès restreint |
||
| 1429 | Tests associés : TEST-CFG-IMPORT-001, TEST-CFG-INVALID-001 |
||
| 1430 | ``` |
||
| 1431 | |||
| 1432 | ### 12.4 Description d’un export CSV |
||
| 1433 | |||
| 1434 | **Exemple :** |
||
| 1435 | |||
| 1436 | ```text |
||
| 1437 | Identifiant : IF-DOC-002 |
||
| 1438 | Nom : export historique mesures |
||
| 1439 | Format : CSV |
||
| 1440 | Producteur : serveur applicatif |
||
| 1441 | Consommateur : utilisateur / outil externe |
||
| 1442 | Séparateur : point-virgule ou virgule selon convention |
||
| 1443 | Encodage : UTF-8 |
||
| 1444 | Colonnes : |
||
| 1445 | - equipment_id ; |
||
| 1446 | - timestamp_device ; |
||
| 1447 | - timestamp_server ; |
||
| 1448 | - measure_type ; |
||
| 1449 | - value ; |
||
| 1450 | - unit ; |
||
| 1451 | - quality. |
||
| 1452 | Filtres : équipement, période, type de mesure |
||
| 1453 | Tests associés : TEST-EXP-CSV-001 |
||
| 1454 | ``` |
||
| 1455 | |||
| 1456 | ### 12.5 Description d’un rapport PDF |
||
| 1457 | |||
| 1458 | **Exemples d’informations à définir :** |
||
| 1459 | |||
| 1460 | ```text |
||
| 1461 | - titre du rapport ; |
||
| 1462 | - période couverte ; |
||
| 1463 | - équipement ou site ; |
||
| 1464 | - synthèse ; |
||
| 1465 | - alarmes ; |
||
| 1466 | - mesures ; |
||
| 1467 | - événements ; |
||
| 1468 | - commentaires ; |
||
| 1469 | - date de génération ; |
||
| 1470 | - utilisateur générateur ; |
||
| 1471 | - version de l’application ; |
||
| 1472 | - mentions ou pied de page. |
||
| 1473 | ``` |
||
| 1474 | |||
| 1475 | ### 12.6 Fichiers de logs |
||
| 1476 | |||
| 1477 | Cette partie décrit les fichiers de journaux. |
||
| 1478 | |||
| 1479 | **Exemples :** |
||
| 1480 | |||
| 1481 | ```text |
||
| 1482 | - format texte ou JSON ; |
||
| 1483 | - horodatage ; |
||
| 1484 | - niveau de log ; |
||
| 1485 | - identifiant composant ; |
||
| 1486 | - rotation ; |
||
| 1487 | - compression ; |
||
| 1488 | - durée conservation ; |
||
| 1489 | - export ; |
||
| 1490 | - protection contre modification ; |
||
| 1491 | - absence de secrets en clair. |
||
| 1492 | ``` |
||
| 1493 | |||
| 1494 | ### 12.7 Fichiers de mise à jour |
||
| 1495 | |||
| 1496 | Cette partie décrit les paquets firmware ou applicatifs. |
||
| 1497 | |||
| 1498 | **Exemples :** |
||
| 1499 | |||
| 1500 | ```text |
||
| 1501 | - nom du fichier ; |
||
| 1502 | - version ; |
||
| 1503 | - cible hardware/software ; |
||
| 1504 | - checksum ; |
||
| 1505 | - signature ; |
||
| 1506 | - taille maximale ; |
||
| 1507 | - date ; |
||
| 1508 | - compatibilité ; |
||
| 1509 | - procédure de contrôle ; |
||
| 1510 | - procédure de rejet. |
||
| 1511 | ``` |
||
| 1512 | |||
| 1513 | ### 12.8 Tests associés |
||
| 1514 | |||
| 1515 | **Exemples :** |
||
| 1516 | |||
| 1517 | ```text |
||
| 1518 | - import configuration valide ; |
||
| 1519 | - import configuration invalide ; |
||
| 1520 | - export CSV ; |
||
| 1521 | - export volumineux ; |
||
| 1522 | - encodage caractères spéciaux ; |
||
| 1523 | - génération PDF ; |
||
| 1524 | - fichier log sans secret ; |
||
| 1525 | - paquet mise à jour invalide ; |
||
| 1526 | - checksum incorrect ; |
||
| 1527 | - fichier absent. |
||
| 1528 | ``` |
||
| 1529 | |||
| 1530 | --- |
||
| 1531 | |||
| 1532 | ## 13. Interfaces réseau |
||
| 1533 | |||
| 1534 | ### 13.1 Objet des interfaces réseau |
||
| 1535 | |||
| 1536 | Cette partie décrit les flux réseau nécessaires au fonctionnement du système. |
||
| 1537 | |||
| 1538 | Elle complète le dossier infrastructure en précisant les flux liés aux interfaces applicatives, aux équipements, aux utilisateurs, à la maintenance, à la sauvegarde et aux systèmes tiers. |
||
| 1539 | |||
| 1540 | ### 13.2 Liste des flux réseau |
||
| 1541 | |||
| 1542 | **Exemple :** |
||
| 1543 | |||
| 1544 | ```text |
||
| 1545 | 13 | Redmine Admin | ID flux | Source | Destination | Protocole | Port | Usage | Criticité |
| 1546 | F-NET-001 | équipement | serveur applicatif | HTTPS/MQTT | 443/8883 | mesures/alarmes | élevée |
||
| 1547 | F-NET-002 | poste opérateur | serveur applicatif | HTTPS | 443 | IHM | élevée |
||
| 1548 | F-NET-003 | serveur applicatif | base données | TCP | selon DB | données | critique |
||
| 1549 | F-NET-004 | serveur | sauvegarde | SSH/API | selon choix | backup | élevée |
||
| 1550 | F-NET-005 | admin | serveur | VPN/SSH | selon choix | administration | élevée |
||
| 1551 | F-NET-006 | serveur | système tiers | HTTPS/API | 443 | export | moyenne |
||
| 1552 | 1 | Redmine Admin | ``` |
| 1553 | |||
| 1554 | ### 13.3 Description détaillée d’un flux |
||
| 1555 | |||
| 1556 | **Modèle :** |
||
| 1557 | |||
| 1558 | ```text |
||
| 1559 | ID flux : |
||
| 1560 | Source : |
||
| 1561 | Destination : |
||
| 1562 | Sens : |
||
| 1563 | Protocole : |
||
| 1564 | Port : |
||
| 1565 | Fréquence : |
||
| 1566 | Données transportées : |
||
| 1567 | Chiffrement : |
||
| 1568 | Authentification : |
||
| 1569 | Journalisation : |
||
| 1570 | Comportement en cas d’échec : |
||
| 1571 | Responsable réseau : |
||
| 1572 | Tests associés : |
||
| 1573 | ``` |
||
| 1574 | |||
| 1575 | ### 13.4 Flux interdits |
||
| 1576 | |||
| 1577 | Cette partie liste les flux explicitement non autorisés. |
||
| 1578 | |||
| 1579 | **Exemples :** |
||
| 1580 | |||
| 1581 | ```text |
||
| 1582 | - poste opérateur vers base de données ; |
||
| 1583 | - équipement vers base de données ; |
||
| 1584 | - accès Internet direct depuis base de données ; |
||
| 1585 | - accès administrateur hors VPN ; |
||
| 1586 | - accès SSH depuis un poste non autorisé ; |
||
| 1587 | - transfert direct de fichier vers production sans SAS ; |
||
| 1588 | - communication non chiffrée si interdite par politique sécurité. |
||
| 1589 | ``` |
||
| 1590 | |||
| 1591 | ### 13.5 Comportement en cas de perte réseau |
||
| 1592 | |||
| 1593 | Cette partie décrit l’impact fonctionnel. |
||
| 1594 | |||
| 1595 | **Exemples :** |
||
| 1596 | |||
| 1597 | ```text |
||
| 1598 | Perte réseau équipement / serveur : |
||
| 1599 | - passage firmware en mode dégradé communication ; |
||
| 1600 | - stockage local ; |
||
| 1601 | - équipement marqué non joignable côté serveur ; |
||
| 1602 | - alarme communication ; |
||
| 1603 | - resynchronisation au retour. |
||
| 1604 | |||
| 1605 | Perte réseau poste opérateur / serveur : |
||
| 1606 | - utilisateur déconnecté ou IHM indisponible ; |
||
| 1607 | - aucune perte de données côté équipement si serveur reste accessible. |
||
| 1608 | |||
| 1609 | Perte réseau serveur / base : |
||
| 1610 | - application en erreur critique ; |
||
| 1611 | - réception impossible ou limitée ; |
||
| 1612 | - alerte infrastructure. |
||
| 1613 | ``` |
||
| 1614 | |||
| 1615 | ### 13.6 Tests associés |
||
| 1616 | |||
| 1617 | **Exemples :** |
||
| 1618 | |||
| 1619 | ```text |
||
| 1620 | - flux équipement vers serveur autorisé ; |
||
| 1621 | - flux poste vers IHM autorisé ; |
||
| 1622 | - flux poste vers base bloqué ; |
||
| 1623 | - coupure réseau équipement ; |
||
| 1624 | - coupure réseau base ; |
||
| 1625 | - retour réseau ; |
||
| 1626 | - latence élevée ; |
||
| 1627 | - perte paquets ; |
||
| 1628 | - certificat réseau expiré ; |
||
| 1629 | - accès admin hors VPN refusé. |
||
| 1630 | ``` |
||
| 1631 | |||
| 1632 | --- |
||
| 1633 | |||
| 1634 | ## 14. Interfaces avec systèmes tiers |
||
| 1635 | |||
| 1636 | ### 14.1 Objet des interfaces systèmes tiers |
||
| 1637 | |||
| 1638 | Cette partie décrit les échanges avec des systèmes externes au périmètre principal. |
||
| 1639 | |||
| 1640 | Ces interfaces doivent être formalisées car elles impliquent souvent d’autres équipes, d’autres contrats, d’autres contraintes de sécurité ou des dépendances externes. |
||
| 1641 | |||
| 1642 | ### 14.2 Liste des systèmes tiers |
||
| 1643 | |||
| 1644 | **Exemple :** |
||
| 1645 | |||
| 1646 | ```text |
||
| 1647 | 14 | Redmine Admin | Système tiers | Usage | Sens | Responsable | Criticité |
| 1648 | Annuaire client | authentification | serveur ↔ annuaire | client IT | élevée |
||
| 1649 | GMAO | création ticket maintenance | serveur → GMAO | client exploitation | moyenne |
||
| 1650 | Supervision client | état système | serveur → supervision | client IT | moyenne |
||
| 1651 | ERP | référentiel sites | ERP → serveur | client métier | faible/moyenne |
||
| 1652 | Messagerie | notification email | serveur → SMTP | client IT | moyenne |
||
| 1653 | 1 | Redmine Admin | ``` |
| 1654 | |||
| 1655 | ### 14.3 Données échangées avec un système tiers |
||
| 1656 | |||
| 1657 | **Exemples :** |
||
| 1658 | |||
| 1659 | ```text |
||
| 1660 | - identifiant équipement ; |
||
| 1661 | - état équipement ; |
||
| 1662 | - alarme critique ; |
||
| 1663 | - rapport incident ; |
||
| 1664 | - demande intervention ; |
||
| 1665 | - utilisateur ; |
||
| 1666 | - site ; |
||
| 1667 | - zone ; |
||
| 1668 | - date ; |
||
| 1669 | - commentaire ; |
||
| 1670 | - statut ticket ; |
||
| 1671 | - fichier export. |
||
| 1672 | ``` |
||
| 1673 | |||
| 1674 | ### 14.4 Exemple d’interface GMAO |
||
| 1675 | |||
| 1676 | ```text |
||
| 1677 | Identifiant : IF-TIERS-001 |
||
| 1678 | Nom : interface GMAO |
||
| 1679 | Source : serveur applicatif |
||
| 1680 | Destination : GMAO client |
||
| 1681 | Usage : créer une demande d’intervention lors d’une alarme critique |
||
| 1682 | Sens : serveur vers GMAO |
||
| 1683 | Protocole : API REST HTTPS ou fichier selon choix |
||
| 1684 | Données : |
||
| 1685 | - equipment_id ; |
||
| 1686 | - alarm_code ; |
||
| 1687 | - severity ; |
||
| 1688 | - timestamp ; |
||
| 1689 | - description ; |
||
| 1690 | - site ; |
||
| 1691 | - suggested_action. |
||
| 1692 | Réponse attendue : |
||
| 1693 | - ticket_id ; |
||
| 1694 | - status ; |
||
| 1695 | - message. |
||
| 1696 | Erreur : |
||
| 1697 | - GMAO indisponible ; |
||
| 1698 | - authentification refusée ; |
||
| 1699 | - format rejeté. |
||
| 1700 | Tests associés : |
||
| 1701 | - création ticket nominal ; |
||
| 1702 | - GMAO indisponible ; |
||
| 1703 | - rejet format ; |
||
| 1704 | - doublon alarme. |
||
| 1705 | ``` |
||
| 1706 | |||
| 1707 | ### 14.5 Exemple d’interface annuaire |
||
| 1708 | |||
| 1709 | ```text |
||
| 1710 | Identifiant : IF-TIERS-002 |
||
| 1711 | Nom : interface annuaire utilisateur |
||
| 1712 | Source : serveur applicatif |
||
| 1713 | Destination : annuaire client |
||
| 1714 | Usage : authentifier les utilisateurs |
||
| 1715 | Protocole : LDAP / SSO / OAuth2 / OpenID Connect selon choix |
||
| 1716 | Données : |
||
| 1717 | - identifiant utilisateur ; |
||
| 1718 | - groupe ; |
||
| 1719 | - rôle ; |
||
| 1720 | - statut compte. |
||
| 1721 | Erreur : |
||
| 1722 | - annuaire indisponible ; |
||
| 1723 | - utilisateur inconnu ; |
||
| 1724 | - mot de passe invalide ; |
||
| 1725 | - groupe non mappé. |
||
| 1726 | Tests associés : |
||
| 1727 | - connexion nominale ; |
||
| 1728 | - utilisateur inconnu ; |
||
| 1729 | - groupe sans rôle ; |
||
| 1730 | - annuaire indisponible. |
||
| 1731 | ``` |
||
| 1732 | |||
| 1733 | ### 14.6 Gestion des indisponibilités de systèmes tiers |
||
| 1734 | |||
| 1735 | Cette partie décrit le comportement lorsque le système externe est indisponible. |
||
| 1736 | |||
| 1737 | **Exemples :** |
||
| 1738 | |||
| 1739 | ```text |
||
| 1740 | - mise en file d’attente ; |
||
| 1741 | - rejet contrôlé ; |
||
| 1742 | - alerte technique ; |
||
| 1743 | - fonctionnement local maintenu ; |
||
| 1744 | - mode dégradé ; |
||
| 1745 | - nouvelle tentative périodique ; |
||
| 1746 | - journalisation ; |
||
| 1747 | - intervention manuelle. |
||
| 1748 | ``` |
||
| 1749 | |||
| 1750 | ### 14.7 Tests associés |
||
| 1751 | |||
| 1752 | **Exemples :** |
||
| 1753 | |||
| 1754 | ```text |
||
| 1755 | - échange nominal ; |
||
| 1756 | - système tiers indisponible ; |
||
| 1757 | - réponse invalide ; |
||
| 1758 | - authentification refusée ; |
||
| 1759 | - timeout ; |
||
| 1760 | - doublon ; |
||
| 1761 | - reprise après retour ; |
||
| 1762 | - journalisation erreur ; |
||
| 1763 | - alerte supervision. |
||
| 1764 | ``` |
||
| 1765 | |||
| 1766 | --- |
||
| 1767 | |||
| 1768 | ## 15. Interfaces de supervision |
||
| 1769 | |||
| 1770 | ### 15.1 Objet des interfaces de supervision |
||
| 1771 | |||
| 1772 | Cette partie décrit les interfaces permettant de surveiller l’état du système, des services, des équipements, des sauvegardes, des flux ou des performances. |
||
| 1773 | |||
| 1774 | La supervision peut être interne à l’application ou connectée à un outil externe. |
||
| 1775 | |||
| 1776 | ### 15.2 Données de supervision exposées |
||
| 1777 | |||
| 1778 | **Exemples :** |
||
| 1779 | |||
| 1780 | ```text |
||
| 1781 | - état serveur applicatif ; |
||
| 1782 | - état base de données ; |
||
| 1783 | - état des équipements ; |
||
| 1784 | - nombre d’alarmes actives ; |
||
| 1785 | - nombre de messages reçus ; |
||
| 1786 | - nombre de messages rejetés ; |
||
| 1787 | - temps de réponse API ; |
||
| 1788 | - état des sauvegardes ; |
||
| 1789 | - espace disque ; |
||
| 1790 | - version applicative ; |
||
| 1791 | - état file d’attente ; |
||
| 1792 | - état système tiers. |
||
| 1793 | ``` |
||
| 1794 | |||
| 1795 | ### 15.3 Healthcheck |
||
| 1796 | |||
| 1797 | Cette partie décrit les points de contrôle de santé. |
||
| 1798 | |||
| 1799 | **Exemple :** |
||
| 1800 | |||
| 1801 | ```text |
||
| 1802 | Identifiant : IF-SUP-001 |
||
| 1803 | Nom : healthcheck applicatif |
||
| 1804 | Source : outil supervision |
||
| 1805 | Destination : serveur applicatif |
||
| 1806 | Protocole : HTTPS |
||
| 1807 | Réponse attendue : |
||
| 1808 | - status global ; |
||
| 1809 | - état base ; |
||
| 1810 | - état application ; |
||
| 1811 | - version ; |
||
| 1812 | - timestamp. |
||
| 1813 | Statuts : |
||
| 1814 | - OK ; |
||
| 1815 | - DEGRADED ; |
||
| 1816 | - ERROR. |
||
| 1817 | ``` |
||
| 1818 | |||
| 1819 | ### 15.4 Alertes supervision |
||
| 1820 | |||
| 1821 | Cette partie décrit les alertes générées ou exposées. |
||
| 1822 | |||
| 1823 | **Exemples :** |
||
| 1824 | |||
| 1825 | ```text |
||
| 1826 | - serveur indisponible ; |
||
| 1827 | - base indisponible ; |
||
| 1828 | - sauvegarde échouée ; |
||
| 1829 | - disque presque plein ; |
||
| 1830 | - certificat expirant ; |
||
| 1831 | - taux de rejet messages élevé ; |
||
| 1832 | - équipement non joignable ; |
||
| 1833 | - file d’attente saturée ; |
||
| 1834 | - service tiers indisponible. |
||
| 1835 | ``` |
||
| 1836 | |||
| 1837 | ### 15.5 Interface avec outil de supervision externe |
||
| 1838 | |||
| 1839 | **Exemples :** |
||
| 1840 | |||
| 1841 | ```text |
||
| 1842 | - endpoint HTTP ; |
||
| 1843 | - agent local ; |
||
| 1844 | - export métriques ; |
||
| 1845 | - fichiers logs ; |
||
| 1846 | - SNMP ; |
||
| 1847 | - webhook ; |
||
| 1848 | - email ; |
||
| 1849 | - API supervision. |
||
| 1850 | ``` |
||
| 1851 | |||
| 1852 | ### 15.6 Tests associés |
||
| 1853 | |||
| 1854 | **Exemples :** |
||
| 1855 | |||
| 1856 | ```text |
||
| 1857 | - healthcheck OK ; |
||
| 1858 | - healthcheck base KO ; |
||
| 1859 | - arrêt service ; |
||
| 1860 | - alerte sauvegarde échouée ; |
||
| 1861 | - alerte disque ; |
||
| 1862 | - équipement non joignable ; |
||
| 1863 | - outil supervision indisponible ; |
||
| 1864 | - retour au nominal. |
||
| 1865 | ``` |
||
| 1866 | |||
| 1867 | --- |
||
| 1868 | |||
| 1869 | ## 16. Interfaces de sauvegarde et restauration |
||
| 1870 | |||
| 1871 | ### 16.1 Objet des interfaces sauvegarde/restauration |
||
| 1872 | |||
| 1873 | Cette partie décrit les interfaces utilisées pour sauvegarder et restaurer les données, configurations, bases, fichiers applicatifs, logs ou états système. |
||
| 1874 | |||
| 1875 | Elle complète le dossier infrastructure en précisant les formats, composants et responsabilités d’échange. |
||
| 1876 | |||
| 1877 | ### 16.2 Éléments sauvegardés via interface |
||
| 1878 | |||
| 1879 | **Exemples :** |
||
| 1880 | |||
| 1881 | ```text |
||
| 1882 | - base de données ; |
||
| 1883 | - fichiers de configuration ; |
||
| 1884 | - fichiers de logs critiques ; |
||
| 1885 | - exports ; |
||
| 1886 | - rapports ; |
||
| 1887 | - fichiers de paramétrage ; |
||
| 1888 | - certificats si politique autorisée ; |
||
| 1889 | - scripts de déploiement ; |
||
| 1890 | - versions applicatives ; |
||
| 1891 | - configuration équipement. |
||
| 1892 | ``` |
||
| 1893 | |||
| 1894 | ### 16.3 Interface de sauvegarde base de données |
||
| 1895 | |||
| 1896 | **Exemple :** |
||
| 1897 | |||
| 1898 | ```text |
||
| 1899 | Identifiant : IF-BKP-001 |
||
| 1900 | Nom : sauvegarde base de données |
||
| 1901 | Source : serveur base de données |
||
| 1902 | Destination : serveur sauvegarde |
||
| 1903 | Usage : sauvegarde périodique des données applicatives |
||
| 1904 | Fréquence : quotidienne ou selon politique |
||
| 1905 | Format : dump SQL / archive compressée / snapshot selon choix |
||
| 1906 | Sécurité : accès restreint, chiffrement si nécessaire |
||
| 1907 | Contrôle : code retour, taille fichier, intégrité |
||
| 1908 | Tests associés : TEST-BKP-DB-001, TEST-REST-DB-001 |
||
| 1909 | ``` |
||
| 1910 | |||
| 1911 | ### 16.4 Interface de restauration |
||
| 1912 | |||
| 1913 | **Exemple :** |
||
| 1914 | |||
| 1915 | ```text |
||
| 1916 | Identifiant : IF-REST-001 |
||
| 1917 | Nom : restauration base de données |
||
| 1918 | Source : serveur sauvegarde |
||
| 1919 | Destination : environnement cible |
||
| 1920 | Usage : restaurer une base après incident ou test |
||
| 1921 | Préconditions : |
||
| 1922 | - sauvegarde identifiée ; |
||
| 1923 | - environnement disponible ; |
||
| 1924 | - services arrêtés si nécessaire ; |
||
| 1925 | - droits administrateur. |
||
| 1926 | Résultat attendu : |
||
| 1927 | - base restaurée ; |
||
| 1928 | - application redémarrée ; |
||
| 1929 | - cohérence vérifiée. |
||
| 1930 | Tests associés : TEST-REST-DB-001 |
||
| 1931 | ``` |
||
| 1932 | |||
| 1933 | ### 16.5 Erreurs de sauvegarde/restauration |
||
| 1934 | |||
| 1935 | **Exemples :** |
||
| 1936 | |||
| 1937 | ```text |
||
| 1938 | - sauvegarde absente ; |
||
| 1939 | - sauvegarde incomplète ; |
||
| 1940 | - fichier corrompu ; |
||
| 1941 | - espace disque insuffisant ; |
||
| 1942 | - droits insuffisants ; |
||
| 1943 | - restauration incompatible version ; |
||
| 1944 | - service actif empêchant restauration ; |
||
| 1945 | - échec contrôle intégrité. |
||
| 1946 | ``` |
||
| 1947 | |||
| 1948 | ### 16.6 Tests associés |
||
| 1949 | |||
| 1950 | **Exemples :** |
||
| 1951 | |||
| 1952 | ```text |
||
| 1953 | - sauvegarde manuelle ; |
||
| 1954 | - sauvegarde planifiée ; |
||
| 1955 | - sauvegarde avec espace insuffisant ; |
||
| 1956 | - restauration sur environnement de test ; |
||
| 1957 | - restauration configuration ; |
||
| 1958 | - restauration après mise à jour ; |
||
| 1959 | - sauvegarde corrompue refusée ; |
||
| 1960 | - alerte échec sauvegarde. |
||
| 1961 | ``` |
||
| 1962 | |||
| 1963 | --- |
||
| 1964 | |||
| 1965 | ## 17. Interfaces de configuration |
||
| 1966 | |||
| 1967 | ### 17.1 Objet des interfaces de configuration |
||
| 1968 | |||
| 1969 | Cette partie décrit les interfaces permettant de créer, modifier, transmettre, appliquer ou restaurer une configuration. |
||
| 1970 | |||
| 1971 | La configuration peut concerner le firmware, le serveur, les équipements, les seuils, les utilisateurs, les droits, les paramètres réseau ou les règles d’alarme. |
||
| 1972 | |||
| 1973 | ### 17.2 Types de configuration |
||
| 1974 | |||
| 1975 | **Exemples :** |
||
| 1976 | |||
| 1977 | ```text |
||
| 1978 | - configuration équipement ; |
||
| 1979 | - configuration firmware ; |
||
| 1980 | - configuration serveur ; |
||
| 1981 | - configuration IHM ; |
||
| 1982 | - configuration alarmes ; |
||
| 1983 | - configuration utilisateurs ; |
||
| 1984 | - configuration droits ; |
||
| 1985 | - configuration réseau ; |
||
| 1986 | - configuration sauvegarde ; |
||
| 1987 | - configuration supervision. |
||
| 1988 | ``` |
||
| 1989 | |||
| 1990 | ### 17.3 Interface serveur vers équipement pour configuration |
||
| 1991 | |||
| 1992 | **Exemple :** |
||
| 1993 | |||
| 1994 | ```text |
||
| 1995 | Identifiant : IF-CFG-001 |
||
| 1996 | Nom : transmission configuration équipement |
||
| 1997 | Source : serveur applicatif |
||
| 1998 | Destination : firmware embarqué |
||
| 1999 | Usage : transmettre une configuration validée à l’équipement |
||
| 2000 | Données : |
||
| 2001 | - equipment_id ; |
||
| 2002 | - config_version ; |
||
| 2003 | - thresholds ; |
||
| 2004 | - acquisition_periods ; |
||
| 2005 | - communication_settings ; |
||
| 2006 | - enabled_features. |
||
| 2007 | Sécurité : |
||
| 2008 | - source autorisée ; |
||
| 2009 | - contrôle d’intégrité ; |
||
| 2010 | - version ; |
||
| 2011 | - journalisation. |
||
| 2012 | Réponse attendue : |
||
| 2013 | - configuration acceptée ; |
||
| 2014 | - configuration rejetée ; |
||
| 2015 | - motif rejet. |
||
| 2016 | Tests associés : |
||
| 2017 | - configuration valide ; |
||
| 2018 | - configuration invalide ; |
||
| 2019 | - version incompatible ; |
||
| 2020 | - acquittement équipement. |
||
| 2021 | ``` |
||
| 2022 | |||
| 2023 | ### 17.4 Interface d’import/export configuration |
||
| 2024 | |||
| 2025 | **Exemples :** |
||
| 2026 | |||
| 2027 | ```text |
||
| 2028 | - export configuration actuelle ; |
||
| 2029 | - import configuration depuis fichier ; |
||
| 2030 | - comparaison deux configurations ; |
||
| 2031 | - validation avant application ; |
||
| 2032 | - historique modifications ; |
||
| 2033 | - retour arrière. |
||
| 2034 | ``` |
||
| 2035 | |||
| 2036 | ### 17.5 Gestion des conflits de configuration |
||
| 2037 | |||
| 2038 | Cette partie décrit les situations où deux configurations divergent. |
||
| 2039 | |||
| 2040 | **Exemples :** |
||
| 2041 | |||
| 2042 | ```text |
||
| 2043 | - configuration attendue serveur différente de la configuration déclarée équipement ; |
||
| 2044 | - configuration modifiée localement ; |
||
| 2045 | - configuration obsolète ; |
||
| 2046 | - équipement non synchronisé ; |
||
| 2047 | - tentative d’application d’une ancienne version ; |
||
| 2048 | - conflit entre deux modifications concurrentes. |
||
| 2049 | ``` |
||
| 2050 | |||
| 2051 | ### 17.6 Tests associés |
||
| 2052 | |||
| 2053 | **Exemples :** |
||
| 2054 | |||
| 2055 | ```text |
||
| 2056 | - export configuration ; |
||
| 2057 | - import configuration valide ; |
||
| 2058 | - import configuration invalide ; |
||
| 2059 | - transmission configuration ; |
||
| 2060 | - équipement accepte ; |
||
| 2061 | - équipement refuse ; |
||
| 2062 | - divergence détectée ; |
||
| 2063 | - retour arrière configuration ; |
||
| 2064 | - modification non autorisée refusée. |
||
| 2065 | ``` |
||
| 2066 | |||
| 2067 | --- |
||
| 2068 | |||
| 2069 | ## 18. Interfaces de mise à jour |
||
| 2070 | |||
| 2071 | ### 18.1 Objet des interfaces de mise à jour |
||
| 2072 | |||
| 2073 | Cette partie décrit les interfaces permettant de mettre à jour un firmware, une application serveur, une configuration, une base de données ou un composant système. |
||
| 2074 | |||
| 2075 | ### 18.2 Types de mises à jour |
||
| 2076 | |||
| 2077 | **Exemples :** |
||
| 2078 | |||
| 2079 | ```text |
||
| 2080 | - firmware équipement ; |
||
| 2081 | - application serveur ; |
||
| 2082 | - base de données ; |
||
| 2083 | - IHM ; |
||
| 2084 | - configuration ; |
||
| 2085 | - certificat ; |
||
| 2086 | - scripts ; |
||
| 2087 | - règles d’alarme ; |
||
| 2088 | - système d’exploitation ; |
||
| 2089 | - dépendances logicielles. |
||
| 2090 | ``` |
||
| 2091 | |||
| 2092 | ### 18.3 Interface de mise à jour firmware |
||
| 2093 | |||
| 2094 | **Exemple :** |
||
| 2095 | |||
| 2096 | ```text |
||
| 2097 | Identifiant : IF-UPD-001 |
||
| 2098 | Nom : mise à jour firmware |
||
| 2099 | Source : serveur ou outil maintenance |
||
| 2100 | Destination : équipement embarqué |
||
| 2101 | Usage : transmettre et appliquer une nouvelle version firmware |
||
| 2102 | Données : |
||
| 2103 | - version cible ; |
||
| 2104 | - fichier firmware ; |
||
| 2105 | - checksum ; |
||
| 2106 | - signature si applicable ; |
||
| 2107 | - compatibilité hardware ; |
||
| 2108 | - instructions de mise à jour. |
||
| 2109 | Préconditions : |
||
| 2110 | - équipement en mode mise à jour ou maintenance ; |
||
| 2111 | - alimentation suffisante ; |
||
| 2112 | - paquet valide ; |
||
| 2113 | - source autorisée. |
||
| 2114 | Réponse attendue : |
||
| 2115 | - mise à jour acceptée ; |
||
| 2116 | - mise à jour refusée ; |
||
| 2117 | - installation réussie ; |
||
| 2118 | - installation échouée. |
||
| 2119 | ``` |
||
| 2120 | |||
| 2121 | ### 18.4 Interface de mise à jour serveur |
||
| 2122 | |||
| 2123 | Cette partie décrit la mise à jour applicative. |
||
| 2124 | |||
| 2125 | **Exemples :** |
||
| 2126 | |||
| 2127 | ```text |
||
| 2128 | - paquet applicatif ; |
||
| 2129 | - image conteneur ; |
||
| 2130 | - scripts de migration ; |
||
| 2131 | - fichiers de configuration ; |
||
| 2132 | - note de version ; |
||
| 2133 | - sauvegarde préalable ; |
||
| 2134 | - tests post-déploiement ; |
||
| 2135 | - retour arrière. |
||
| 2136 | ``` |
||
| 2137 | |||
| 2138 | ### 18.5 Erreurs de mise à jour |
||
| 2139 | |||
| 2140 | **Exemples :** |
||
| 2141 | |||
| 2142 | ```text |
||
| 2143 | - paquet invalide ; |
||
| 2144 | - checksum incorrect ; |
||
| 2145 | - signature invalide ; |
||
| 2146 | - version incompatible ; |
||
| 2147 | - espace insuffisant ; |
||
| 2148 | - coupure réseau ; |
||
| 2149 | - coupure alimentation ; |
||
| 2150 | - migration base échouée ; |
||
| 2151 | - échec redémarrage ; |
||
| 2152 | - rollback impossible. |
||
| 2153 | ``` |
||
| 2154 | |||
| 2155 | ### 18.6 Tests associés |
||
| 2156 | |||
| 2157 | **Exemples :** |
||
| 2158 | |||
| 2159 | ```text |
||
| 2160 | - mise à jour firmware nominale ; |
||
| 2161 | - firmware incompatible ; |
||
| 2162 | - paquet corrompu ; |
||
| 2163 | - coupure pendant mise à jour ; |
||
| 2164 | - rollback firmware ; |
||
| 2165 | - mise à jour serveur ; |
||
| 2166 | - migration base ; |
||
| 2167 | - rollback serveur ; |
||
| 2168 | - vérification version après mise à jour. |
||
| 2169 | ``` |
||
| 2170 | |||
| 2171 | --- |
||
| 2172 | |||
| 2173 | ## 19. Interfaces d’authentification et droits |
||
| 2174 | |||
| 2175 | ### 19.1 Objet des interfaces d’authentification |
||
| 2176 | |||
| 2177 | Cette partie décrit les interfaces permettant d’identifier les utilisateurs, équipements, services ou systèmes tiers. |
||
| 2178 | |||
| 2179 | L’authentification peut concerner les utilisateurs de l’IHM, les équipements qui se connectent au serveur, les API externes, les administrateurs ou les services techniques. |
||
| 2180 | |||
| 2181 | ### 19.2 Authentification utilisateur |
||
| 2182 | |||
| 2183 | **Exemples :** |
||
| 2184 | |||
| 2185 | ```text |
||
| 2186 | - authentification locale ; |
||
| 2187 | - annuaire LDAP ; |
||
| 2188 | - SSO ; |
||
| 2189 | - OAuth2 ; |
||
| 2190 | - OpenID Connect ; |
||
| 2191 | - certificat ; |
||
| 2192 | - double facteur si applicable. |
||
| 2193 | ``` |
||
| 2194 | |||
| 2195 | ### 19.3 Authentification équipement |
||
| 2196 | |||
| 2197 | **Exemples :** |
||
| 2198 | |||
| 2199 | ```text |
||
| 2200 | - identifiant équipement ; |
||
| 2201 | - certificat client ; |
||
| 2202 | - clé API ; |
||
| 2203 | - jeton ; |
||
| 2204 | - secret partagé ; |
||
| 2205 | - signature de message ; |
||
| 2206 | - liste blanche ; |
||
| 2207 | - contrôle adresse réseau. |
||
| 2208 | ``` |
||
| 2209 | |||
| 2210 | ### 19.4 Authentification service à service |
||
| 2211 | |||
| 2212 | **Exemples :** |
||
| 2213 | |||
| 2214 | ```text |
||
| 2215 | - serveur applicatif vers base de données ; |
||
| 2216 | - serveur vers système tiers ; |
||
| 2217 | - serveur vers sauvegarde ; |
||
| 2218 | - serveur vers supervision ; |
||
| 2219 | - outil maintenance vers équipement ; |
||
| 2220 | - API externe vers serveur. |
||
| 2221 | ``` |
||
| 2222 | |||
| 2223 | ### 19.5 Gestion des droits |
||
| 2224 | |||
| 2225 | Cette partie décrit comment les autorisations sont portées par les interfaces. |
||
| 2226 | |||
| 2227 | **Exemples :** |
||
| 2228 | |||
| 2229 | ```text |
||
| 2230 | - rôle utilisateur ; |
||
| 2231 | - groupe annuaire ; |
||
| 2232 | - permission API ; |
||
| 2233 | - droit équipement ; |
||
| 2234 | - profil maintenance ; |
||
| 2235 | - jeton limité ; |
||
| 2236 | - durée de validité ; |
||
| 2237 | - révocation. |
||
| 2238 | ``` |
||
| 2239 | |||
| 2240 | ### 19.6 Tests associés |
||
| 2241 | |||
| 2242 | **Exemples :** |
||
| 2243 | |||
| 2244 | ```text |
||
| 2245 | - connexion utilisateur valide ; |
||
| 2246 | - mot de passe invalide ; |
||
| 2247 | - compte désactivé ; |
||
| 2248 | - rôle insuffisant ; |
||
| 2249 | - équipement autorisé ; |
||
| 2250 | - équipement inconnu ; |
||
| 2251 | - certificat invalide ; |
||
| 2252 | - jeton expiré ; |
||
| 2253 | - service tiers non autorisé ; |
||
| 2254 | - action critique refusée. |
||
| 2255 | ``` |
||
| 2256 | |||
| 2257 | --- |
||
| 2258 | |||
| 2259 | ## 20. Interfaces d’erreur, codes retour et messages d’état |
||
| 2260 | |||
| 2261 | ### 20.1 Objet des codes d’erreur |
||
| 2262 | |||
| 2263 | Cette partie décrit les erreurs échangées entre composants. |
||
| 2264 | |||
| 2265 | Un bon système d’interface ne décrit pas seulement les cas nominaux. Il doit aussi décrire les erreurs, rejets, timeouts, états intermédiaires et motifs d’échec. |
||
| 2266 | |||
| 2267 | ### 20.2 Familles de codes d’erreur |
||
| 2268 | |||
| 2269 | **Exemples :** |
||
| 2270 | |||
| 2271 | ```text |
||
| 2272 | - erreur de format ; |
||
| 2273 | - erreur de version ; |
||
| 2274 | - erreur d’autorisation ; |
||
| 2275 | - erreur d’authentification ; |
||
| 2276 | - ressource inconnue ; |
||
| 2277 | - configuration invalide ; |
||
| 2278 | - commande refusée ; |
||
| 2279 | - équipement indisponible ; |
||
| 2280 | - serveur indisponible ; |
||
| 2281 | - base indisponible ; |
||
| 2282 | - timeout ; |
||
| 2283 | - conflit ; |
||
| 2284 | - doublon ; |
||
| 2285 | - capacité insuffisante ; |
||
| 2286 | - erreur interne. |
||
| 2287 | ``` |
||
| 2288 | |||
| 2289 | ### 20.3 Exemple de table de codes retour |
||
| 2290 | |||
| 2291 | ```text |
||
| 2292 | 15 | Redmine Admin | Code | Signification | Action émetteur | Action récepteur |
| 2293 | OK | message accepté | poursuivre | enregistrer succès |
||
| 2294 | BAD_FORMAT | format invalide | corriger / ne pas répéter | journaliser rejet |
||
| 2295 | UNAUTHORIZED | source non autorisée | bloquer / alerter | journaliser sécurité |
||
| 2296 | UNSUPPORTED_VERSION | version non supportée | utiliser version compatible | alerter compatibilité |
||
| 2297 | DUPLICATE | message déjà traité | supprimer de file locale | journaliser si nécessaire |
||
| 2298 | RETRY_LATER | traitement temporairement impossible | retransmettre plus tard | surveiller incident |
||
| 2299 | INTERNAL_ERROR | erreur serveur | retransmettre ou alerter | analyser logs |
||
| 2300 | 1 | Redmine Admin | ``` |
| 2301 | |||
| 2302 | ### 20.4 Messages d’état |
||
| 2303 | |||
| 2304 | Cette partie décrit les statuts échangés. |
||
| 2305 | |||
| 2306 | **Exemples :** |
||
| 2307 | |||
| 2308 | ```text |
||
| 2309 | - connected ; |
||
| 2310 | - disconnected ; |
||
| 2311 | - degraded ; |
||
| 2312 | - maintenance ; |
||
| 2313 | - updating ; |
||
| 2314 | - safe_state ; |
||
| 2315 | - alarm_active ; |
||
| 2316 | - alarm_acknowledged ; |
||
| 2317 | - configuration_pending ; |
||
| 2318 | - synchronization_pending ; |
||
| 2319 | - synchronization_done. |
||
| 2320 | ``` |
||
| 2321 | |||
| 2322 | ### 20.5 Tests associés |
||
| 2323 | |||
| 2324 | **Exemples :** |
||
| 2325 | |||
| 2326 | ```text |
||
| 2327 | - code OK ; |
||
| 2328 | - code BAD_FORMAT ; |
||
| 2329 | - code UNAUTHORIZED ; |
||
| 2330 | - code DUPLICATE ; |
||
| 2331 | - code RETRY_LATER ; |
||
| 2332 | - code version incompatible ; |
||
| 2333 | - message état dégradé ; |
||
| 2334 | - message état maintenance ; |
||
| 2335 | - erreur non reconnue. |
||
| 2336 | ``` |
||
| 2337 | |||
| 2338 | --- |
||
| 2339 | |||
| 2340 | ## 21. Interfaces temporelles et synchronisation horaire |
||
| 2341 | |||
| 2342 | ### 21.1 Objet de la synchronisation horaire |
||
| 2343 | |||
| 2344 | Cette partie décrit comment le système gère le temps. |
||
| 2345 | |||
| 2346 | La cohérence temporelle est essentielle pour les mesures, alarmes, historiques, événements, diagnostics, logs, resynchronisation et audits. |
||
| 2347 | |||
| 2348 | ### 21.2 Sources de temps |
||
| 2349 | |||
| 2350 | **Exemples :** |
||
| 2351 | |||
| 2352 | ```text |
||
| 2353 | - horloge locale équipement ; |
||
| 2354 | - horloge serveur ; |
||
| 2355 | - serveur NTP ; |
||
| 2356 | - horloge RTC ; |
||
| 2357 | - temps reçu d’un système tiers ; |
||
| 2358 | - temps de réception serveur ; |
||
| 2359 | - temps opérateur. |
||
| 2360 | ``` |
||
| 2361 | |||
| 2362 | ### 21.3 Horodatages échangés |
||
| 2363 | |||
| 2364 | **Exemples :** |
||
| 2365 | |||
| 2366 | ```text |
||
| 2367 | timestamp_device : |
||
| 2368 | heure de génération par l’équipement. |
||
| 2369 | |||
| 2370 | timestamp_server : |
||
| 2371 | heure de réception ou traitement par le serveur. |
||
| 2372 | |||
| 2373 | timestamp_ack : |
||
| 2374 | heure de l’acquittement. |
||
| 2375 | |||
| 2376 | timestamp_event : |
||
| 2377 | heure réelle ou estimée de l’événement. |
||
| 2378 | |||
| 2379 | timestamp_sync : |
||
| 2380 | heure de synchronisation. |
||
| 2381 | ``` |
||
| 2382 | |||
| 2383 | ### 21.4 Gestion d’une horloge incertaine |
||
| 2384 | |||
| 2385 | Cette partie décrit les cas où le temps local n’est pas fiable. |
||
| 2386 | |||
| 2387 | **Exemples :** |
||
| 2388 | |||
| 2389 | ```text |
||
| 2390 | - équipement démarré sans synchronisation ; |
||
| 2391 | - RTC absente ; |
||
| 2392 | - dérive détectée ; |
||
| 2393 | - serveur NTP indisponible ; |
||
| 2394 | - horodatage incohérent ; |
||
| 2395 | - date future ; |
||
| 2396 | - date trop ancienne. |
||
| 2397 | ``` |
||
| 2398 | |||
| 2399 | **Exigence typique :** |
||
| 2400 | |||
| 2401 | ```text |
||
| 2402 | IF-TIME-001 — Les données dont l’horodatage est incertain doivent être identifiables par le serveur et l’IHM si cette incertitude impacte l’exploitation. |
||
| 2403 | ``` |
||
| 2404 | |||
| 2405 | ### 21.5 Tests associés |
||
| 2406 | |||
| 2407 | **Exemples :** |
||
| 2408 | |||
| 2409 | ```text |
||
| 2410 | - horodatage nominal ; |
||
| 2411 | - perte synchronisation ; |
||
| 2412 | - données retransmises avec horodatage d’origine ; |
||
| 2413 | - date future rejetée ou signalée ; |
||
| 2414 | - dérive horaire ; |
||
| 2415 | - serveur NTP indisponible ; |
||
| 2416 | - affichage horodatage incertain. |
||
| 2417 | ``` |
||
| 2418 | |||
| 2419 | --- |
||
| 2420 | |||
| 2421 | ## 22. Interfaces de journalisation et traçabilité |
||
| 2422 | |||
| 2423 | ### 22.1 Objet des interfaces de logs |
||
| 2424 | |||
| 2425 | Cette partie décrit les journaux échangés ou produits aux frontières entre composants. |
||
| 2426 | |||
| 2427 | Les logs permettent de diagnostiquer les problèmes d’interface et de prouver qu’un échange a eu lieu. |
||
| 2428 | |||
| 2429 | ### 22.2 Logs d’échange |
||
| 2430 | |||
| 2431 | **Exemples :** |
||
| 2432 | |||
| 2433 | ```text |
||
| 2434 | - message reçu ; |
||
| 2435 | - message rejeté ; |
||
| 2436 | - acquittement envoyé ; |
||
| 2437 | - commande reçue ; |
||
| 2438 | - commande refusée ; |
||
| 2439 | - configuration transmise ; |
||
| 2440 | - export généré ; |
||
| 2441 | - erreur système tiers ; |
||
| 2442 | - tentative d’accès non autorisée ; |
||
| 2443 | - perte communication ; |
||
| 2444 | - resynchronisation. |
||
| 2445 | ``` |
||
| 2446 | |||
| 2447 | ### 22.3 Corrélation des logs |
||
| 2448 | |||
| 2449 | Cette partie est importante pour suivre un échange entre plusieurs composants. |
||
| 2450 | |||
| 2451 | **Exemples :** |
||
| 2452 | |||
| 2453 | ```text |
||
| 2454 | - message_id ; |
||
| 2455 | - correlation_id ; |
||
| 2456 | - equipment_id ; |
||
| 2457 | - user_id ; |
||
| 2458 | - request_id ; |
||
| 2459 | - alarm_id ; |
||
| 2460 | - command_id ; |
||
| 2461 | - timestamp_device ; |
||
| 2462 | - timestamp_server. |
||
| 2463 | ``` |
||
| 2464 | |||
| 2465 | ### 22.4 Données interdites dans les logs |
||
| 2466 | |||
| 2467 | **Exemples :** |
||
| 2468 | |||
| 2469 | ```text |
||
| 2470 | - mot de passe ; |
||
| 2471 | - clé privée ; |
||
| 2472 | - jeton complet ; |
||
| 2473 | - secret partagé ; |
||
| 2474 | - données personnelles non nécessaires ; |
||
| 2475 | - contenu sensible non utile au diagnostic ; |
||
| 2476 | - fichier complet si volumineux ou confidentiel. |
||
| 2477 | ``` |
||
| 2478 | |||
| 2479 | ### 22.5 Tests associés |
||
| 2480 | |||
| 2481 | **Exemples :** |
||
| 2482 | |||
| 2483 | ```text |
||
| 2484 | - log message reçu ; |
||
| 2485 | - log message rejeté ; |
||
| 2486 | - corrélation message/acquittement ; |
||
| 2487 | - log commande ; |
||
| 2488 | - absence secret dans logs ; |
||
| 2489 | - export logs ; |
||
| 2490 | - rotation logs ; |
||
| 2491 | - consultation logs par profil autorisé. |
||
| 2492 | ``` |
||
| 2493 | |||
| 2494 | --- |
||
| 2495 | |||
| 2496 | ## 23. Interfaces de tests et simulateurs |
||
| 2497 | |||
| 2498 | ### 23.1 Objet des interfaces de test |
||
| 2499 | |||
| 2500 | Cette partie décrit les moyens permettant de tester les interfaces sans disposer nécessairement de tous les composants réels. |
||
| 2501 | |||
| 2502 | Les simulateurs sont très utiles pour tester tôt les interfaces : simulateur d’équipement, simulateur serveur, simulateur capteur, simulateur système tiers, générateur de messages invalides, banc hardware. |
||
| 2503 | |||
| 2504 | ### 23.2 Simulateur d’équipement |
||
| 2505 | |||
| 2506 | **Exemples de fonctions :** |
||
| 2507 | |||
| 2508 | ```text |
||
| 2509 | - envoyer des mesures nominales ; |
||
| 2510 | - envoyer des alarmes ; |
||
| 2511 | - envoyer des messages invalides ; |
||
| 2512 | - simuler une perte réseau ; |
||
| 2513 | - simuler une resynchronisation ; |
||
| 2514 | - simuler plusieurs équipements ; |
||
| 2515 | - simuler un firmware ancien ; |
||
| 2516 | - simuler un équipement non autorisé. |
||
| 2517 | ``` |
||
| 2518 | |||
| 2519 | ### 23.3 Simulateur serveur |
||
| 2520 | |||
| 2521 | **Exemples de fonctions :** |
||
| 2522 | |||
| 2523 | ```text |
||
| 2524 | - accepter un message ; |
||
| 2525 | - rejeter un message ; |
||
| 2526 | - ne pas acquitter ; |
||
| 2527 | - envoyer une configuration ; |
||
| 2528 | - envoyer une commande ; |
||
| 2529 | - simuler une erreur serveur ; |
||
| 2530 | - simuler une version API incompatible. |
||
| 2531 | ``` |
||
| 2532 | |||
| 2533 | ### 23.4 Simulateur capteur ou hardware |
||
| 2534 | |||
| 2535 | **Exemples :** |
||
| 2536 | |||
| 2537 | ```text |
||
| 2538 | - valeur nominale ; |
||
| 2539 | - valeur limite ; |
||
| 2540 | - valeur hors plage ; |
||
| 2541 | - capteur absent ; |
||
| 2542 | - court-circuit ; |
||
| 2543 | - contact instable ; |
||
| 2544 | - défaut intermittent ; |
||
| 2545 | - retour d’état incohérent. |
||
| 2546 | ``` |
||
| 2547 | |||
| 2548 | ### 23.5 Simulateur système tiers |
||
| 2549 | |||
| 2550 | **Exemples :** |
||
| 2551 | |||
| 2552 | ```text |
||
| 2553 | - réponse nominale ; |
||
| 2554 | - timeout ; |
||
| 2555 | - rejet authentification ; |
||
| 2556 | - erreur format ; |
||
| 2557 | - indisponibilité ; |
||
| 2558 | - réponse lente ; |
||
| 2559 | - doublon ; |
||
| 2560 | - message incohérent. |
||
| 2561 | ``` |
||
| 2562 | |||
| 2563 | ### 23.6 Tests associés |
||
| 2564 | |||
| 2565 | **Exemples :** |
||
| 2566 | |||
| 2567 | ```text |
||
| 2568 | - test interface avec simulateur équipement ; |
||
| 2569 | - test serveur avec messages invalides ; |
||
| 2570 | - test firmware avec serveur simulé ; |
||
| 2571 | - test capteur simulé ; |
||
| 2572 | - test système tiers indisponible ; |
||
| 2573 | - test de charge messages ; |
||
| 2574 | - test protocole ancien ; |
||
| 2575 | - test interface en mode dégradé. |
||
| 2576 | ``` |
||
| 2577 | |||
| 2578 | --- |
||
| 2579 | |||
| 2580 | ## 24. Exigences de sécurité des interfaces |
||
| 2581 | |||
| 2582 | ### 24.1 Objet de la sécurité des interfaces |
||
| 2583 | |||
| 2584 | Cette partie décrit les exigences de protection applicables aux échanges entre composants. |
||
| 2585 | |||
| 2586 | Une interface est souvent un point d’entrée potentiel pour les erreurs, abus, attaques, mauvaises configurations ou fuites de données. |
||
| 2587 | |||
| 2588 | ### 24.2 Interfaces à protéger en priorité |
||
| 2589 | |||
| 2590 | **Exemples :** |
||
| 2591 | |||
| 2592 | ```text |
||
| 2593 | - équipement vers serveur ; |
||
| 2594 | - serveur vers équipement ; |
||
| 2595 | - API d’administration ; |
||
| 2596 | - interface configuration ; |
||
| 2597 | - interface mise à jour ; |
||
| 2598 | - interface authentification ; |
||
| 2599 | - interface maintenance ; |
||
| 2600 | - interface sauvegarde ; |
||
| 2601 | - interface système tiers ; |
||
| 2602 | - interface logs sensibles. |
||
| 2603 | ``` |
||
| 2604 | |||
| 2605 | ### 24.3 Mesures de protection possibles |
||
| 2606 | |||
| 2607 | **Exemples :** |
||
| 2608 | |||
| 2609 | ```text |
||
| 2610 | - authentification ; |
||
| 2611 | - autorisation ; |
||
| 2612 | - chiffrement ; |
||
| 2613 | - signature ; |
||
| 2614 | - checksum ; |
||
| 2615 | - contrôle d’intégrité ; |
||
| 2616 | - filtrage réseau ; |
||
| 2617 | - validation de format ; |
||
| 2618 | - limitation de taille ; |
||
| 2619 | - limitation de fréquence ; |
||
| 2620 | - journalisation ; |
||
| 2621 | - expiration session ; |
||
| 2622 | - révocation certificat ; |
||
| 2623 | - séparation des rôles. |
||
| 2624 | ``` |
||
| 2625 | |||
| 2626 | ### 24.4 Validation des entrées |
||
| 2627 | |||
| 2628 | Cette partie impose de contrôler les données reçues. |
||
| 2629 | |||
| 2630 | **Exemples :** |
||
| 2631 | |||
| 2632 | ```text |
||
| 2633 | IF-SEC-VAL-001 — Toute donnée reçue via une interface doit être validée avant traitement. |
||
| 2634 | |||
| 2635 | IF-SEC-VAL-002 — Les messages mal formés doivent être rejetés sans provoquer de comportement non maîtrisé. |
||
| 2636 | |||
| 2637 | IF-SEC-VAL-003 — Les tailles maximales de messages ou fichiers doivent être définies si nécessaire. |
||
| 2638 | |||
| 2639 | IF-SEC-VAL-004 — Les fichiers importés doivent être contrôlés avant application. |
||
| 2640 | ``` |
||
| 2641 | |||
| 2642 | ### 24.5 Gestion des secrets |
||
| 2643 | |||
| 2644 | Cette partie décrit les clés, certificats ou jetons utilisés par les interfaces. |
||
| 2645 | |||
| 2646 | **Exemples :** |
||
| 2647 | |||
| 2648 | ```text |
||
| 2649 | - certificat équipement ; |
||
| 2650 | - certificat serveur ; |
||
| 2651 | - clé API ; |
||
| 2652 | - jeton utilisateur ; |
||
| 2653 | - mot de passe base de données ; |
||
| 2654 | - clé SSH ; |
||
| 2655 | - secret système tiers ; |
||
| 2656 | - certificat VPN. |
||
| 2657 | ``` |
||
| 2658 | |||
| 2659 | ### 24.6 Tests associés |
||
| 2660 | |||
| 2661 | **Exemples :** |
||
| 2662 | |||
| 2663 | ```text |
||
| 2664 | - équipement non autorisé ; |
||
| 2665 | - certificat invalide ; |
||
| 2666 | - message signé invalide ; |
||
| 2667 | - jeton expiré ; |
||
| 2668 | - utilisateur sans droit ; |
||
| 2669 | - fichier importé malveillant ou invalide ; |
||
| 2670 | - message trop volumineux ; |
||
| 2671 | - tentative accès API admin ; |
||
| 2672 | - secret absent des logs. |
||
| 2673 | ``` |
||
| 2674 | |||
| 2675 | --- |
||
| 2676 | |||
| 2677 | ## 25. Matrices de synthèse |
||
| 2678 | |||
| 2679 | ### 25.1 Matrice interfaces / sous-systèmes |
||
| 2680 | |||
| 2681 | Cette matrice indique quels sous-systèmes sont concernés par chaque interface. |
||
| 2682 | |||
| 2683 | **Exemple :** |
||
| 2684 | |||
| 2685 | ```text |
||
| 2686 | Interface | Hardware | Firmware | Serveur | DB | IHM | Infrastructure | Tiers |
||
| 2687 | IF-HW-001 alimentation | X | | | | | X | |
||
| 2688 | IF-SW-HW-001 entrée | X | X | | | | | |
||
| 2689 | IF-NET-001 équipement/serveur | | X | X | | | X | |
||
| 2690 | IF-DB-001 serveur/base | | | X | X | | X | |
||
| 2691 | IF-IHM-001 tableau bord | | | X | X | X | | |
||
| 2692 | IF-TIERS-001 GMAO | | | X | | | X | X |
||
| 2693 | ``` |
||
| 2694 | |||
| 2695 | ### 25.2 Matrice interfaces / modes de fonctionnement |
||
| 2696 | |||
| 2697 | Cette matrice indique si une interface est active selon les modes. |
||
| 2698 | |||
| 2699 | **Exemple :** |
||
| 2700 | |||
| 2701 | ```text |
||
| 2702 | Interface | Nominal | Maintenance | Dégradé com. | Secours | Mise à jour | Arrêt |
||
| 2703 | IF-NET-001 équipement/serveur | oui | limité | non ou tentative | si possible | non | non |
||
| 2704 | IF-MNT-001 port maintenance | non/limité | oui | oui | oui | oui | non |
||
| 2705 | IF-HW-004 sortie relais | oui | test contrôlé | selon sécurité | non | non | non |
||
| 2706 | IF-IHM-ALM alarmes | oui | oui | oui | critique | limité | non |
||
| 2707 | ``` |
||
| 2708 | |||
| 2709 | ### 25.3 Matrice interfaces / tests |
||
| 2710 | |||
| 2711 | Cette matrice relie chaque interface aux tests prévus. |
||
| 2712 | |||
| 2713 | **Exemple :** |
||
| 2714 | |||
| 2715 | ```text |
||
| 2716 | Interface | Test unitaire | Test intégration | Test système | Validation client |
||
| 2717 | IF-SW-HW-001 | TU lecture entrée | TI entrée firmware | TS acquisition | VAL acquisition |
||
| 2718 | IF-NET-001 | TU format message | TI équipement serveur | TS communication | VAL perte réseau |
||
| 2719 | IF-IHM-001 | TU API | TI backend/frontend | TS tableau bord | VAL exploitation |
||
| 2720 | IF-BKP-001 | TU script | TI sauvegarde | TS restauration | VAL restauration |
||
| 2721 | ``` |
||
| 2722 | |||
| 2723 | ### 25.4 Matrice interfaces / responsabilités |
||
| 2724 | |||
| 2725 | Cette matrice clarifie qui est responsable de quoi. |
||
| 2726 | |||
| 2727 | **Exemple :** |
||
| 2728 | |||
| 2729 | ```text |
||
| 2730 | Interface | Responsable source | Responsable destination | Responsable spécification | Responsable test |
||
| 2731 | IF-HW-002 capteur | client/fournisseur | hardware | responsable hardware | test hardware |
||
| 2732 | IF-NET-001 équipement/serveur | firmware | backend | architecte système | intégration |
||
| 2733 | IF-IHM-001 tableau bord | backend | frontend | responsable applicatif | test IHM |
||
| 2734 | IF-TIERS-001 GMAO | serveur | client IT | architecte applicatif | intégration tiers |
||
| 2735 | ``` |
||
| 2736 | |||
| 2737 | ### 25.5 Matrice données / interfaces |
||
| 2738 | |||
| 2739 | Cette matrice montre quelles données passent par quelles interfaces. |
||
| 2740 | |||
| 2741 | **Exemple :** |
||
| 2742 | |||
| 2743 | ```text |
||
| 2744 | Donnée | IF-HW | IF-SW-HW | IF-NET | IF-DB | IF-IHM | IF-EXP |
||
| 2745 | Température | capteur | acquisition | message MEASURE | table mesures | graphique | CSV |
||
| 2746 | Alarme | capteur/firmware | événement | message ALARM | table alarmes | écran alarmes | PDF/CSV |
||
| 2747 | Configuration | fichier/IHM | firmware | message CONFIG | table config | écran config | JSON |
||
| 2748 | Logs | firmware/serveur | diagnostic | message LOG | fichier/table | écran maintenance | archive |
||
| 2749 | ``` |
||
| 2750 | |||
| 2751 | --- |
||
| 2752 | |||
| 2753 | ## 26. Traçabilité |
||
| 2754 | |||
| 2755 | ### 26.1 Traçabilité avec la spécification globale |
||
| 2756 | |||
| 2757 | Cette partie relie les interfaces aux exigences système. |
||
| 2758 | |||
| 2759 | **Exemple :** |
||
| 2760 | |||
| 2761 | ```text |
||
| 2762 | Exigence système : |
||
| 2763 | SYS-COM-004 — Le système doit conserver les données en perte réseau et les retransmettre au retour communication. |
||
| 2764 | |||
| 2765 | Interfaces associées : |
||
| 2766 | IF-NET-001 — équipement vers serveur ; |
||
| 2767 | IF-STO-001 — stockage local firmware ; |
||
| 2768 | IF-ACK-001 — acquittement serveur ; |
||
| 2769 | IF-DB-001 — historisation serveur ; |
||
| 2770 | IF-IHM-ALM-001 — affichage état communication. |
||
| 2771 | ``` |
||
| 2772 | |||
| 2773 | ### 26.2 Traçabilité avec l’architecture système |
||
| 2774 | |||
| 2775 | Cette partie relie chaque interface aux blocs architecturaux. |
||
| 2776 | |||
| 2777 | **Exemple :** |
||
| 2778 | |||
| 2779 | ```text |
||
| 2780 | Interface : |
||
| 2781 | IF-NET-001 — équipement vers serveur |
||
| 2782 | |||
| 2783 | Blocs concernés : |
||
| 2784 | SS-SW-001 — firmware embarqué |
||
| 2785 | SS-SRV-001 — serveur applicatif |
||
| 2786 | SS-INF-001 — réseau |
||
| 2787 | SS-SEC-001 — sécurité |
||
| 2788 | ``` |
||
| 2789 | |||
| 2790 | ### 26.3 Traçabilité avec les spécifications détaillées |
||
| 2791 | |||
| 2792 | Cette partie indique dans quels documents les deux côtés de l’interface sont décrits. |
||
| 2793 | |||
| 2794 | **Exemple :** |
||
| 2795 | |||
| 2796 | ```text |
||
| 2797 | Interface : |
||
| 2798 | IF-SW-HW-003 — commande relais |
||
| 2799 | |||
| 2800 | Côté hardware : |
||
| 2801 | Spécification détaillée hardware, section sorties relais. |
||
| 2802 | |||
| 2803 | Côté firmware : |
||
| 2804 | Spécification détaillée software embarqué, section commande des sorties. |
||
| 2805 | |||
| 2806 | Tests : |
||
| 2807 | Tests hardware, tests intégration hardware/software, tests état sûr. |
||
| 2808 | ``` |
||
| 2809 | |||
| 2810 | ### 26.4 Traçabilité vers les tests |
||
| 2811 | |||
| 2812 | Cette partie relie les interfaces aux tests. |
||
| 2813 | |||
| 2814 | **Exemple :** |
||
| 2815 | |||
| 2816 | ```text |
||
| 2817 | Interface : |
||
| 2818 | IF-API-MEASURE — API réception mesures |
||
| 2819 | |||
| 2820 | Tests associés : |
||
| 2821 | TEST-API-MEASURE-001 — message valide. |
||
| 2822 | TEST-API-MEASURE-002 — message sans équipement. |
||
| 2823 | TEST-API-MEASURE-003 — message dupliqué. |
||
| 2824 | TEST-INT-EQP-SRV-001 — équipement réel vers serveur. |
||
| 2825 | TEST-SYS-HIST-001 — mesure visible dans historique. |
||
| 2826 | ``` |
||
| 2827 | |||
| 2828 | ### 26.5 Matrice de traçabilité des interfaces |
||
| 2829 | |||
| 2830 | **Structure recommandée :** |
||
| 2831 | |||
| 2832 | ```text |
||
| 2833 | ID interface |
||
| 2834 | Exigence système source |
||
| 2835 | Sous-systèmes concernés |
||
| 2836 | Documents concernés |
||
| 2837 | Données échangées |
||
| 2838 | Tests associés |
||
| 2839 | Criticité |
||
| 2840 | Statut |
||
| 2841 | Commentaire |
||
| 2842 | ``` |
||
| 2843 | |||
| 2844 | --- |
||
| 2845 | |||
| 2846 | ## 27. Contraintes, risques et points ouverts |
||
| 2847 | |||
| 2848 | ### 27.1 Contraintes techniques |
||
| 2849 | |||
| 2850 | Cette partie liste les contraintes connues sur les interfaces. |
||
| 2851 | |||
| 2852 | **Exemples :** |
||
| 2853 | |||
| 2854 | ```text |
||
| 2855 | - protocole imposé par un équipement tiers ; |
||
| 2856 | - format de fichier imposé par le client ; |
||
| 2857 | - réseau client contraint ; |
||
| 2858 | - port réseau non ouvrable ; |
||
| 2859 | - bande passante limitée ; |
||
| 2860 | - latence élevée ; |
||
| 2861 | - connectique imposée ; |
||
| 2862 | - version API existante à maintenir ; |
||
| 2863 | - compatibilité avec anciens firmwares ; |
||
| 2864 | - contrainte de cybersécurité ; |
||
| 2865 | - impossibilité d’accès Internet ; |
||
| 2866 | - usage obligatoire d’un SAS. |
||
| 2867 | ``` |
||
| 2868 | |||
| 2869 | ### 27.2 Risques liés aux interfaces |
||
| 2870 | |||
| 2871 | Cette partie identifie les risques. |
||
| 2872 | |||
| 2873 | **Exemples :** |
||
| 2874 | |||
| 2875 | ```text |
||
| 2876 | - interprétation différente d’un champ ; |
||
| 2877 | - format de message incomplet ; |
||
| 2878 | - absence d’acquittement ; |
||
| 2879 | - doublons après resynchronisation ; |
||
| 2880 | - interface non versionnée ; |
||
| 2881 | - protocole tiers instable ; |
||
| 2882 | - erreur de câblage ; |
||
| 2883 | - polarité mal définie ; |
||
| 2884 | - messages trop volumineux ; |
||
| 2885 | - absence de test d’erreur ; |
||
| 2886 | - sécurité insuffisante ; |
||
| 2887 | - logs insuffisants pour diagnostiquer l’échange. |
||
| 2888 | ``` |
||
| 2889 | |||
| 2890 | ### 27.3 Mesures de réduction des risques |
||
| 2891 | |||
| 2892 | **Exemples :** |
||
| 2893 | |||
| 2894 | ```text |
||
| 2895 | - dictionnaire de données partagé ; |
||
| 2896 | - simulateur d’équipement ; |
||
| 2897 | - simulateur serveur ; |
||
| 2898 | - tests d’intégration précoces ; |
||
| 2899 | - versionnement d’API ; |
||
| 2900 | - exemples de messages ; |
||
| 2901 | - validation de schéma JSON ; |
||
| 2902 | - revue d’interface entre équipes ; |
||
| 2903 | - matrice responsabilités ; |
||
| 2904 | - tests de coupure réseau ; |
||
| 2905 | - tests de messages invalides ; |
||
| 2906 | - règles d’acquittement explicites ; |
||
| 2907 | - journalisation avec correlation_id. |
||
| 2908 | ``` |
||
| 2909 | |||
| 2910 | ### 27.4 Points ouverts |
||
| 2911 | |||
| 2912 | Cette partie liste les décisions non encore prises. |
||
| 2913 | |||
| 2914 | **Exemple :** |
||
| 2915 | |||
| 2916 | ```text |
||
| 2917 | ID | Sujet | Description | Responsable | Échéance | Impact | Statut |
||
| 2918 | PO-IF-001 | Protocole équipement/serveur | Choix final HTTPS ou MQTT/TLS | Architecte système | avant conception API | firmware/serveur | ouvert |
||
| 2919 | PO-IF-002 | Format export | CSV ou JSON pour export client | Client/exploitation | avant IHM | reporting | ouvert |
||
| 2920 | PO-IF-003 | Authentification équipement | Certificat ou jeton | Cybersécurité | avant intégration | sécurité | ouvert |
||
| 2921 | PO-IF-004 | Interface GMAO | API disponible ou échange fichier | Client IT | avant intégration tiers | maintenance | ouvert |
||
| 2922 | PO-IF-005 | Connecteur capteur | Référence connecteur à confirmer | Hardware/client | avant routage | hardware | ouvert |
||
| 2923 | ``` |
||
| 2924 | |||
| 2925 | --- |
||
| 2926 | |||
| 2927 | ## 28. Critères d’acceptation de la spécification d’interfaces |
||
| 2928 | |||
| 2929 | ### 28.1 Complétude |
||
| 2930 | |||
| 2931 | Cette partie définit les critères permettant de considérer le document comme complet. |
||
| 2932 | |||
| 2933 | **Exemples :** |
||
| 2934 | |||
| 2935 | ```text |
||
| 2936 | La spécification détaillée des interfaces est considérée comme complète si : |
||
| 2937 | - toutes les interfaces identifiées dans l’architecture sont décrites ; |
||
| 2938 | - les interfaces hardware sont définies ; |
||
| 2939 | - les interfaces firmware/hardware sont définies ; |
||
| 2940 | - les interfaces équipement/serveur sont définies ; |
||
| 2941 | - les interfaces serveur/base sont définies ; |
||
| 2942 | - les interfaces IHM sont définies ; |
||
| 2943 | - les interfaces fichiers sont définies ; |
||
| 2944 | - les interfaces maintenance sont définies ; |
||
| 2945 | - les interfaces systèmes tiers sont définies si applicables ; |
||
| 2946 | - les formats de données principaux sont décrits ; |
||
| 2947 | - les erreurs et codes retour sont décrits ; |
||
| 2948 | - les exigences de sécurité sont définies ; |
||
| 2949 | - les tests associés sont identifiés ; |
||
| 2950 | - les responsabilités sont claires. |
||
| 2951 | ``` |
||
| 2952 | |||
| 2953 | ### 28.2 Cohérence |
||
| 2954 | |||
| 2955 | Cette partie définit les critères de cohérence. |
||
| 2956 | |||
| 2957 | **Exemples :** |
||
| 2958 | |||
| 2959 | ```text |
||
| 2960 | Le document ne doit pas contenir : |
||
| 2961 | - une interface sans source et destination ; |
||
| 2962 | - une interface sans responsable ; |
||
| 2963 | - un message sans format défini ; |
||
| 2964 | - un champ obligatoire non expliqué ; |
||
| 2965 | - un acquittement non défini ; |
||
| 2966 | - une erreur non gérée ; |
||
| 2967 | - une interface critique non sécurisée ; |
||
| 2968 | - une interface non testable ; |
||
| 2969 | - une contradiction entre firmware et serveur ; |
||
| 2970 | - une contradiction entre hardware et firmware ; |
||
| 2971 | - une interface externe sans responsabilité client/fournisseur. |
||
| 2972 | ``` |
||
| 2973 | |||
| 2974 | ### 28.3 Testabilité |
||
| 2975 | |||
| 2976 | Cette partie vérifie que les interfaces peuvent être testées. |
||
| 2977 | |||
| 2978 | **Exemples :** |
||
| 2979 | |||
| 2980 | ```text |
||
| 2981 | La spécification est testable si : |
||
| 2982 | - les messages nominaux sont décrits ; |
||
| 2983 | - les messages invalides peuvent être construits ; |
||
| 2984 | - les erreurs sont définies ; |
||
| 2985 | - les acquittements sont définis ; |
||
| 2986 | - les flux réseau sont identifiés ; |
||
| 2987 | - les entrées/sorties hardware peuvent être stimulées ; |
||
| 2988 | - les sorties peuvent être observées ; |
||
| 2989 | - les simulateurs nécessaires sont identifiés ; |
||
| 2990 | - les critères de succès sont explicites. |
||
| 2991 | ``` |
||
| 2992 | |||
| 2993 | ### 28.4 Exploitabilité et maintenabilité |
||
| 2994 | |||
| 2995 | Cette partie vérifie que les interfaces pourront être diagnostiquées en exploitation. |
||
| 2996 | |||
| 2997 | **Exemples :** |
||
| 2998 | |||
| 2999 | ```text |
||
| 3000 | La spécification prend correctement en compte l’exploitation si : |
||
| 3001 | - les erreurs d’interface sont journalisées ; |
||
| 3002 | - les identifiants de corrélation sont prévus ; |
||
| 3003 | - les messages rejetés sont traçables ; |
||
| 3004 | - les états de communication sont visibles ; |
||
| 3005 | - les interfaces de maintenance sont documentées ; |
||
| 3006 | - les versions d’interface sont identifiables ; |
||
| 3007 | - les incompatibilités peuvent être diagnostiquées. |
||
| 3008 | ``` |
||
| 3009 | |||
| 3010 | ### 28.5 Validation du document |
||
| 3011 | |||
| 3012 | Cette partie précise les revues nécessaires. |
||
| 3013 | |||
| 3014 | **Exemple :** |
||
| 3015 | |||
| 3016 | ```text |
||
| 3017 | La spécification détaillée des interfaces doit être relue par : |
||
| 3018 | - l’ingénieur système ; |
||
| 3019 | - le responsable hardware ; |
||
| 3020 | - le responsable software embarqué ; |
||
| 3021 | - le responsable serveur/application ; |
||
| 3022 | - le responsable infrastructure/réseau ; |
||
| 3023 | - le responsable cybersécurité ; |
||
| 3024 | - le responsable IHM ; |
||
| 3025 | - le responsable intégration ; |
||
| 3026 | - le responsable validation ; |
||
| 3027 | - le représentant client si les interfaces impliquent le SI client ou des équipements tiers. |
||
| 3028 | ``` |
||
| 3029 | |||
| 3030 | --- |
||
| 3031 | |||
| 3032 | ## 29. Annexes |
||
| 3033 | |||
| 3034 | ### 29.1 Inventaire complet des interfaces |
||
| 3035 | |||
| 3036 | Cette annexe reprend la liste complète des interfaces. |
||
| 3037 | |||
| 3038 | **Exemple :** |
||
| 3039 | |||
| 3040 | ```text |
||
| 3041 | ID | Nom | Type | Source | Destination | Criticité | Statut |
||
| 3042 | IF-HW-001 | alimentation | hardware | site | équipement | critique | à valider |
||
| 3043 | IF-SW-HW-001 | lecture entrée | firmware/hardware | carte | firmware | élevée | à spécifier |
||
| 3044 | IF-NET-001 | équipement/serveur | réseau/API | firmware | serveur | élevée | à valider |
||
| 3045 | IF-DB-001 | serveur/base | DB | serveur | base | critique | à spécifier |
||
| 3046 | IF-IHM-001 | tableau bord | IHM | utilisateur | serveur | moyenne | à spécifier |
||
| 3047 | IF-TIERS-001 | GMAO | API/fichier | serveur | GMAO | moyenne | ouvert |
||
| 3048 | ``` |
||
| 3049 | |||
| 3050 | ### 29.2 Dictionnaire de données |
||
| 3051 | |||
| 3052 | Cette annexe définit les champs échangés. |
||
| 3053 | |||
| 3054 | **Exemple :** |
||
| 3055 | |||
| 3056 | ```text |
||
| 3057 | Champ | Type | Description | Obligatoire | Exemple |
||
| 3058 | equipment_id | string | identifiant équipement | oui | EQP-001 |
||
| 3059 | message_id | string | identifiant message | oui | MSG-0001 |
||
| 3060 | timestamp_device | datetime | date côté équipement | oui si disponible | 2026-07-03T14:00:00Z |
||
| 3061 | severity | enum | criticité alarme | oui pour alarme | minor/major/critical |
||
| 3062 | quality | enum | qualité donnée | non/oui selon message | valid/invalid/uncertain |
||
| 3063 | ``` |
||
| 3064 | |||
| 3065 | ### 29.3 Catalogue des messages |
||
| 3066 | |||
| 3067 | Cette annexe reprend les messages échangés. |
||
| 3068 | |||
| 3069 | **Exemples :** |
||
| 3070 | |||
| 3071 | ```text |
||
| 3072 | MEASURE |
||
| 3073 | ALARM |
||
| 3074 | EVENT |
||
| 3075 | STATE |
||
| 3076 | DIAGNOSTIC |
||
| 3077 | LOG |
||
| 3078 | ACK |
||
| 3079 | NACK |
||
| 3080 | CONFIG |
||
| 3081 | COMMAND |
||
| 3082 | TIME_SYNC |
||
| 3083 | UPDATE_REQUEST |
||
| 3084 | ``` |
||
| 3085 | |||
| 3086 | ### 29.4 Catalogue des codes d’erreur |
||
| 3087 | |||
| 3088 | Cette annexe reprend les codes retour. |
||
| 3089 | |||
| 3090 | ### 29.5 Catalogue des flux réseau |
||
| 3091 | |||
| 3092 | Cette annexe reprend tous les flux réseau autorisés. |
||
| 3093 | |||
| 3094 | ### 29.6 Catalogue des fichiers |
||
| 3095 | |||
| 3096 | Cette annexe reprend les formats de fichiers utilisés. |
||
| 3097 | |||
| 3098 | ### 29.7 Matrice interfaces / tests |
||
| 3099 | |||
| 3100 | Cette annexe reprend la matrice complète de vérification. |
||
| 3101 | |||
| 3102 | ### 29.8 Matrice interfaces / responsabilités |
||
| 3103 | |||
| 3104 | Cette annexe reprend les responsabilités source, destination, spécification et test. |
||
| 3105 | |||
| 3106 | ### 29.9 Exemples complets de messages |
||
| 3107 | |||
| 3108 | Cette annexe peut contenir des exemples JSON, XML, CSV ou autres. |
||
| 3109 | |||
| 3110 | ### 29.10 Glossaire des interfaces |
||
| 3111 | |||
| 3112 | Cette annexe définit les termes spécifiques. |
||
| 3113 | |||
| 3114 | ### 29.11 Historique des décisions d’interface |
||
| 3115 | |||
| 3116 | Cette annexe conserve les décisions importantes. |
||
| 3117 | |||
| 3118 | **Exemple :** |
||
| 3119 | |||
| 3120 | ```text |
||
| 3121 | DEC-IF-001 : |
||
| 3122 | Les échanges équipement/serveur utiliseront des messages avec identifiant unique message_id. |
||
| 3123 | |||
| 3124 | Justification : |
||
| 3125 | permettre la détection des doublons lors de la resynchronisation après perte réseau. |
||
| 3126 | |||
| 3127 | Impact : |
||
| 3128 | le firmware doit générer un identifiant stable, le serveur doit conserver les identifiants traités et les tests d’intégration doivent couvrir les cas de retransmission. |
||
| 3129 | ``` |