Project

General

Profile

Canevas 7D — Spécification détaillée des interfaces » History » Revision 8

Revision 7 (Redmine Admin, 06/19/2026 05:21 AM) → Revision 8/23 (Redmine Admin, 06/19/2026 05:21 AM)

# Canevas 7D — Spécification détaillée des interfaces 

 ## 1. Objet du document 

 ### 1.1 Finalité de la spécification détaillée des interfaces 

 Cette partie précise l’objectif du document. 

 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. 

 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. 

 **Exemple :** 

 > 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. 

 ### 1.2 Positionnement dans le cycle en V 

 Cette partie situe le document dans le cycle en V. 

 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. 

 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. 

 ```text 
 Spécification globale 
         ↓ 
 Architecture système / conception globale 
         ↓ 
 Spécifications détaillées hardware / software / serveur / infrastructure 
         ↓ 
 Spécification détaillée des interfaces 
         ↓ 
 Conceptions détaillées et réalisation 
         ↑ 
 Tests unitaires 
         ↑ 
 Tests d’interfaces 
         ↑ 
 Tests d’intégration 
         ↑ 
 Tests système 
         ↑ 
 Validation client 
 ``` 

 ### 1.3 Différence avec l’architecture système 

 Cette partie précise la frontière avec le dossier d’architecture. 

 L’architecture système identifie les interfaces principales et leur rôle. 
 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. 

 **Exemple :** 

 ```text 
 Architecture système : 
 L’équipement embarqué communique avec le serveur applicatif via une interface réseau sécurisée. 

 Spécification détaillée des interfaces : 
 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. 
 ``` 

 ### 1.4 Différence avec les spécifications détaillées des sous-systèmes 

 Cette partie explique pourquoi un document spécifique aux interfaces est utile. 

 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. 

 **Exemple :** 

 ```text 
 Spécification software embarqué : 
 Le firmware doit transmettre les mesures au serveur. 

 Spécification serveur : 
 Le serveur doit recevoir les mesures transmises par les équipements. 

 Spécification d’interface : 
 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. 
 ``` 

 ### 1.5 Responsabilités de rédaction et d’approbation 

 Cette partie précise qui rédige, contribue et approuve le document. 

 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. 

 **Exemple :** 

 ```text 
 Rédaction : ingénieur système / architecte système / responsable intégration 
 Contribution : hardware, firmware, backend, frontend, infrastructure, réseau, cybersécurité, validation 
 Relecture : responsables de sous-systèmes, qualité, exploitation, maintenance 
 Approbation : responsable technique fournisseur et client si les interfaces sont contractuelles ou impliquent le SI client 
 ``` 

 --- 

 ## 2. Références et documents applicables 

 ### 2.1 Documents d’entrée 

 Cette partie liste les documents utilisés pour définir les interfaces. 

 **Exemples :** 

 ```text 
 - Cahier des charges / expression de besoin 
 - Spécification globale / système 
 - Architecture système / conception globale 
 - Dossier des modes de fonctionnement 
 - Dossier infrastructure informatique / réseau / sauvegarde 
 - Spécification détaillée hardware 
 - Spécification détaillée software embarqué 
 - Spécification détaillée serveur / application 
 - Spécification cybersécurité 
 - Contraintes réseau client 
 - Documentation des équipements tiers 
 - Documentation des API externes 
 - Procédures d’exploitation et de maintenance 
 ``` 

 ### 2.2 Documents applicables 

 Cette partie liste les standards, normes ou contraintes à respecter. 

 **Exemples :** 

 ```text 
 - standard de câblage client ; 
 - standard de connectique ; 
 - référentiel réseau client ; 
 - politique cybersécurité ; 
 - standard API REST ou MQTT ; 
 - format d’échange imposé ; 
 - politique de nommage des équipements ; 
 - règles de journalisation ; 
 - politique d’authentification ; 
 - contraintes RGPD si données personnelles ; 
 - règles de versionnement des interfaces. 
 ``` 

 ### 2.3 Documents produits à partir de cette spécification 

 Cette partie liste les documents qui utiliseront cette spécification. 

 **Exemples :** 

 ```text 
 - conception détaillée hardware ; 
 - conception détaillée software embarqué ; 
 - conception détaillée serveur ; 
 - conception détaillée réseau ; 
 - conception API ; 
 - schémas de câblage ; 
 - dictionnaire de données ; 
 - procédures de tests d’interfaces ; 
 - procédures de tests d’intégration ; 
 - simulateurs d’équipements ; 
 - simulateurs serveur ; 
 - manuel d’installation ; 
 - manuel maintenance ; 
 - dossier de validation. 
 ``` 

 ### 2.4 Gestion des versions d’interface 

 Cette partie précise comment les évolutions d’interface sont maîtrisées. 

 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. 

 **Exemple :** 

 > 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. 

 --- 

 ## 3. Définitions, acronymes et conventions 

 ### 3.1 Définitions 

 Cette partie définit les termes utilisés dans le document. 

 **Exemples :** 

 ```text 
 Interface : 
 Point d’échange entre deux composants, deux sous-systèmes ou entre le système et un élément externe. 

 Interface interne : 
 Interface entre deux composants appartenant au système. 

 Interface externe : 
 Interface entre le système et un élément hors périmètre : réseau client, équipement tiers, utilisateur, système externe. 

 Protocole : 
 Ensemble de règles définissant la manière dont deux composants échangent des informations. 

 Message : 
 Unité d’échange structurée transportant des données, une commande, un événement, une alarme ou un acquittement. 

 Acquittement : 
 Réponse confirmant qu’un message a été reçu, accepté, rejeté ou devra être retransmis. 

 Contrat d’interface : 
 Ensemble des règles que les deux parties d’une interface doivent respecter. 
 ``` 

 ### 3.2 Acronymes 

 **Exemples :** 

 ```text 
 API : Application Programming Interface 
 CAN : Controller Area Network 
 CSV : Comma-Separated Values 
 GPIO : General Purpose Input/Output 
 HTTP : HyperText Transfer Protocol 
 HTTPS : HyperText Transfer Protocol Secure 
 IHM : Interface Homme-Machine 
 JSON : JavaScript Object Notation 
 MQTT : Message Queuing Telemetry Transport 
 REST : Representational State Transfer 
 RS485 : Bus série différentiel 
 TLS : Transport Layer Security 
 VPN : Virtual Private Network 
 XML : eXtensible Markup Language 
 ``` 

 ### 3.3 Convention d’identification des interfaces 

 Cette partie définit une codification claire. 

 **Exemple :** 

 ```text 
 IF-HW-001 : interface matérielle 
 IF-SW-001 : interface logicielle interne 
 IF-NET-001 : interface réseau 
 IF-API-001 : API applicative 
 IF-IHM-001 : interface utilisateur 
 IF-DOC-001 : interface fichier ou document 
 IF-MNT-001 : interface maintenance 
 IF-SUP-001 : interface supervision 
 IF-TIERS-001 : interface système tiers 
 ``` 

 ### 3.4 Convention de description d’une interface 

 Cette partie définit le format standard de description. 

 Chaque interface devrait être décrite avec une structure constante. 

 ```text 
 Identifiant interface : 
 Nom : 
 Type : 
 Source : 
 Destination : 
 Responsable source : 
 Responsable destination : 
 Sens d’échange : 
 Usage : 
 Données échangées : 
 Format : 
 Protocole : 
 Fréquence : 
 Criticité : 
 Sécurité : 
 Gestion des erreurs : 
 Logs associés : 
 Tests associés : 
 Commentaires : 
 ``` 

 ### 3.5 Convention de criticité des interfaces 

 Cette partie permet de prioriser les interfaces. 

 **Exemple :** 

 ```text 
 Critique : 
 interface liée à la sécurité, aux commandes critiques, aux alarmes critiques ou à l’état sûr. 

 Élevée : 
 interface nécessaire au fonctionnement principal du système. 

 Moyenne : 
 interface importante pour l’exploitation, la maintenance ou le confort d’usage. 

 Faible : 
 interface secondaire, optionnelle ou non bloquante. 
 ``` 

 --- 

 ## 4. Vue générale des interfaces du système 

 ### 4.1 Présentation générale 

 Cette partie donne une vue d’ensemble des interfaces du système. 

 Elle doit permettre de comprendre rapidement quels composants échangent avec quels autres composants et pour quel usage. 

 **Exemple :** 

 > 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. 

 ### 4.2 Liste synthétique des interfaces 

 Cette partie liste toutes les interfaces identifiées. 

 **Exemple :** 

 ```text 
 ID             | Nom                          | Type               | Source              | Destination          | Criticité 
 IF-HW-001      | alimentation équipement      | hardware           | alimentation site | équipement           | critique 
 IF-HW-002      | entrée capteur température | hardware           | capteur             | carte contrôle       | élevée 
 IF-SW-001      | lecture entrée numérique     | software interne | hardware            | firmware             | élevée 
 IF-NET-001     | équipement vers serveur      | réseau/API         | équipement          | serveur              | élevée 
 IF-API-001     | API mesures                  | API                | équipement          | serveur              | élevée 
 IF-IHM-001     | tableau de bord              | IHM                | utilisateur         | serveur              | moyenne 
 IF-DOC-001     | export CSV mesures           | fichier            | serveur             | utilisateur          | faible/moyenne 
 IF-MNT-001     | port maintenance local       | maintenance        | technicien          | équipement           | élevée 
 IF-TIERS-001 | export supervision           | système tiers      | serveur             | supervision client | moyenne 
 ``` 

 ### 4.3 Synoptique des interfaces 

 Cette partie doit contenir un schéma général. 

 **Exemple textuel :** 

 ```text 
 Capteurs / Actionneurs 
         ↕ IF-HW 
 Équipement hardware 
         ↕ IF-SW-HW 
 Firmware embarqué 
         ↕ IF-NET / IF-API 
 Serveur applicatif 
         ↕ IF-DB 
 Base de données 
         ↕ IF-IHM 
 Interface utilisateur 
         ↕ IF-TIERS 
 Systèmes externes 
 ``` 

 ### 4.4 Interfaces internes et externes 

 Cette partie distingue les interfaces internes au système et celles avec l’extérieur. 

 **Exemple :** 

 ```text 
 Interfaces internes : 
 - firmware / hardware ; 
 - firmware / stockage local ; 
 - serveur / base de données ; 
 - backend / frontend ; 
 - serveur / supervision applicative. 

 Interfaces externes : 
 - équipement / capteurs externes ; 
 - équipement / réseau client ; 
 - serveur / système tiers ; 
 - application / utilisateur ; 
 - serveur / annuaire client ; 
 - serveur / outil de sauvegarde externe. 
 ``` 

 ### 4.5 Interfaces critiques 

 Cette partie identifie les interfaces dont une défaillance a un impact fort. 

 **Exemples :** 

 ```text 
 - interface arrêt d’urgence ; 
 - interface commande relais critique ; 
 - interface équipement / serveur ; 
 - interface alarmes ; 
 - interface base de données ; 
 - interface configuration ; 
 - interface mise à jour ; 
 - interface authentification ; 
 - interface sauvegarde / restauration. 
 ``` 

 --- 

 ## 5. Interfaces hardware 

 ### 5.1 Objet des interfaces hardware 

 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. 

 ### 5.2 Liste des interfaces hardware 

 **Exemple :** 

 ```text 
 ID          | Nom                       | Type                | Source              | Destination      | Usage                | Criticité 
 IF-HW-001 | alimentation principale | électrique          | alimentation site | équipement       | alimentation         | critique 
 IF-HW-002 | capteur température       | analogique          | capteur             | carte contrôle | mesure température | élevée 
 IF-HW-003 | contact porte             | numérique           | contact sec         | entrée carte     | état porte           | moyenne 
 IF-HW-004 | sortie relais             | relais              | carte contrôle      | actionneur       | commande             | critique 
 IF-HW-005 | Ethernet                  | connecteur réseau | équipement          | réseau site      | communication        | élevée 
 IF-HW-006 | port maintenance          | USB/UART/Ethernet | technicien          | équipement       | diagnostic           | élevée 
 ``` 

 ### 5.3 Description d’une interface d’alimentation 

 Cette partie décrit les interfaces d’alimentation. 

 **Exemple :** 

 ```text 
 Identifiant : IF-HW-001 
 Nom                    : alimentation principale 
 Type                   : électrique 
 Source                 : alimentation site 
 Destination            : équipement 
 Usage                  : fournir l’énergie nécessaire au fonctionnement 
 Tension nominale       : 24 VDC 
 Plage admissible       : à définir selon projet 
 Protection             : fusible, protection inversion, surtension si applicable 
 Criticité              : critique 
 Défauts possibles      : absence alimentation, sous-tension, surtension, inversion polarité 
 Comportement attendu : arrêt contrôlé ou état sûr selon possibilités 
 Tests associés         : TEST-HW-ALIM-001, TEST-HW-ALIM-002 
 ``` 

 ### 5.4 Description d’une interface capteur 

 Cette partie décrit les interfaces entre un capteur et l’équipement. 

 **Exemple :** 

 ```text 
 Identifiant           : IF-HW-002 
 Nom                   : capteur température 
 Type                  : entrée analogique 
 Source                : capteur température 
 Destination           : carte de contrôle 
 Usage                 : mesurer la température interne ou externe 
 Donnée produite       : température 
 Unité                 : °C 
 Plage attendue        : selon capteur 
 Défauts détectables : capteur absent, valeur hors plage, court-circuit, rupture 
 Criticité             : élevée 
 Traitement associé    : acquisition, conversion, surveillance seuil 
 Tests associés        : TEST-HW-CAPT-001, TEST-SW-ACQ-001, TEST-INT-CAPT-001 
 ``` 

 ### 5.5 Description d’une interface actionneur ou relais 

 Cette partie décrit les sorties commandées. 

 **Exemple :** 

 ```text 
 Identifiant                  : IF-HW-004 
 Nom                          : sortie relais de commande 
 Type                         : sortie relais 
 Source                       : carte de contrôle 
 Destination                  : actionneur externe 
 Usage                        : commander une action physique 
 État au repos                : ouvert 
 État sûr                     : ouvert 
 Commande autorisée en mode : nominal, maintenance sous conditions 
 Commande interdite en mode : arrêt, secours, arrêt d’urgence 
 Défauts possibles            : relais bloqué, charge absente, retour d’état incohérent 
 Criticité                    : critique 
 Tests associés               : TEST-HW-REL-001, TEST-INT-CMD-001, TEST-SAFE-001 
 ``` 

 ### 5.6 Brochage et connectique 

 Cette partie décrit les connecteurs, broches et câblages. 

 **Exemple :** 

 ```text 
 Connecteur J1 — alimentation 
 Broche 1 : +24 VDC 
 Broche 2 : 0 V 
 Broche 3 : terre fonctionnelle si applicable 

 Connecteur J2 — entrées numériques 
 Broche 1 : IN1 contact porte 
 Broche 2 : IN2 défaut externe 
 Broche 3 : commun 
 Broche 4 : réserve 
 ``` 

 ### 5.7 Contraintes de câblage 

 Cette partie décrit les règles à respecter pour le câblage. 

 **Exemples :** 

 ```text 
 - séparation puissance / signaux faibles ; 
 - blindage des câbles sensibles ; 
 - longueur maximale ; 
 - section minimale ; 
 - repérage des câbles ; 
 - détrompage connecteur ; 
 - rayon de courbure ; 
 - mise à la terre ; 
 - protection mécanique ; 
 - passage en presse-étoupe. 
 ``` 

 ### 5.8 Erreurs et défauts hardware à gérer 

 Cette partie liste les défauts possibles sur les interfaces hardware. 

 **Exemples :** 

 ```text 
 - capteur absent ; 
 - court-circuit ; 
 - rupture de câble ; 
 - inversion de câblage ; 
 - tension hors plage ; 
 - relais bloqué ; 
 - contact instable ; 
 - perte alimentation ; 
 - connecteur débranché ; 
 - module communication absent. 
 ``` 

 ### 5.9 Tests associés aux interfaces hardware 

 **Exemples :** 

 ```text 
 - test alimentation nominale ; 
 - test entrée capteur nominale ; 
 - test capteur hors plage ; 
 - test contact sec ouvert/fermé ; 
 - test sortie relais ; 
 - test état sûr relais ; 
 - test connecteur débranché ; 
 - test port maintenance ; 
 - test défaut câblage. 
 ``` 

 --- 

 ## 6. Interfaces firmware / hardware 

 ### 6.1 Objet des interfaces firmware / hardware 

 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. 

 Ces interfaces sont importantes car elles font le lien direct entre la spécification hardware et la spécification software embarqué. 

 ### 6.2 Liste des interfaces firmware / hardware 

 **Exemple :** 

 ```text 
 ID             | Nom                    | Type                    | Hardware               | Firmware             | Usage 
 IF-SW-HW-001 | lecture entrée porte | GPIO                    | entrée numérique       | InputManager         | état porte 
 IF-SW-HW-002 | lecture température    | ADC/I2C/SPI             | capteur température    | AcquisitionManager | mesure 
 IF-SW-HW-003 | commande relais        | GPIO                    | sortie relais          | OutputManager        | commande 
 IF-SW-HW-004 | watchdog               | périphérique sécurité | watchdog matériel      | WatchdogManager      | surveillance 
 IF-SW-HW-005 | stockage local         | mémoire                 | mémoire non volatile | StorageManager       | données locales 
 IF-SW-HW-006 | horloge RTC            | RTC                     | horloge locale         | TimeManager          | horodatage 
 ``` 

 ### 6.3 Lecture des entrées par le firmware 

 Cette partie décrit comment les entrées matérielles sont exposées au logiciel. 

 **Exemples d’éléments à préciser :** 

 ```text 
 - nom logique de l’entrée ; 
 - polarité ; 
 - état actif ; 
 - état au repos ; 
 - fréquence de lecture ; 
 - filtrage logiciel ; 
 - défaut détectable ; 
 - criticité ; 
 - mode dans lequel l’entrée est utilisée. 
 ``` 

 **Exemple :** 

 ```text 
 Interface : IF-SW-HW-001 
 Nom                 : lecture contact porte 
 Type                : GPIO entrée numérique 
 Polarité            : actif à 1 
 Fréquence lecture : 1 seconde ou événement 
 Filtrage            : anti-rebond logiciel 100 ms 
 Défaut détectable : incohérence si état impossible selon mode 
 Traitement          : mise à jour état porte, génération événement si changement 
 ``` 

 

 ### 6.4 Commande des sorties par le firmware 

 Cette partie décrit la manière dont le firmware commande les sorties. 

 **Exemples :** 

 ```text 
 Interface : IF-SW-HW-003 
 Nom : commande relais principal 
 Type : GPIO sortie 
 État actif : 1 
 État sûr : 0 
 État au démarrage : 0 
 Modes autorisés : nominal, maintenance contrôlée 
 Modes interdits : arrêt, secours, arrêt d’urgence 
 Retour d’état : oui/non selon hardware 
 Test associé : TEST-INT-OUT-001 
 ``` 

 ### 6.5 Accès au stockage local 

 Cette partie décrit l’interface entre firmware et mémoire locale. 

 **Exemples :** 

 ```text 
 - type de mémoire ; 
 - usage ; 
 - données stockées ; 
 - taille disponible ; 
 - comportement en saturation ; 
 - détection d’erreur ; 
 - intégrité ; 
 - nombre d’écritures ; 
 - effacement ; 
 - format logique ; 
 - tests associés. 
 ``` 

 ### 6.6 Accès à l’horloge 

 Cette partie décrit l’interface avec une horloge temps réel ou une référence temporelle. 

 **Exemples :** 

 ```text 
 - lecture date/heure ; 
 - synchronisation serveur ; 
 - maintien en absence réseau ; 
 - dérive acceptable ; 
 - état horloge incertain ; 
 - défaut batterie RTC ; 
 - horodatage des événements. 
 ``` 

 ### 6.7 Watchdog 

 Cette partie décrit l’interface avec le watchdog matériel ou logiciel. 

 **Exemples :** 

 ```text 
 - activation watchdog ; 
 - période de rafraîchissement ; 
 - conditions de rafraîchissement ; 
 - comportement en expiration ; 
 - cause du reset ; 
 - journalisation au redémarrage ; 
 - tests associés. 
 ``` 

 ### 6.8 Tests associés aux interfaces firmware / hardware 

 **Exemples :** 

 ```text 
 - lecture entrée nominale ; 
 - lecture entrée bruitée ; 
 - commande sortie ; 
 - état sûr au démarrage ; 
 - mémoire locale écriture/lecture ; 
 - saturation mémoire ; 
 - horloge absente ; 
 - synchronisation horaire ; 
 - watchdog déclenché ; 
 - version hardware lue par firmware. 
 ``` 

 --- 

 ## 7. Interfaces équipement embarqué / serveur 

 ### 7.1 Objet de l’interface équipement / serveur 

 Cette partie décrit l’interface principale entre les équipements embarqués et le serveur applicatif. 

 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. 

 ### 7.2 Nature de l’interface 

 Cette partie précise le type d’interface utilisé. 

 **Exemples :** 

 ```text 
 - HTTPS REST ; 
 - MQTT/TLS ; 
 - WebSocket ; 
 - TCP propriétaire ; 
 - UDP ; 
 - fichier déposé dans un SAS ; 
 - liaison série via passerelle ; 
 - protocole industriel. 
 ``` 

 **Exemple d’exigence :** 

 ```text 
 IF-NET-001 — L’équipement embarqué doit communiquer avec le serveur applicatif via le protocole défini pour l’interface équipement / serveur. 
 ``` 

 ### 7.3 Messages équipement vers serveur 

 Cette partie liste les messages montants. 

 **Exemples :** 

 ```text 
 - MEASURE : transmission de mesure ; 
 - ALARM : transmission d’alarme ; 
 - EVENT : transmission d’événement ; 
 - STATE : transmission d’état courant ; 
 - DIAGNOSTIC : transmission d’informations de diagnostic ; 
 - LOG : transmission de logs ; 
 - VERSION : transmission des versions ; 
 - SYNC_DATA : retransmission de données après perte réseau. 
 ``` 

 ### 7.4 Messages serveur vers équipement 

 Cette partie liste les messages descendants. 

 **Exemples :** 

 ```text 
 - ACK : acquittement ; 
 - CONFIG : configuration ; 
 - COMMAND : commande ; 
 - TIME_SYNC : synchronisation horaire ; 
 - UPDATE_REQUEST : demande de mise à jour ; 
 - DIAG_REQUEST : demande de diagnostic ; 
 - RESET_REQUEST : demande de redémarrage contrôlé ; 
 - NACK / REJECT : rejet de message. 
 ``` 

 ### 7.5 Structure commune des messages 

 Cette partie définit les champs communs. 

 **Exemple :** 

 ```text 
 Champ | Description | Obligatoire | Exemple 
 protocol_version | version du protocole | oui | 1.0 
 message_id | identifiant unique du message | oui | MSG-20260703-0001 
 equipment_id | identifiant équipement | oui | EQP-001 
 message_type | type de message | oui | MEASURE 
 timestamp_device | horodatage équipement | oui si disponible | 2026-07-03T14:02:10Z 
 timestamp_server | horodatage serveur | non, ajouté à réception | 2026-07-03T14:02:15Z 
 payload | contenu spécifique | oui | selon type 
 ``` 

 ### 7.6 Exemple de message de mesure 

 Cette partie donne un exemple concret. 

 **Exemple JSON indicatif :** 

 ```json 
 { 
   "protocol_version": "1.0", 
   "message_id": "MSG-000123", 
   "equipment_id": "EQP-001", 
   "message_type": "MEASURE", 
   "timestamp_device": "2026-07-03T14:02:10Z", 
   "payload": { 
     "measure_type": "temperature", 
     "value": 42.5, 
     "unit": "degC", 
     "quality": "valid" 
   } 
 } 
 ``` 

 ### 7.7 Exemple de message d’alarme 

 ```json 
 { 
   "protocol_version": "1.0", 
   "message_id": "MSG-000124", 
   "equipment_id": "EQP-001", 
   "message_type": "ALARM", 
   "timestamp_device": "2026-07-03T14:03:00Z", 
   "payload": { 
     "alarm_code": "TEMP_HIGH", 
     "severity": "major", 
     "status": "active", 
     "description": "Temperature above configured threshold" 
   } 
 } 
 ``` 

 ### 7.8 Acquittements 

 Cette partie décrit les réponses du serveur. 

 **Exemple :** 

 ```json 
 { 
   "protocol_version": "1.0", 
   "message_id": "MSG-000124", 
   "ack_id": "ACK-000985", 
   "status": "ACCEPTED", 
   "timestamp_server": "2026-07-03T14:03:02Z" 
 } 
 ``` 

 **Statuts possibles :** 

 ```text 
 ACCEPTED : 
 message accepté et pris en compte. 

 REJECTED : 
 message rejeté, non pris en compte. 

 RETRY : 
 message non traité, retransmission demandée. 

 DUPLICATE : 
 message déjà reçu et déjà traité. 

 UNAUTHORIZED : 
 équipement ou message non autorisé. 
 ``` 

 ### 7.9 Gestion des erreurs de communication 

 Cette partie décrit les erreurs possibles. 

 **Exemples :** 

 ```text 
 - serveur non joignable ; 
 - timeout ; 
 - acquittement absent ; 
 - acquittement invalide ; 
 - message rejeté ; 
 - version protocole incompatible ; 
 - équipement non autorisé ; 
 - certificat invalide ; 
 - message dupliqué ; 
 - message trop volumineux ; 
 - erreur de format. 
 ``` 

 ### 7.10 Resynchronisation après perte réseau 

 Cette partie décrit le comportement après une coupure. 

 **Exemple :** 

 ```text 
 Lorsqu’une communication est rétablie : 
 1. l’équipement vérifie l’accessibilité du serveur ; 
 2. l’équipement transmet les messages stockés localement ; 
 3. le serveur conserve l’horodatage d’origine ; 
 4. le serveur détecte les doublons éventuels ; 
 5. les messages acceptés sont acquittés ; 
 6. l’équipement marque les messages comme transmis ; 
 7. l’état de communication repasse au nominal si les conditions sont satisfaites. 
 ``` 

 ### 7.11 Sécurité de l’interface 

 Cette partie décrit les protections. 

 **Exemples :** 

 ```text 
 - chiffrement TLS ; 
 - authentification équipement ; 
 - certificat client ; 
 - jeton ; 
 - signature de message ; 
 - contrôle d’intégrité ; 
 - contrôle de version protocole ; 
 - filtrage IP ; 
 - journalisation des erreurs de sécurité. 
 ``` 

 ### 7.12 Tests associés 

 **Exemples :** 

 ```text 
 - transmission mesure nominale ; 
 - transmission alarme ; 
 - réception acquittement ACCEPTED ; 
 - réception REJECTED ; 
 - serveur indisponible ; 
 - coupure réseau ; 
 - retour réseau ; 
 - retransmission messages ; 
 - doublon ; 
 - message invalide ; 
 - équipement inconnu ; 
 - protocole incompatible ; 
 - certificat invalide. 
 ``` 

 --- 

 ## 8. Interfaces serveur / base de données 

 ### 8.1 Objet de l’interface serveur / base de données 

 Cette partie décrit les échanges entre l’application serveur et la base de données. 

 Elle est essentielle pour l’historisation, les alarmes, la configuration, les utilisateurs, les droits, les rapports et la restauration. 

 ### 8.2 Données écrites en base 

 **Exemples :** 

 ```text 
 - mesures ; 
 - alarmes ; 
 - événements ; 
 - états équipements ; 
 - utilisateurs ; 
 - rôles ; 
 - configurations ; 
 - commandes ; 
 - logs applicatifs ; 
 - exports ; 
 - rapports ; 
 - informations de maintenance. 
 ``` 

 ### 8.3 Données lues depuis la base 

 **Exemples :** 

 ```text 
 - configuration active ; 
 - liste équipements ; 
 - historique mesures ; 
 - alarmes actives ; 
 - droits utilisateurs ; 
 - paramètres applicatifs ; 
 - rapports ; 
 - données de tableau de bord ; 
 - état système ; 
 - historique d’audit. 
 ``` 

 ### 8.4 Contraintes d’intégrité 

 Cette partie décrit les règles à respecter. 

 **Exemples :** 

 ```text 
 - une mesure doit être associée à un équipement ; 
 - une alarme doit être associée à une source ; 
 - une action utilisateur doit être associée à un utilisateur connu ou à un compte système ; 
 - une configuration appliquée doit être versionnée ; 
 - les historiques ne doivent pas être supprimés lors de la désactivation d’un équipement ; 
 - une suppression doit être contrôlée et journalisée si elle concerne des données critiques. 
 ``` 

 ### 8.5 Transactions et cohérence 

 Cette partie décrit les opérations qui doivent être cohérentes. 

 **Exemple :** 

 ```text 
 Lors de la réception d’une alarme : 
 1. le message est validé ; 
 2. l’alarme est créée ou mise à jour ; 
 3. l’événement associé est historisé ; 
 4. l’état équipement est mis à jour ; 
 5. l’acquittement serveur est préparé. 

 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. 
 ``` 

 ### 8.6 Gestion des erreurs base de données 

 **Exemples :** 

 ```text 
 - connexion impossible ; 
 - timeout ; 
 - contrainte d’intégrité violée ; 
 - espace disque saturé ; 
 - migration incomplète ; 
 - écriture refusée ; 
 - lecture incohérente ; 
 - verrouillage prolongé ; 
 - corruption détectée. 
 ``` 

 ### 8.7 Tests associés 

 **Exemples :** 

 ```text 
 - écriture mesure ; 
 - écriture alarme ; 
 - lecture historique ; 
 - contrainte équipement inexistant ; 
 - base indisponible ; 
 - transaction interrompue ; 
 - migration base ; 
 - restauration base ; 
 - performance requête ; 
 - purge contrôlée. 
 ``` 

 --- 

 ## 9. Interfaces backend / frontend / IHM 

 ### 9.1 Objet de l’interface backend / frontend 

 Cette partie décrit les échanges entre la partie serveur backend et l’interface utilisateur. 

 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. 

 ### 9.2 Fonctions accessibles par l’IHM 

 **Exemples :** 

 ```text 
 - authentification ; 
 - consultation tableau de bord ; 
 - liste équipements ; 
 - détail équipement ; 
 - alarmes actives ; 
 - historique alarmes ; 
 - historique mesures ; 
 - acquittement alarme ; 
 - configuration ; 
 - administration utilisateurs ; 
 - exports ; 
 - diagnostic ; 
 - supervision. 
 ``` 

 ### 9.3 Données affichées 

 Cette partie décrit les informations transmises à l’IHM. 

 **Exemple :** 

 ```text 
 Écran tableau de bord : 
 - nombre d’équipements actifs ; 
 - nombre d’équipements en défaut ; 
 - nombre d’équipements non joignables ; 
 - nombre d’alarmes critiques ; 
 - dernières alarmes ; 
 - état global système. 

 Écran équipement : 
 - identifiant ; 
 - nom ; 
 - site ; 
 - mode courant ; 
 - dernière communication ; 
 - alarmes actives ; 
 - mesures récentes ; 
 - version firmware ; 
 - configuration active. 
 ``` 

 ### 9.4 Actions déclenchées depuis l’IHM 

 **Exemples :** 

 ```text 
 - acquitter une alarme ; 
 - modifier un paramètre ; 
 - lancer un export ; 
 - consulter des logs ; 
 - créer un utilisateur ; 
 - désactiver un équipement ; 
 - demander un diagnostic ; 
 - envoyer une commande ; 
 - lancer une restauration si autorisée ; 
 - lancer une mise à jour si autorisée. 
 ``` 

 ### 9.5 Gestion des erreurs IHM 

 Cette partie décrit ce que l’utilisateur voit lorsqu’une action échoue. 

 **Exemples :** 

 ```text 
 - message d’erreur clair ; 
 - absence d’exposition de détails techniques sensibles ; 
 - indication de l’action non autorisée ; 
 - indication de session expirée ; 
 - indication de serveur indisponible ; 
 - indication de donnée introuvable ; 
 - possibilité de réessayer si pertinent. 
 ``` 

 ### 9.6 Contrôle des droits côté IHM et backend 

 Cette partie précise que l’IHM ne suffit pas à sécuriser une action. 

 **Exemple :** 

 ```text 
 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. 
 ``` 

 **Exigences typiques :** 

 ```text 
 IF-IHM-SEC-001 — Le backend doit contrôler les droits pour chaque action sensible. 

 IF-IHM-SEC-002 — L’IHM doit présenter uniquement les actions compatibles avec le profil utilisateur lorsque cela est possible. 

 IF-IHM-SEC-003 — Une action refusée doit produire un message compréhensible et être journalisée si nécessaire. 
 ``` 

 ### 9.7 Tests associés 

 **Exemples :** 

 ```text 
 - affichage tableau de bord ; 
 - consultation équipement ; 
 - filtre historique ; 
 - acquittement alarme ; 
 - action refusée par droits insuffisants ; 
 - session expirée ; 
 - backend indisponible ; 
 - erreur API ; 
 - message utilisateur ; 
 - cohérence affichage backend. 
 ``` 

 --- 

 ## 10. Interfaces utilisateurs physiques ou locales 

 ### 10.1 Objet des interfaces utilisateur locales 

 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. 

 ### 10.2 Voyants et signalisation 

 **Exemples :** 

 ```text 
 Voyant alimentation : 
 - allumé fixe : alimentation présente ; 
 - éteint : absence alimentation. 

 Voyant communication : 
 - allumé fixe : communication serveur OK ; 
 - clignotant : tentative connexion ; 
 - éteint : communication absente. 

 Voyant défaut : 
 - éteint : aucun défaut ; 
 - allumé fixe : défaut actif ; 
 - clignotant : défaut critique. 
 ``` 

 ### 10.3 Boutons ou commandes locales 

 Cette partie décrit les commandes physiques. 

 **Exemples :** 

 ```text 
 - bouton démarrage ; 
 - bouton arrêt ; 
 - bouton reset ; 
 - bouton test ; 
 - bouton acquittement local ; 
 - bouton arrêt d’urgence ; 
 - sélecteur maintenance ; 
 - bouton export diagnostic. 
 ``` 

 **Exemple de description :** 

 ```text 
 Identifiant : IF-LOCAL-001 
 Nom : bouton reset local 
 Type : bouton physique 
 Usage : demander un redémarrage contrôlé 
 Conditions d’utilisation : mode maintenance ou défaut non critique 
 Effet attendu : redémarrage logiciel contrôlé 
 Actions interdites : reset en commande critique active 
 Journalisation : oui si possible 
 Tests associés : TEST-LOCAL-RESET-001 
 ``` 

 ### 10.4 Afficheur local 

 Cette partie est utile si l’équipement possède un écran ou afficheur. 

 **Exemples d’informations affichables :** 

 ```text 
 - état système ; 
 - code défaut ; 
 - adresse IP ; 
 - mode courant ; 
 - niveau batterie ; 
 - état communication ; 
 - version firmware ; 
 - instructions maintenance ; 
 - progression mise à jour. 
 ``` 

 ### 10.5 Buzzer ou signal sonore 

 Cette partie décrit les signaux sonores éventuels. 

 **Exemples :** 

 ```text 
 - alarme critique ; 
 - défaut technique ; 
 - confirmation action ; 
 - fin de test ; 
 - erreur utilisateur ; 
 - durée maximale d’activation ; 
 - inhibition en maintenance. 
 ``` 

 ### 10.6 Tests associés 

 **Exemples :** 

 ```text 
 - voyant alimentation ; 
 - voyant communication ; 
 - voyant défaut ; 
 - bouton reset ; 
 - bouton test ; 
 - afficheur code défaut ; 
 - buzzer alarme ; 
 - inhibition signalisation en maintenance ; 
 - état au démarrage. 
 ``` 

 --- 

 ## 11. Interfaces de maintenance et diagnostic 

 ### 11.1 Objet des interfaces maintenance 

 Cette partie décrit les moyens permettant à un technicien ou à un administrateur de diagnostiquer, configurer, tester, mettre à jour ou restaurer un composant. 

 Les interfaces de maintenance peuvent être locales ou distantes. Elles doivent être contrôlées, sécurisées et documentées. 

 ### 11.2 Types d’interfaces de maintenance 

 **Exemples :** 

 ```text 
 - port USB local ; 
 - port série ; 
 - port Ethernet local ; 
 - interface web maintenance ; 
 - accès SSH ; 
 - outil de diagnostic ; 
 - API diagnostic ; 
 - export logs ; 
 - écran maintenance ; 
 - console administrateur ; 
 - serveur SAS ; 
 - VPN d’administration. 
 ``` 

 ### 11.3 Fonctions accessibles en maintenance 

 **Exemples :** 

 ```text 
 - consulter les versions ; 
 - consulter l’état courant ; 
 - exporter les logs ; 
 - tester une entrée ; 
 - tester une sortie ; 
 - lire la configuration ; 
 - charger une configuration ; 
 - lancer un autotest ; 
 - redémarrer un service ; 
 - mettre à jour un firmware ; 
 - vérifier la connectivité ; 
 - lancer une sauvegarde ; 
 - restaurer une configuration. 
 ``` 

 ### 11.4 Sécurité de l’interface maintenance 

 Cette partie est critique car les interfaces de maintenance donnent souvent accès à des fonctions sensibles. 

 **Exemples d’exigences :** 

 ```text 
 IF-MNT-SEC-001 — L’accès aux fonctions de maintenance doit être réservé aux utilisateurs ou techniciens habilités. 

 IF-MNT-SEC-002 — Les actions de maintenance critiques doivent être journalisées. 

 IF-MNT-SEC-003 — Une interface de maintenance ne doit pas permettre de contourner les règles de sécurité du système. 

 IF-MNT-SEC-004 — Les accès distants de maintenance doivent respecter les contraintes réseau et cybersécurité définies. 
 ``` 

 ### 11.5 Export de diagnostic 

 Cette partie décrit les fichiers ou informations exportables. 

 **Exemples :** 

 ```text 
 - version hardware ; 
 - version firmware ; 
 - version serveur ; 
 - état des entrées/sorties ; 
 - derniers défauts ; 
 - logs locaux ; 
 - logs serveur ; 
 - configuration active ; 
 - état stockage ; 
 - état communication ; 
 - cause dernier redémarrage ; 
 - rapport de santé système. 
 ``` 

 ### 11.6 Tests associés 

 **Exemples :** 

 ```text 
 - accès maintenance autorisé ; 
 - accès maintenance refusé ; 
 - export logs ; 
 - consultation version ; 
 - test entrée ; 
 - test sortie ; 
 - redémarrage contrôlé ; 
 - mise à jour firmware ; 
 - action critique journalisée ; 
 - accès distant via VPN. 
 ``` 

 --- 

 ## 12. Interfaces fichiers et exports 

 ### 12.1 Objet des interfaces fichiers 

 Cette partie décrit les fichiers échangés, importés, exportés ou conservés par le système. 

 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. 

 ### 12.2 Types de fichiers 

 **Exemples :** 

 ```text 
 - fichier de configuration ; 
 - export CSV ; 
 - export JSON ; 
 - rapport PDF ; 
 - fichier log ; 
 - fichier diagnostic ; 
 - fichier de sauvegarde ; 
 - paquet de mise à jour ; 
 - fichier d’import ; 
 - fichier d’échange système tiers ; 
 - fichier de mapping équipements. 
 ``` 

 ### 12.3 Description d’un fichier de configuration 

 **Exemple :** 

 ```text 
 Identifiant : IF-DOC-001 
 Nom : fichier de configuration équipement 
 Format : JSON / YAML / XML / CSV selon choix 
 Usage : définir les paramètres applicables à un équipement 
 Producteur : serveur ou outil de configuration 
 Consommateur : firmware embarqué 
 Champs principaux : 
 - equipment_id ; 
 - acquisition_period ; 
 - thresholds ; 
 - communication_settings ; 
 - enabled_features ; 
 - version ; 
 - checksum. 
 Sécurité : contrôle d’intégrité, accès restreint 
 Tests associés : TEST-CFG-IMPORT-001, TEST-CFG-INVALID-001 
 ``` 

 ### 12.4 Description d’un export CSV 

 **Exemple :** 

 ```text 
 Identifiant : IF-DOC-002 
 Nom : export historique mesures 
 Format : CSV 
 Producteur : serveur applicatif 
 Consommateur : utilisateur / outil externe 
 Séparateur : point-virgule ou virgule selon convention 
 Encodage : UTF-8 
 Colonnes : 
 - equipment_id ; 
 - timestamp_device ; 
 - timestamp_server ; 
 - measure_type ; 
 - value ; 
 - unit ; 
 - quality. 
 Filtres : équipement, période, type de mesure 
 Tests associés : TEST-EXP-CSV-001 
 ``` 

 ### 12.5 Description d’un rapport PDF 

 **Exemples d’informations à définir :** 

 ```text 
 - titre du rapport ; 
 - période couverte ; 
 - équipement ou site ; 
 - synthèse ; 
 - alarmes ; 
 - mesures ; 
 - événements ; 
 - commentaires ; 
 - date de génération ; 
 - utilisateur générateur ; 
 - version de l’application ; 
 - mentions ou pied de page. 
 ``` 

 ### 12.6 Fichiers de logs 

 Cette partie décrit les fichiers de journaux. 

 **Exemples :** 

 ```text 
 - format texte ou JSON ; 
 - horodatage ; 
 - niveau de log ; 
 - identifiant composant ; 
 - rotation ; 
 - compression ; 
 - durée conservation ; 
 - export ; 
 - protection contre modification ; 
 - absence de secrets en clair. 
 ``` 

 ### 12.7 Fichiers de mise à jour 

 Cette partie décrit les paquets firmware ou applicatifs. 

 **Exemples :** 

 ```text 
 - nom du fichier ; 
 - version ; 
 - cible hardware/software ; 
 - checksum ; 
 - signature ; 
 - taille maximale ; 
 - date ; 
 - compatibilité ; 
 - procédure de contrôle ; 
 - procédure de rejet. 
 ``` 

 ### 12.8 Tests associés 

 **Exemples :** 

 ```text 
 - import configuration valide ; 
 - import configuration invalide ; 
 - export CSV ; 
 - export volumineux ; 
 - encodage caractères spéciaux ; 
 - génération PDF ; 
 - fichier log sans secret ; 
 - paquet mise à jour invalide ; 
 - checksum incorrect ; 
 - fichier absent. 
 ``` 

 --- 

 ## 13. Interfaces réseau 

 ### 13.1 Objet des interfaces réseau 

 Cette partie décrit les flux réseau nécessaires au fonctionnement du système. 

 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. 

 ### 13.2 Liste des flux réseau 

 **Exemple :** 

 ```text 
 ID flux | Source | Destination | Protocole | Port | Usage | Criticité 
 F-NET-001 | équipement | serveur applicatif | HTTPS/MQTT | 443/8883 | mesures/alarmes | élevée 
 F-NET-002 | poste opérateur | serveur applicatif | HTTPS | 443 | IHM | élevée 
 F-NET-003 | serveur applicatif | base données | TCP | selon DB | données | critique 
 F-NET-004 | serveur | sauvegarde | SSH/API | selon choix | backup | élevée 
 F-NET-005 | admin | serveur | VPN/SSH | selon choix | administration | élevée 
 F-NET-006 | serveur | système tiers | HTTPS/API | 443 | export | moyenne 
 ``` 

 ### 13.3 Description détaillée d’un flux 

 **Modèle :** 

 ```text 
 ID flux : 
 Source : 
 Destination : 
 Sens : 
 Protocole : 
 Port : 
 Fréquence : 
 Données transportées : 
 Chiffrement : 
 Authentification : 
 Journalisation : 
 Comportement en cas d’échec : 
 Responsable réseau : 
 Tests associés : 
 ``` 

 ### 13.4 Flux interdits 

 Cette partie liste les flux explicitement non autorisés. 

 **Exemples :** 

 ```text 
 - poste opérateur vers base de données ; 
 - équipement vers base de données ; 
 - accès Internet direct depuis base de données ; 
 - accès administrateur hors VPN ; 
 - accès SSH depuis un poste non autorisé ; 
 - transfert direct de fichier vers production sans SAS ; 
 - communication non chiffrée si interdite par politique sécurité. 
 ``` 

 ### 13.5 Comportement en cas de perte réseau 

 Cette partie décrit l’impact fonctionnel. 

 **Exemples :** 

 ```text 
 Perte réseau équipement / serveur : 
 - passage firmware en mode dégradé communication ; 
 - stockage local ; 
 - équipement marqué non joignable côté serveur ; 
 - alarme communication ; 
 - resynchronisation au retour. 

 Perte réseau poste opérateur / serveur : 
 - utilisateur déconnecté ou IHM indisponible ; 
 - aucune perte de données côté équipement si serveur reste accessible. 

 Perte réseau serveur / base : 
 - application en erreur critique ; 
 - réception impossible ou limitée ; 
 - alerte infrastructure. 
 ``` 

 ### 13.6 Tests associés 

 **Exemples :** 

 ```text 
 - flux équipement vers serveur autorisé ; 
 - flux poste vers IHM autorisé ; 
 - flux poste vers base bloqué ; 
 - coupure réseau équipement ; 
 - coupure réseau base ; 
 - retour réseau ; 
 - latence élevée ; 
 - perte paquets ; 
 - certificat réseau expiré ; 
 - accès admin hors VPN refusé. 
 ``` 

 --- 

 ## 14. Interfaces avec systèmes tiers 

 ### 14.1 Objet des interfaces systèmes tiers 

 Cette partie décrit les échanges avec des systèmes externes au périmètre principal. 

 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. 

 ### 14.2 Liste des systèmes tiers 

 **Exemple :** 

 ```text 
 Système tiers | Usage | Sens | Responsable | Criticité 
 Annuaire client | authentification | serveur ↔ annuaire | client IT | élevée 
 GMAO | création ticket maintenance | serveur → GMAO | client exploitation | moyenne 
 Supervision client | état système | serveur → supervision | client IT | moyenne 
 ERP | référentiel sites | ERP → serveur | client métier | faible/moyenne 
 Messagerie | notification email | serveur → SMTP | client IT | moyenne 
 ``` 

 ### 14.3 Données échangées avec un système tiers 

 **Exemples :** 

 ```text 
 - identifiant équipement ; 
 - état équipement ; 
 - alarme critique ; 
 - rapport incident ; 
 - demande intervention ; 
 - utilisateur ; 
 - site ; 
 - zone ; 
 - date ; 
 - commentaire ; 
 - statut ticket ; 
 - fichier export. 
 ``` 

 ### 14.4 Exemple d’interface GMAO 

 ```text 
 Identifiant : IF-TIERS-001 
 Nom : interface GMAO 
 Source : serveur applicatif 
 Destination : GMAO client 
 Usage : créer une demande d’intervention lors d’une alarme critique 
 Sens : serveur vers GMAO 
 Protocole : API REST HTTPS ou fichier selon choix 
 Données : 
 - equipment_id ; 
 - alarm_code ; 
 - severity ; 
 - timestamp ; 
 - description ; 
 - site ; 
 - suggested_action. 
 Réponse attendue : 
 - ticket_id ; 
 - status ; 
 - message. 
 Erreur : 
 - GMAO indisponible ; 
 - authentification refusée ; 
 - format rejeté. 
 Tests associés : 
 - création ticket nominal ; 
 - GMAO indisponible ; 
 - rejet format ; 
 - doublon alarme. 
 ``` 

 ### 14.5 Exemple d’interface annuaire 

 ```text 
 Identifiant : IF-TIERS-002 
 Nom : interface annuaire utilisateur 
 Source : serveur applicatif 
 Destination : annuaire client 
 Usage : authentifier les utilisateurs 
 Protocole : LDAP / SSO / OAuth2 / OpenID Connect selon choix 
 Données : 
 - identifiant utilisateur ; 
 - groupe ; 
 - rôle ; 
 - statut compte. 
 Erreur : 
 - annuaire indisponible ; 
 - utilisateur inconnu ; 
 - mot de passe invalide ; 
 - groupe non mappé. 
 Tests associés : 
 - connexion nominale ; 
 - utilisateur inconnu ; 
 - groupe sans rôle ; 
 - annuaire indisponible. 
 ``` 

 ### 14.6 Gestion des indisponibilités de systèmes tiers 

 Cette partie décrit le comportement lorsque le système externe est indisponible. 

 **Exemples :** 

 ```text 
 - mise en file d’attente ; 
 - rejet contrôlé ; 
 - alerte technique ; 
 - fonctionnement local maintenu ; 
 - mode dégradé ; 
 - nouvelle tentative périodique ; 
 - journalisation ; 
 - intervention manuelle. 
 ``` 

 ### 14.7 Tests associés 

 **Exemples :** 

 ```text 
 - échange nominal ; 
 - système tiers indisponible ; 
 - réponse invalide ; 
 - authentification refusée ; 
 - timeout ; 
 - doublon ; 
 - reprise après retour ; 
 - journalisation erreur ; 
 - alerte supervision. 
 ``` 

 --- 

 ## 15. Interfaces de supervision 

 ### 15.1 Objet des interfaces de supervision 

 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. 

 La supervision peut être interne à l’application ou connectée à un outil externe. 

 ### 15.2 Données de supervision exposées 

 **Exemples :** 

 ```text 
 - état serveur applicatif ; 
 - état base de données ; 
 - état des équipements ; 
 - nombre d’alarmes actives ; 
 - nombre de messages reçus ; 
 - nombre de messages rejetés ; 
 - temps de réponse API ; 
 - état des sauvegardes ; 
 - espace disque ; 
 - version applicative ; 
 - état file d’attente ; 
 - état système tiers. 
 ``` 

 ### 15.3 Healthcheck 

 Cette partie décrit les points de contrôle de santé. 

 **Exemple :** 

 ```text 
 Identifiant : IF-SUP-001 
 Nom : healthcheck applicatif 
 Source : outil supervision 
 Destination : serveur applicatif 
 Protocole : HTTPS 
 Réponse attendue : 
 - status global ; 
 - état base ; 
 - état application ; 
 - version ; 
 - timestamp. 
 Statuts : 
 - OK ; 
 - DEGRADED ; 
 - ERROR. 
 ``` 

 ### 15.4 Alertes supervision 

 Cette partie décrit les alertes générées ou exposées. 

 **Exemples :** 

 ```text 
 - serveur indisponible ; 
 - base indisponible ; 
 - sauvegarde échouée ; 
 - disque presque plein ; 
 - certificat expirant ; 
 - taux de rejet messages élevé ; 
 - équipement non joignable ; 
 - file d’attente saturée ; 
 - service tiers indisponible. 
 ``` 

 ### 15.5 Interface avec outil de supervision externe 

 **Exemples :** 

 ```text 
 - endpoint HTTP ; 
 - agent local ; 
 - export métriques ; 
 - fichiers logs ; 
 - SNMP ; 
 - webhook ; 
 - email ; 
 - API supervision. 
 ``` 

 ### 15.6 Tests associés 

 **Exemples :** 

 ```text 
 - healthcheck OK ; 
 - healthcheck base KO ; 
 - arrêt service ; 
 - alerte sauvegarde échouée ; 
 - alerte disque ; 
 - équipement non joignable ; 
 - outil supervision indisponible ; 
 - retour au nominal. 
 ``` 

 --- 

 ## 16. Interfaces de sauvegarde et restauration 

 ### 16.1 Objet des interfaces sauvegarde/restauration 

 Cette partie décrit les interfaces utilisées pour sauvegarder et restaurer les données, configurations, bases, fichiers applicatifs, logs ou états système. 

 Elle complète le dossier infrastructure en précisant les formats, composants et responsabilités d’échange. 

 ### 16.2 Éléments sauvegardés via interface 

 **Exemples :** 

 ```text 
 - base de données ; 
 - fichiers de configuration ; 
 - fichiers de logs critiques ; 
 - exports ; 
 - rapports ; 
 - fichiers de paramétrage ; 
 - certificats si politique autorisée ; 
 - scripts de déploiement ; 
 - versions applicatives ; 
 - configuration équipement. 
 ``` 

 ### 16.3 Interface de sauvegarde base de données 

 **Exemple :** 

 ```text 
 Identifiant : IF-BKP-001 
 Nom : sauvegarde base de données 
 Source : serveur base de données 
 Destination : serveur sauvegarde 
 Usage : sauvegarde périodique des données applicatives 
 Fréquence : quotidienne ou selon politique 
 Format : dump SQL / archive compressée / snapshot selon choix 
 Sécurité : accès restreint, chiffrement si nécessaire 
 Contrôle : code retour, taille fichier, intégrité 
 Tests associés : TEST-BKP-DB-001, TEST-REST-DB-001 
 ``` 

 ### 16.4 Interface de restauration 

 **Exemple :** 

 ```text 
 Identifiant : IF-REST-001 
 Nom : restauration base de données 
 Source : serveur sauvegarde 
 Destination : environnement cible 
 Usage : restaurer une base après incident ou test 
 Préconditions : 
 - sauvegarde identifiée ; 
 - environnement disponible ; 
 - services arrêtés si nécessaire ; 
 - droits administrateur. 
 Résultat attendu : 
 - base restaurée ; 
 - application redémarrée ; 
 - cohérence vérifiée. 
 Tests associés : TEST-REST-DB-001 
 ``` 

 ### 16.5 Erreurs de sauvegarde/restauration 

 **Exemples :** 

 ```text 
 - sauvegarde absente ; 
 - sauvegarde incomplète ; 
 - fichier corrompu ; 
 - espace disque insuffisant ; 
 - droits insuffisants ; 
 - restauration incompatible version ; 
 - service actif empêchant restauration ; 
 - échec contrôle intégrité. 
 ``` 

 ### 16.6 Tests associés 

 **Exemples :** 

 ```text 
 - sauvegarde manuelle ; 
 - sauvegarde planifiée ; 
 - sauvegarde avec espace insuffisant ; 
 - restauration sur environnement de test ; 
 - restauration configuration ; 
 - restauration après mise à jour ; 
 - sauvegarde corrompue refusée ; 
 - alerte échec sauvegarde. 
 ``` 

 --- 

 ## 17. Interfaces de configuration 

 ### 17.1 Objet des interfaces de configuration 

 Cette partie décrit les interfaces permettant de créer, modifier, transmettre, appliquer ou restaurer une configuration. 

 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. 

 ### 17.2 Types de configuration 

 **Exemples :** 

 ```text 
 - configuration équipement ; 
 - configuration firmware ; 
 - configuration serveur ; 
 - configuration IHM ; 
 - configuration alarmes ; 
 - configuration utilisateurs ; 
 - configuration droits ; 
 - configuration réseau ; 
 - configuration sauvegarde ; 
 - configuration supervision. 
 ``` 

 ### 17.3 Interface serveur vers équipement pour configuration 

 **Exemple :** 

 ```text 
 Identifiant : IF-CFG-001 
 Nom : transmission configuration équipement 
 Source : serveur applicatif 
 Destination : firmware embarqué 
 Usage : transmettre une configuration validée à l’équipement 
 Données : 
 - equipment_id ; 
 - config_version ; 
 - thresholds ; 
 - acquisition_periods ; 
 - communication_settings ; 
 - enabled_features. 
 Sécurité : 
 - source autorisée ; 
 - contrôle d’intégrité ; 
 - version ; 
 - journalisation. 
 Réponse attendue : 
 - configuration acceptée ; 
 - configuration rejetée ; 
 - motif rejet. 
 Tests associés : 
 - configuration valide ; 
 - configuration invalide ; 
 - version incompatible ; 
 - acquittement équipement. 
 ``` 

 ### 17.4 Interface d’import/export configuration 

 **Exemples :** 

 ```text 
 - export configuration actuelle ; 
 - import configuration depuis fichier ; 
 - comparaison deux configurations ; 
 - validation avant application ; 
 - historique modifications ; 
 - retour arrière. 
 ``` 

 ### 17.5 Gestion des conflits de configuration 

 Cette partie décrit les situations où deux configurations divergent. 

 **Exemples :** 

 ```text 
 - configuration attendue serveur différente de la configuration déclarée équipement ; 
 - configuration modifiée localement ; 
 - configuration obsolète ; 
 - équipement non synchronisé ; 
 - tentative d’application d’une ancienne version ; 
 - conflit entre deux modifications concurrentes. 
 ``` 

 ### 17.6 Tests associés 

 **Exemples :** 

 ```text 
 - export configuration ; 
 - import configuration valide ; 
 - import configuration invalide ; 
 - transmission configuration ; 
 - équipement accepte ; 
 - équipement refuse ; 
 - divergence détectée ; 
 - retour arrière configuration ; 
 - modification non autorisée refusée. 
 ``` 

 --- 

 ## 18. Interfaces de mise à jour 

 ### 18.1 Objet des interfaces de mise à jour 

 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. 

 ### 18.2 Types de mises à jour 

 **Exemples :** 

 ```text 
 - firmware équipement ; 
 - application serveur ; 
 - base de données ; 
 - IHM ; 
 - configuration ; 
 - certificat ; 
 - scripts ; 
 - règles d’alarme ; 
 - système d’exploitation ; 
 - dépendances logicielles. 
 ``` 

 ### 18.3 Interface de mise à jour firmware 

 **Exemple :** 

 ```text 
 Identifiant : IF-UPD-001 
 Nom : mise à jour firmware 
 Source : serveur ou outil maintenance 
 Destination : équipement embarqué 
 Usage : transmettre et appliquer une nouvelle version firmware 
 Données : 
 - version cible ; 
 - fichier firmware ; 
 - checksum ; 
 - signature si applicable ; 
 - compatibilité hardware ; 
 - instructions de mise à jour. 
 Préconditions : 
 - équipement en mode mise à jour ou maintenance ; 
 - alimentation suffisante ; 
 - paquet valide ; 
 - source autorisée. 
 Réponse attendue : 
 - mise à jour acceptée ; 
 - mise à jour refusée ; 
 - installation réussie ; 
 - installation échouée. 
 ``` 

 ### 18.4 Interface de mise à jour serveur 

 Cette partie décrit la mise à jour applicative. 

 **Exemples :** 

 ```text 
 - paquet applicatif ; 
 - image conteneur ; 
 - scripts de migration ; 
 - fichiers de configuration ; 
 - note de version ; 
 - sauvegarde préalable ; 
 - tests post-déploiement ; 
 - retour arrière. 
 ``` 

 ### 18.5 Erreurs de mise à jour 

 **Exemples :** 

 ```text 
 - paquet invalide ; 
 - checksum incorrect ; 
 - signature invalide ; 
 - version incompatible ; 
 - espace insuffisant ; 
 - coupure réseau ; 
 - coupure alimentation ; 
 - migration base échouée ; 
 - échec redémarrage ; 
 - rollback impossible. 
 ``` 

 ### 18.6 Tests associés 

 **Exemples :** 

 ```text 
 - mise à jour firmware nominale ; 
 - firmware incompatible ; 
 - paquet corrompu ; 
 - coupure pendant mise à jour ; 
 - rollback firmware ; 
 - mise à jour serveur ; 
 - migration base ; 
 - rollback serveur ; 
 - vérification version après mise à jour. 
 ``` 

 --- 

 ## 19. Interfaces d’authentification et droits 

 ### 19.1 Objet des interfaces d’authentification 

 Cette partie décrit les interfaces permettant d’identifier les utilisateurs, équipements, services ou systèmes tiers. 

 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. 

 ### 19.2 Authentification utilisateur 

 **Exemples :** 

 ```text 
 - authentification locale ; 
 - annuaire LDAP ; 
 - SSO ; 
 - OAuth2 ; 
 - OpenID Connect ; 
 - certificat ; 
 - double facteur si applicable. 
 ``` 

 ### 19.3 Authentification équipement 

 **Exemples :** 

 ```text 
 - identifiant équipement ; 
 - certificat client ; 
 - clé API ; 
 - jeton ; 
 - secret partagé ; 
 - signature de message ; 
 - liste blanche ; 
 - contrôle adresse réseau. 
 ``` 

 ### 19.4 Authentification service à service 

 **Exemples :** 

 ```text 
 - serveur applicatif vers base de données ; 
 - serveur vers système tiers ; 
 - serveur vers sauvegarde ; 
 - serveur vers supervision ; 
 - outil maintenance vers équipement ; 
 - API externe vers serveur. 
 ``` 

 ### 19.5 Gestion des droits 

 Cette partie décrit comment les autorisations sont portées par les interfaces. 

 **Exemples :** 

 ```text 
 - rôle utilisateur ; 
 - groupe annuaire ; 
 - permission API ; 
 - droit équipement ; 
 - profil maintenance ; 
 - jeton limité ; 
 - durée de validité ; 
 - révocation. 
 ``` 

 ### 19.6 Tests associés 

 **Exemples :** 

 ```text 
 - connexion utilisateur valide ; 
 - mot de passe invalide ; 
 - compte désactivé ; 
 - rôle insuffisant ; 
 - équipement autorisé ; 
 - équipement inconnu ; 
 - certificat invalide ; 
 - jeton expiré ; 
 - service tiers non autorisé ; 
 - action critique refusée. 
 ``` 

 --- 

 ## 20. Interfaces d’erreur, codes retour et messages d’état 

 ### 20.1 Objet des codes d’erreur 

 Cette partie décrit les erreurs échangées entre composants. 

 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. 

 ### 20.2 Familles de codes d’erreur 

 **Exemples :** 

 ```text 
 - erreur de format ; 
 - erreur de version ; 
 - erreur d’autorisation ; 
 - erreur d’authentification ; 
 - ressource inconnue ; 
 - configuration invalide ; 
 - commande refusée ; 
 - équipement indisponible ; 
 - serveur indisponible ; 
 - base indisponible ; 
 - timeout ; 
 - conflit ; 
 - doublon ; 
 - capacité insuffisante ; 
 - erreur interne. 
 ``` 

 ### 20.3 Exemple de table de codes retour 

 ```text 
 Code | Signification | Action émetteur | Action récepteur 
 OK | message accepté | poursuivre | enregistrer succès 
 BAD_FORMAT | format invalide | corriger / ne pas répéter | journaliser rejet 
 UNAUTHORIZED | source non autorisée | bloquer / alerter | journaliser sécurité 
 UNSUPPORTED_VERSION | version non supportée | utiliser version compatible | alerter compatibilité 
 DUPLICATE | message déjà traité | supprimer de file locale | journaliser si nécessaire 
 RETRY_LATER | traitement temporairement impossible | retransmettre plus tard | surveiller incident 
 INTERNAL_ERROR | erreur serveur | retransmettre ou alerter | analyser logs 
 ``` 

 ### 20.4 Messages d’état 

 Cette partie décrit les statuts échangés. 

 **Exemples :** 

 ```text 
 - connected ; 
 - disconnected ; 
 - degraded ; 
 - maintenance ; 
 - updating ; 
 - safe_state ; 
 - alarm_active ; 
 - alarm_acknowledged ; 
 - configuration_pending ; 
 - synchronization_pending ; 
 - synchronization_done. 
 ``` 

 ### 20.5 Tests associés 

 **Exemples :** 

 ```text 
 - code OK ; 
 - code BAD_FORMAT ; 
 - code UNAUTHORIZED ; 
 - code DUPLICATE ; 
 - code RETRY_LATER ; 
 - code version incompatible ; 
 - message état dégradé ; 
 - message état maintenance ; 
 - erreur non reconnue. 
 ``` 

 --- 

 ## 21. Interfaces temporelles et synchronisation horaire 

 ### 21.1 Objet de la synchronisation horaire 

 Cette partie décrit comment le système gère le temps. 

 La cohérence temporelle est essentielle pour les mesures, alarmes, historiques, événements, diagnostics, logs, resynchronisation et audits. 

 ### 21.2 Sources de temps 

 **Exemples :** 

 ```text 
 - horloge locale équipement ; 
 - horloge serveur ; 
 - serveur NTP ; 
 - horloge RTC ; 
 - temps reçu d’un système tiers ; 
 - temps de réception serveur ; 
 - temps opérateur. 
 ``` 

 ### 21.3 Horodatages échangés 

 **Exemples :** 

 ```text 
 timestamp_device : 
 heure de génération par l’équipement. 

 timestamp_server : 
 heure de réception ou traitement par le serveur. 

 timestamp_ack : 
 heure de l’acquittement. 

 timestamp_event : 
 heure réelle ou estimée de l’événement. 

 timestamp_sync : 
 heure de synchronisation. 
 ``` 

 ### 21.4 Gestion d’une horloge incertaine 

 Cette partie décrit les cas où le temps local n’est pas fiable. 

 **Exemples :** 

 ```text 
 - équipement démarré sans synchronisation ; 
 - RTC absente ; 
 - dérive détectée ; 
 - serveur NTP indisponible ; 
 - horodatage incohérent ; 
 - date future ; 
 - date trop ancienne. 
 ``` 

 **Exigence typique :** 

 ```text 
 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. 
 ``` 

 ### 21.5 Tests associés 

 **Exemples :** 

 ```text 
 - horodatage nominal ; 
 - perte synchronisation ; 
 - données retransmises avec horodatage d’origine ; 
 - date future rejetée ou signalée ; 
 - dérive horaire ; 
 - serveur NTP indisponible ; 
 - affichage horodatage incertain. 
 ``` 

 --- 

 ## 22. Interfaces de journalisation et traçabilité 

 ### 22.1 Objet des interfaces de logs 

 Cette partie décrit les journaux échangés ou produits aux frontières entre composants. 

 Les logs permettent de diagnostiquer les problèmes d’interface et de prouver qu’un échange a eu lieu. 

 ### 22.2 Logs d’échange 

 **Exemples :** 

 ```text 
 - message reçu ; 
 - message rejeté ; 
 - acquittement envoyé ; 
 - commande reçue ; 
 - commande refusée ; 
 - configuration transmise ; 
 - export généré ; 
 - erreur système tiers ; 
 - tentative d’accès non autorisée ; 
 - perte communication ; 
 - resynchronisation. 
 ``` 

 ### 22.3 Corrélation des logs 

 Cette partie est importante pour suivre un échange entre plusieurs composants. 

 **Exemples :** 

 ```text 
 - message_id ; 
 - correlation_id ; 
 - equipment_id ; 
 - user_id ; 
 - request_id ; 
 - alarm_id ; 
 - command_id ; 
 - timestamp_device ; 
 - timestamp_server. 
 ``` 

 ### 22.4 Données interdites dans les logs 

 **Exemples :** 

 ```text 
 - mot de passe ; 
 - clé privée ; 
 - jeton complet ; 
 - secret partagé ; 
 - données personnelles non nécessaires ; 
 - contenu sensible non utile au diagnostic ; 
 - fichier complet si volumineux ou confidentiel. 
 ``` 

 ### 22.5 Tests associés 

 **Exemples :** 

 ```text 
 - log message reçu ; 
 - log message rejeté ; 
 - corrélation message/acquittement ; 
 - log commande ; 
 - absence secret dans logs ; 
 - export logs ; 
 - rotation logs ; 
 - consultation logs par profil autorisé. 
 ``` 

 --- 

 ## 23. Interfaces de tests et simulateurs 

 ### 23.1 Objet des interfaces de test 

 Cette partie décrit les moyens permettant de tester les interfaces sans disposer nécessairement de tous les composants réels. 

 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. 

 ### 23.2 Simulateur d’équipement 

 **Exemples de fonctions :** 

 ```text 
 - envoyer des mesures nominales ; 
 - envoyer des alarmes ; 
 - envoyer des messages invalides ; 
 - simuler une perte réseau ; 
 - simuler une resynchronisation ; 
 - simuler plusieurs équipements ; 
 - simuler un firmware ancien ; 
 - simuler un équipement non autorisé. 
 ``` 

 ### 23.3 Simulateur serveur 

 **Exemples de fonctions :** 

 ```text 
 - accepter un message ; 
 - rejeter un message ; 
 - ne pas acquitter ; 
 - envoyer une configuration ; 
 - envoyer une commande ; 
 - simuler une erreur serveur ; 
 - simuler une version API incompatible. 
 ``` 

 ### 23.4 Simulateur capteur ou hardware 

 **Exemples :** 

 ```text 
 - valeur nominale ; 
 - valeur limite ; 
 - valeur hors plage ; 
 - capteur absent ; 
 - court-circuit ; 
 - contact instable ; 
 - défaut intermittent ; 
 - retour d’état incohérent. 
 ``` 

 ### 23.5 Simulateur système tiers 

 **Exemples :** 

 ```text 
 - réponse nominale ; 
 - timeout ; 
 - rejet authentification ; 
 - erreur format ; 
 - indisponibilité ; 
 - réponse lente ; 
 - doublon ; 
 - message incohérent. 
 ``` 

 ### 23.6 Tests associés 

 **Exemples :** 

 ```text 
 - test interface avec simulateur équipement ; 
 - test serveur avec messages invalides ; 
 - test firmware avec serveur simulé ; 
 - test capteur simulé ; 
 - test système tiers indisponible ; 
 - test de charge messages ; 
 - test protocole ancien ; 
 - test interface en mode dégradé. 
 ``` 

 --- 

 ## 24. Exigences de sécurité des interfaces 

 ### 24.1 Objet de la sécurité des interfaces 

 Cette partie décrit les exigences de protection applicables aux échanges entre composants. 

 Une interface est souvent un point d’entrée potentiel pour les erreurs, abus, attaques, mauvaises configurations ou fuites de données. 

 ### 24.2 Interfaces à protéger en priorité 

 **Exemples :** 

 ```text 
 - équipement vers serveur ; 
 - serveur vers équipement ; 
 - API d’administration ; 
 - interface configuration ; 
 - interface mise à jour ; 
 - interface authentification ; 
 - interface maintenance ; 
 - interface sauvegarde ; 
 - interface système tiers ; 
 - interface logs sensibles. 
 ``` 

 ### 24.3 Mesures de protection possibles 

 **Exemples :** 

 ```text 
 - authentification ; 
 - autorisation ; 
 - chiffrement ; 
 - signature ; 
 - checksum ; 
 - contrôle d’intégrité ; 
 - filtrage réseau ; 
 - validation de format ; 
 - limitation de taille ; 
 - limitation de fréquence ; 
 - journalisation ; 
 - expiration session ; 
 - révocation certificat ; 
 - séparation des rôles. 
 ``` 

 ### 24.4 Validation des entrées 

 Cette partie impose de contrôler les données reçues. 

 **Exemples :** 

 ```text 
 IF-SEC-VAL-001 — Toute donnée reçue via une interface doit être validée avant traitement. 

 IF-SEC-VAL-002 — Les messages mal formés doivent être rejetés sans provoquer de comportement non maîtrisé. 

 IF-SEC-VAL-003 — Les tailles maximales de messages ou fichiers doivent être définies si nécessaire. 

 IF-SEC-VAL-004 — Les fichiers importés doivent être contrôlés avant application. 
 ``` 

 ### 24.5 Gestion des secrets 

 Cette partie décrit les clés, certificats ou jetons utilisés par les interfaces. 

 **Exemples :** 

 ```text 
 - certificat équipement ; 
 - certificat serveur ; 
 - clé API ; 
 - jeton utilisateur ; 
 - mot de passe base de données ; 
 - clé SSH ; 
 - secret système tiers ; 
 - certificat VPN. 
 ``` 

 ### 24.6 Tests associés 

 **Exemples :** 

 ```text 
 - équipement non autorisé ; 
 - certificat invalide ; 
 - message signé invalide ; 
 - jeton expiré ; 
 - utilisateur sans droit ; 
 - fichier importé malveillant ou invalide ; 
 - message trop volumineux ; 
 - tentative accès API admin ; 
 - secret absent des logs. 
 ``` 

 --- 

 ## 25. Matrices de synthèse 

 ### 25.1 Matrice interfaces / sous-systèmes 

 Cette matrice indique quels sous-systèmes sont concernés par chaque interface. 

 **Exemple :** 

 ```text 
 Interface | Hardware | Firmware | Serveur | DB | IHM | Infrastructure | Tiers 
 IF-HW-001 alimentation | X |     |     |     |     | X |   
 IF-SW-HW-001 entrée | X | X |     |     |     |     |   
 IF-NET-001 équipement/serveur |     | X | X |     |     | X |   
 IF-DB-001 serveur/base |     |     | X | X |     | X |   
 IF-IHM-001 tableau bord |     |     | X | X | X |     |   
 IF-TIERS-001 GMAO |     |     | X |     |     | X | X 
 ``` 

 ### 25.2 Matrice interfaces / modes de fonctionnement 

 Cette matrice indique si une interface est active selon les modes. 

 **Exemple :** 

 ```text 
 Interface | Nominal | Maintenance | Dégradé com. | Secours | Mise à jour | Arrêt 
 IF-NET-001 équipement/serveur | oui | limité | non ou tentative | si possible | non | non 
 IF-MNT-001 port maintenance | non/limité | oui | oui | oui | oui | non 
 IF-HW-004 sortie relais | oui | test contrôlé | selon sécurité | non | non | non 
 IF-IHM-ALM alarmes | oui | oui | oui | critique | limité | non 
 ``` 

 ### 25.3 Matrice interfaces / tests 

 Cette matrice relie chaque interface aux tests prévus. 

 **Exemple :** 

 ```text 
 Interface | Test unitaire | Test intégration | Test système | Validation client 
 IF-SW-HW-001 | TU lecture entrée | TI entrée firmware | TS acquisition | VAL acquisition 
 IF-NET-001 | TU format message | TI équipement serveur | TS communication | VAL perte réseau 
 IF-IHM-001 | TU API | TI backend/frontend | TS tableau bord | VAL exploitation 
 IF-BKP-001 | TU script | TI sauvegarde | TS restauration | VAL restauration 
 ``` 

 ### 25.4 Matrice interfaces / responsabilités 

 Cette matrice clarifie qui est responsable de quoi. 

 **Exemple :** 

 ```text 
 Interface | Responsable source | Responsable destination | Responsable spécification | Responsable test 
 IF-HW-002 capteur | client/fournisseur | hardware | responsable hardware | test hardware 
 IF-NET-001 équipement/serveur | firmware | backend | architecte système | intégration 
 IF-IHM-001 tableau bord | backend | frontend | responsable applicatif | test IHM 
 IF-TIERS-001 GMAO | serveur | client IT | architecte applicatif | intégration tiers 
 ``` 

 ### 25.5 Matrice données / interfaces 

 Cette matrice montre quelles données passent par quelles interfaces. 

 **Exemple :** 

 ```text 
 Donnée | IF-HW | IF-SW-HW | IF-NET | IF-DB | IF-IHM | IF-EXP 
 Température | capteur | acquisition | message MEASURE | table mesures | graphique | CSV 
 Alarme | capteur/firmware | événement | message ALARM | table alarmes | écran alarmes | PDF/CSV 
 Configuration | fichier/IHM | firmware | message CONFIG | table config | écran config | JSON 
 Logs | firmware/serveur | diagnostic | message LOG | fichier/table | écran maintenance | archive 
 ``` 

 --- 

 ## 26. Traçabilité 

 ### 26.1 Traçabilité avec la spécification globale 

 Cette partie relie les interfaces aux exigences système. 

 **Exemple :** 

 ```text 
 Exigence système : 
 SYS-COM-004 — Le système doit conserver les données en perte réseau et les retransmettre au retour communication. 

 Interfaces associées : 
 IF-NET-001 — équipement vers serveur ; 
 IF-STO-001 — stockage local firmware ; 
 IF-ACK-001 — acquittement serveur ; 
 IF-DB-001 — historisation serveur ; 
 IF-IHM-ALM-001 — affichage état communication. 
 ``` 

 ### 26.2 Traçabilité avec l’architecture système 

 Cette partie relie chaque interface aux blocs architecturaux. 

 **Exemple :** 

 ```text 
 Interface : 
 IF-NET-001 — équipement vers serveur 

 Blocs concernés : 
 SS-SW-001 — firmware embarqué 
 SS-SRV-001 — serveur applicatif 
 SS-INF-001 — réseau 
 SS-SEC-001 — sécurité 
 ``` 

 ### 26.3 Traçabilité avec les spécifications détaillées 

 Cette partie indique dans quels documents les deux côtés de l’interface sont décrits. 

 **Exemple :** 

 ```text 
 Interface : 
 IF-SW-HW-003 — commande relais 

 Côté hardware : 
 Spécification détaillée hardware, section sorties relais. 

 Côté firmware : 
 Spécification détaillée software embarqué, section commande des sorties. 

 Tests : 
 Tests hardware, tests intégration hardware/software, tests état sûr. 
 ``` 

 ### 26.4 Traçabilité vers les tests 

 Cette partie relie les interfaces aux tests. 

 **Exemple :** 

 ```text 
 Interface : 
 IF-API-MEASURE — API réception mesures 

 Tests associés : 
 TEST-API-MEASURE-001 — message valide. 
 TEST-API-MEASURE-002 — message sans équipement. 
 TEST-API-MEASURE-003 — message dupliqué. 
 TEST-INT-EQP-SRV-001 — équipement réel vers serveur. 
 TEST-SYS-HIST-001 — mesure visible dans historique. 
 ``` 

 ### 26.5 Matrice de traçabilité des interfaces 

 **Structure recommandée :** 

 ```text 
 ID interface 
 Exigence système source 
 Sous-systèmes concernés 
 Documents concernés 
 Données échangées 
 Tests associés 
 Criticité 
 Statut 
 Commentaire 
 ``` 

 --- 

 ## 27. Contraintes, risques et points ouverts 

 ### 27.1 Contraintes techniques 

 Cette partie liste les contraintes connues sur les interfaces. 

 **Exemples :** 

 ```text 
 - protocole imposé par un équipement tiers ; 
 - format de fichier imposé par le client ; 
 - réseau client contraint ; 
 - port réseau non ouvrable ; 
 - bande passante limitée ; 
 - latence élevée ; 
 - connectique imposée ; 
 - version API existante à maintenir ; 
 - compatibilité avec anciens firmwares ; 
 - contrainte de cybersécurité ; 
 - impossibilité d’accès Internet ; 
 - usage obligatoire d’un SAS. 
 ``` 

 ### 27.2 Risques liés aux interfaces 

 Cette partie identifie les risques. 

 **Exemples :** 

 ```text 
 - interprétation différente d’un champ ; 
 - format de message incomplet ; 
 - absence d’acquittement ; 
 - doublons après resynchronisation ; 
 - interface non versionnée ; 
 - protocole tiers instable ; 
 - erreur de câblage ; 
 - polarité mal définie ; 
 - messages trop volumineux ; 
 - absence de test d’erreur ; 
 - sécurité insuffisante ; 
 - logs insuffisants pour diagnostiquer l’échange. 
 ``` 

 ### 27.3 Mesures de réduction des risques 

 **Exemples :** 

 ```text 
 - dictionnaire de données partagé ; 
 - simulateur d’équipement ; 
 - simulateur serveur ; 
 - tests d’intégration précoces ; 
 - versionnement d’API ; 
 - exemples de messages ; 
 - validation de schéma JSON ; 
 - revue d’interface entre équipes ; 
 - matrice responsabilités ; 
 - tests de coupure réseau ; 
 - tests de messages invalides ; 
 - règles d’acquittement explicites ; 
 - journalisation avec correlation_id. 
 ``` 

 ### 27.4 Points ouverts 

 Cette partie liste les décisions non encore prises. 

 **Exemple :** 

 ```text 
 ID | Sujet | Description | Responsable | Échéance | Impact | Statut 
 PO-IF-001 | Protocole équipement/serveur | Choix final HTTPS ou MQTT/TLS | Architecte système | avant conception API | firmware/serveur | ouvert 
 PO-IF-002 | Format export | CSV ou JSON pour export client | Client/exploitation | avant IHM | reporting | ouvert 
 PO-IF-003 | Authentification équipement | Certificat ou jeton | Cybersécurité | avant intégration | sécurité | ouvert 
 PO-IF-004 | Interface GMAO | API disponible ou échange fichier | Client IT | avant intégration tiers | maintenance | ouvert 
 PO-IF-005 | Connecteur capteur | Référence connecteur à confirmer | Hardware/client | avant routage | hardware | ouvert 
 ``` 

 --- 

 ## 28. Critères d’acceptation de la spécification d’interfaces 

 ### 28.1 Complétude 

 Cette partie définit les critères permettant de considérer le document comme complet. 

 **Exemples :** 

 ```text 
 La spécification détaillée des interfaces est considérée comme complète si : 
 - toutes les interfaces identifiées dans l’architecture sont décrites ; 
 - les interfaces hardware sont définies ; 
 - les interfaces firmware/hardware sont définies ; 
 - les interfaces équipement/serveur sont définies ; 
 - les interfaces serveur/base sont définies ; 
 - les interfaces IHM sont définies ; 
 - les interfaces fichiers sont définies ; 
 - les interfaces maintenance sont définies ; 
 - les interfaces systèmes tiers sont définies si applicables ; 
 - les formats de données principaux sont décrits ; 
 - les erreurs et codes retour sont décrits ; 
 - les exigences de sécurité sont définies ; 
 - les tests associés sont identifiés ; 
 - les responsabilités sont claires. 
 ``` 

 ### 28.2 Cohérence 

 Cette partie définit les critères de cohérence. 

 **Exemples :** 

 ```text 
 Le document ne doit pas contenir : 
 - une interface sans source et destination ; 
 - une interface sans responsable ; 
 - un message sans format défini ; 
 - un champ obligatoire non expliqué ; 
 - un acquittement non défini ; 
 - une erreur non gérée ; 
 - une interface critique non sécurisée ; 
 - une interface non testable ; 
 - une contradiction entre firmware et serveur ; 
 - une contradiction entre hardware et firmware ; 
 - une interface externe sans responsabilité client/fournisseur. 
 ``` 

 ### 28.3 Testabilité 

 Cette partie vérifie que les interfaces peuvent être testées. 

 **Exemples :** 

 ```text 
 La spécification est testable si : 
 - les messages nominaux sont décrits ; 
 - les messages invalides peuvent être construits ; 
 - les erreurs sont définies ; 
 - les acquittements sont définis ; 
 - les flux réseau sont identifiés ; 
 - les entrées/sorties hardware peuvent être stimulées ; 
 - les sorties peuvent être observées ; 
 - les simulateurs nécessaires sont identifiés ; 
 - les critères de succès sont explicites. 
 ``` 

 ### 28.4 Exploitabilité et maintenabilité 

 Cette partie vérifie que les interfaces pourront être diagnostiquées en exploitation. 

 **Exemples :** 

 ```text 
 La spécification prend correctement en compte l’exploitation si : 
 - les erreurs d’interface sont journalisées ; 
 - les identifiants de corrélation sont prévus ; 
 - les messages rejetés sont traçables ; 
 - les états de communication sont visibles ; 
 - les interfaces de maintenance sont documentées ; 
 - les versions d’interface sont identifiables ; 
 - les incompatibilités peuvent être diagnostiquées. 
 ``` 

 ### 28.5 Validation du document 

 Cette partie précise les revues nécessaires. 

 **Exemple :** 

 ```text 
 La spécification détaillée des interfaces doit être relue par : 
 - l’ingénieur système ; 
 - le responsable hardware ; 
 - le responsable software embarqué ; 
 - le responsable serveur/application ; 
 - le responsable infrastructure/réseau ; 
 - le responsable cybersécurité ; 
 - le responsable IHM ; 
 - le responsable intégration ; 
 - le responsable validation ; 
 - le représentant client si les interfaces impliquent le SI client ou des équipements tiers. 
 ``` 

 --- 

 ## 29. Annexes 

 ### 29.1 Inventaire complet des interfaces 

 Cette annexe reprend la liste complète des interfaces. 

 **Exemple :** 

 ```text 
 ID | Nom | Type | Source | Destination | Criticité | Statut 
 IF-HW-001 | alimentation | hardware | site | équipement | critique | à valider 
 IF-SW-HW-001 | lecture entrée | firmware/hardware | carte | firmware | élevée | à spécifier 
 IF-NET-001 | équipement/serveur | réseau/API | firmware | serveur | élevée | à valider 
 IF-DB-001 | serveur/base | DB | serveur | base | critique | à spécifier 
 IF-IHM-001 | tableau bord | IHM | utilisateur | serveur | moyenne | à spécifier 
 IF-TIERS-001 | GMAO | API/fichier | serveur | GMAO | moyenne | ouvert 
 ``` 

 ### 29.2 Dictionnaire de données 

 Cette annexe définit les champs échangés. 

 **Exemple :** 

 ```text 
 Champ | Type | Description | Obligatoire | Exemple 
 equipment_id | string | identifiant équipement | oui | EQP-001 
 message_id | string | identifiant message | oui | MSG-0001 
 timestamp_device | datetime | date côté équipement | oui si disponible | 2026-07-03T14:00:00Z 
 severity | enum | criticité alarme | oui pour alarme | minor/major/critical 
 quality | enum | qualité donnée | non/oui selon message | valid/invalid/uncertain 
 ``` 

 ### 29.3 Catalogue des messages 

 Cette annexe reprend les messages échangés. 

 **Exemples :** 

 ```text 
 MEASURE 
 ALARM 
 EVENT 
 STATE 
 DIAGNOSTIC 
 LOG 
 ACK 
 NACK 
 CONFIG 
 COMMAND 
 TIME_SYNC 
 UPDATE_REQUEST 
 ``` 

 ### 29.4 Catalogue des codes d’erreur 

 Cette annexe reprend les codes retour. 

 ### 29.5 Catalogue des flux réseau 

 Cette annexe reprend tous les flux réseau autorisés. 

 ### 29.6 Catalogue des fichiers 

 Cette annexe reprend les formats de fichiers utilisés. 

 ### 29.7 Matrice interfaces / tests 

 Cette annexe reprend la matrice complète de vérification. 

 ### 29.8 Matrice interfaces / responsabilités 

 Cette annexe reprend les responsabilités source, destination, spécification et test. 

 ### 29.9 Exemples complets de messages 

 Cette annexe peut contenir des exemples JSON, XML, CSV ou autres. 

 ### 29.10 Glossaire des interfaces 

 Cette annexe définit les termes spécifiques. 

 ### 29.11 Historique des décisions d’interface 

 Cette annexe conserve les décisions importantes. 

 **Exemple :** 

 ```text 
 DEC-IF-001 : 
 Les échanges équipement/serveur utiliseront des messages avec identifiant unique message_id. 

 Justification : 
 permettre la détection des doublons lors de la resynchronisation après perte réseau. 

 Impact : 
 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. 
 ```