Project

General

Profile

Canevas 7C — Spécification détaillée serveur application supervision » History » Version 5

Redmine Admin, 06/19/2026 04:56 AM

1 1 Redmine Admin
# Canevas 7C — Spécification détaillée serveur / application / supervision
2
3
## 1. Objet du document
4
5
### 1.1 Finalité de la spécification détaillée serveur / application
6
7
Cette partie précise l’objectif du document.
8
9
La spécification détaillée serveur / application décrit les exigences applicables à la partie applicative centrale du système : serveur applicatif, API, base de données, interface opérateur, interface administrateur, gestion des équipements, réception des données, gestion des alarmes, historiques, utilisateurs, droits, supervision applicative, reporting, exports, sauvegarde applicative et interfaces avec les systèmes tiers.
10
11
Elle constitue la déclinaison applicative de la spécification globale, de l’architecture système, du dossier infrastructure, du dossier des modes de fonctionnement et des spécifications d’interfaces.
12
13
Elle doit rester une spécification : elle décrit **ce que la partie serveur doit faire**, sans entrer encore dans le détail de la conception interne du logiciel, des classes, des frameworks, de la structure exacte du code ou du modèle physique détaillé de base de données.
14
15
**Exemple :**
16
17
> Le présent document a pour objectif de spécifier les exigences détaillées applicables au serveur applicatif, à l’application web, aux API, à la base de données, aux fonctions de supervision, d’administration, d’historisation, de gestion des alarmes, de gestion des utilisateurs et d’interfaçage avec les équipements embarqués et systèmes externes.
18
19
### 1.2 Positionnement dans le cycle en V
20
21
Cette partie situe la spécification détaillée serveur / application dans le cycle en V.
22
23
Elle est produite après la spécification globale, l’architecture système, le dossier infrastructure et la spécification des interfaces principales. Elle sert d’entrée à la conception détaillée serveur, à la conception base de données, à la conception API, au développement backend/frontend, aux tests unitaires applicatifs, aux tests d’intégration serveur/équipement, aux tests d’IHM et aux tests système.
24
25
```text
26
Spécification globale
27
28
Architecture système / conception globale
29
30
Dossier infrastructure
31
32
Spécification détaillée serveur / application / supervision
33
34
Conception détaillée serveur / API / base de données / IHM
35
36
Développement backend / frontend / scripts / configuration
37
38
Tests unitaires applicatifs
39
40
Tests d’intégration serveur / DB / IHM
41
42
Tests d’intégration équipement / serveur
43
44
Tests système
45
46
Validation client
47
```
48
49
### 1.3 Différence avec le dossier infrastructure
50
51
Cette partie précise la frontière entre le dossier infrastructure et la spécification applicative.
52
53
Le dossier infrastructure décrit **où et comment l’application est hébergée** : serveurs, réseau, OS, sauvegarde, supervision technique, accès, sécurité infrastructure.
54
55
La spécification serveur / application décrit **ce que l’application doit faire** : recevoir des données, les traiter, les stocker, afficher les états, gérer les alarmes, gérer les utilisateurs, fournir des API, produire des rapports, etc.
56
57
**Exemple :**
58
59
```text
60
Dossier infrastructure :
61
Le serveur applicatif est installé sur SRV-APP-PROD-01 et communique avec SRV-DB-PROD-01 via le VLAN applicatif.
62
63
Spécification serveur / application :
64
Le serveur applicatif doit recevoir les mesures transmises par les équipements, vérifier leur cohérence, les enregistrer en base de données et les rendre consultables via l’interface opérateur.
65
```
66
67
### 1.4 Différence avec la conception détaillée serveur
68
69
Cette partie précise la frontière entre spécification et conception.
70
71
La spécification décrit **les comportements attendus**.
72
La conception détaillée expliquera **comment ces comportements sont réalisés techniquement**.
73
74
**Exemple :**
75
76
```text
77
Spécification détaillée serveur :
78
Le serveur doit permettre la consultation de l’historique des alarmes filtré par équipement, date, criticité et statut.
79
80
Conception détaillée serveur :
81
L’historique des alarmes est exposé via l’endpoint GET /api/alarms/history. Les filtres sont transmis en paramètres de requête. Les résultats sont paginés et triés par horodatage décroissant. La table alarms possède les index equipment_id, severity, status et created_at.
82
```
83
84
### 1.5 Responsabilités de rédaction et d’approbation
85
86
Cette partie précise qui rédige, relit et valide le document.
87
88
La spécification détaillée serveur / application est généralement rédigée par le responsable backend, l’architecte applicatif ou le responsable logiciel serveur, avec contribution de l’ingénieur système, du responsable infrastructure, du responsable IHM, du responsable base de données, du responsable cybersécurité, du responsable validation, de l’exploitation et des futurs utilisateurs.
89
90
**Exemple :**
91
92
```text
93 2 Redmine Admin
Rédaction    : responsable applicatif / architecte logiciel serveur / responsable backend
94 1 Redmine Admin
Contribution : ingénieur système, infrastructure, base de données, IHM, cybersécurité, validation, exploitation
95 2 Redmine Admin
Relecture    : chef de projet technique, responsable qualité, responsable tests
96
Approbation  : responsable technique fournisseur et client si le document est contractuel
97 1 Redmine Admin
```
98
99
---
100
101
## 2. Références et documents applicables
102
103
### 2.1 Documents d’entrée
104
105
Cette partie liste les documents utilisés pour rédiger la spécification serveur / application.
106
107
Ces documents doivent être identifiés, versionnés et approuvés afin que l’application soit spécifiée à partir d’une base stable.
108
109
**Exemples :**
110
111
```text
112
- Cahier des charges / expression du besoin
113
- Dossier de validation client / cahier de recette
114
- Spécification globale / spécification système
115
- Architecture système / conception globale
116
- Dossier des modes de fonctionnement
117
- Dossier infrastructure informatique / réseau / sauvegarde
118
- Spécification détaillée software embarqué
119
- Spécification détaillée hardware
120
- Spécification des interfaces
121
- Contraintes cybersécurité
122
- Contraintes d’exploitation
123
- Contraintes de maintenance
124
- Contraintes de sauvegarde et restauration
125
```
126
127
### 2.2 Documents applicables
128
129
Cette partie liste les documents que l’application doit respecter.
130
131
**Exemples :**
132
133
```text
134
- politique de sécurité informatique client ;
135
- règles de gestion des comptes utilisateurs ;
136
- politique de mots de passe ;
137
- exigences de journalisation ;
138
- règles de conservation des données ;
139
- politique de sauvegarde ;
140
- standard d’ergonomie ou charte IHM ;
141
- standard API ;
142
- standard de développement logiciel ;
143
- règles de gestion de configuration ;
144
- exigences RGPD si données personnelles ;
145
- exigences d’audit ou de traçabilité.
146
```
147
148
### 2.3 Documents produits à partir de cette spécification
149
150
Cette partie liste les documents dérivés.
151
152
**Exemples :**
153
154
```text
155
- conception détaillée serveur ;
156
- conception détaillée API ;
157
- conception détaillée base de données ;
158
- conception détaillée IHM ;
159
- procédures de tests unitaires backend ;
160
- procédures de tests API ;
161
- procédures de tests IHM ;
162
- procédures de tests d’intégration équipement / serveur ;
163
- procédures de tests de sauvegarde applicative ;
164
- manuel utilisateur ;
165
- manuel administrateur ;
166
- manuel exploitant ;
167
- dossier de configuration applicative livrée.
168
```
169
170
### 2.4 Gestion des versions
171
172
Cette partie précise que les versions applicatives doivent être maîtrisées.
173
174
Une évolution côté serveur peut modifier les API, les formats de données, les règles d’alarme, l’IHM, la base de données ou la compatibilité avec les équipements embarqués.
175
176
**Exemple :**
177
178
> Toute modification d’une API, d’un format de message, d’une règle de traitement d’alarme, d’un modèle de données, d’un droit utilisateur ou d’un écran d’exploitation doit faire l’objet d’une analyse d’impact sur le firmware, les tests d’intégration, les procédures de validation, la documentation utilisateur et la configuration livrée.
179
180
---
181
182
## 3. Définitions, acronymes et conventions
183
184
### 3.1 Définitions
185
186
Cette partie définit les termes utilisés dans le document.
187
188
**Exemples :**
189
190
```text
191
Serveur applicatif :
192
Composant logiciel central chargé de recevoir, traiter, stocker et restituer les données du système.
193
194
API :
195
Interface logicielle permettant à un composant externe ou interne d’interagir avec le serveur applicatif.
196
197
Équipement :
198
Unité matérielle ou embarquée communiquant avec le serveur.
199
200
IHM :
201
Interface utilisateur permettant la consultation, l’administration ou l’exploitation du système.
202
203
Alarme active :
204
Alarme dont la condition d’apparition est toujours présente ou non clôturée.
205
206
Historique :
207
Ensemble des données passées conservées pour consultation, diagnostic ou audit.
208
209
Utilisateur habilité :
210
Utilisateur disposant des droits nécessaires pour réaliser une action donnée.
211
```
212
213
### 3.2 Acronymes
214
215
**Exemples :**
216
217
```text
218 3 Redmine Admin
API   : Application Programming Interface
219
BDD   : Base de données
220
CSV   : Comma-Separated Values
221
DB    : Database
222
HTTP  : HyperText Transfer Protocol
223 1 Redmine Admin
HTTPS : HyperText Transfer Protocol Secure
224 3 Redmine Admin
IHM   : Interface Homme-Machine
225
JSON  : JavaScript Object Notation
226
JWT   : JSON Web Token
227
LDAP  : Lightweight Directory Access Protocol
228
REST  : Representational State Transfer
229
TLS   : Transport Layer Security
230
UI    : User Interface
231
VPN   : Virtual Private Network
232 1 Redmine Admin
```
233
234
### 3.3 Convention d’identification des exigences serveur
235
236
Cette partie définit la codification des exigences.
237
238
**Exemple :**
239
240
```text
241 4 Redmine Admin
SRV-REC-001   : exigence de réception de données
242
SRV-VAL-001   : exigence de validation de message
243
SRV-ALM-001   : exigence de gestion des alarmes
244
SRV-HIST-001  : exigence d’historisation
245
SRV-IHM-001   : exigence d’interface utilisateur
246
SRV-USER-001  : exigence de gestion utilisateur
247 1 Redmine Admin
SRV-RIGHT-001 : exigence de droits
248 4 Redmine Admin
SRV-API-001   : exigence API
249
SRV-DB-001    : exigence base de données
250
SRV-EXP-001   : exigence d’export
251
SRV-SUP-001   : exigence de supervision applicative
252
SRV-SEC-001   : exigence de sécurité
253
SRV-TEST-001  : exigence de testabilité
254 1 Redmine Admin
```
255
256
### 3.4 Convention de formulation des exigences
257
258
Cette partie rappelle qu’une exigence doit être claire, vérifiable et non ambiguë.
259
260
**Exemples :**
261
262
```text
263
Correct :
264
SRV-REC-001 — Le serveur doit recevoir les messages de mesure transmis par les équipements autorisés.
265
266
Incorrect :
267
Le serveur doit bien récupérer les données.
268
269
Correct :
270
SRV-ALM-003 — Le serveur doit afficher les alarmes actives avec leur identifiant, criticité, équipement concerné, date d’apparition et statut.
271
272
Incorrect :
273
Le serveur doit afficher correctement les alarmes.
274
```
275
276
### 3.5 Convention de criticité
277
278
Cette partie permet de classer les exigences selon leur importance.
279
280
**Exemple :**
281
282
```text
283
Critique :
284
sécurité, état sûr, alarmes critiques, intégrité des données, accès non autorisé.
285
286
Élevée :
287
fonction majeure d’exploitation, communication équipement, historisation, supervision.
288
289
Moyenne :
290
fonction importante mais non bloquante pour le fonctionnement principal.
291
292
Faible :
293
fonction de confort, affichage secondaire, export optionnel ou amélioration ergonomique.
294
```
295
296
---
297
298
## 4. Vue générale de l’application serveur
299
300
### 4.1 Présentation générale
301
302
Cette partie décrit le rôle de la partie serveur dans le système global.
303
304
Elle doit permettre de comprendre ce que le serveur apporte par rapport à l’équipement embarqué : centralisation, historisation, interface utilisateur, administration, supervision, reporting, consolidation multi-équipements et intégration avec d’autres systèmes.
305
306
**Exemple :**
307
308
> La partie serveur assure la réception des données transmises par les équipements embarqués, leur validation, leur historisation, la consolidation des états, la gestion des alarmes, l’accès aux interfaces opérateur et administrateur, la gestion des utilisateurs, les exports, les rapports et la supervision applicative.
309
310
### 4.2 Fonctions principales
311
312
Cette partie liste les grandes fonctions applicatives.
313
314
**Exemples :**
315
316
```text
317
- réception des données équipements ;
318
- validation des messages reçus ;
319
- historisation des mesures ;
320
- gestion des alarmes ;
321
- gestion des événements ;
322
- affichage des états équipements ;
323
- affichage des historiques ;
324
- gestion des utilisateurs ;
325
- gestion des droits ;
326
- gestion des configurations ;
327
- interface opérateur ;
328
- interface administrateur ;
329
- interface maintenance ;
330
- API ;
331
- exports ;
332
- reporting ;
333
- supervision applicative ;
334
- journalisation ;
335
- sauvegarde applicative ;
336
- interface avec systèmes tiers.
337
```
338
339
### 4.3 Frontières applicatives
340
341
Cette partie précise ce qui relève de l’application et ce qui relève d’autres sous-systèmes.
342
343
**Exemple :**
344
345
```text
346
Inclus dans l’application serveur :
347
- réception des données ;
348
- traitement des alarmes ;
349
- stockage en base ;
350
- interface web ;
351
- gestion utilisateurs ;
352
- API ;
353
- exports ;
354
- logs applicatifs.
355
356
Externe à l’application serveur :
357
- système d’exploitation ;
358
- réseau physique ;
359
- sauvegarde infrastructure ;
360
- firmware embarqué ;
361
- capteurs physiques ;
362
- administration générale du SI client ;
363
- système de supervision client externe.
364
```
365
366
### 4.4 Interactions avec les équipements embarqués
367
368
Cette partie décrit les échanges entre le serveur et les équipements.
369
370
**Exemples :**
371
372
```text
373
- réception de mesures ;
374
- réception d’alarmes ;
375
- réception d’événements ;
376
- réception de diagnostics ;
377
- envoi d’acquittements ;
378
- envoi de configuration ;
379
- envoi de commandes autorisées ;
380
- demande de resynchronisation ;
381
- suivi de l’état de connexion.
382
```
383
384
### 4.5 Interactions avec les utilisateurs
385
386
Cette partie décrit les profils utilisateurs qui interagissent avec l’application.
387
388
**Exemples :**
389
390
```text
391
- opérateur ;
392
- technicien de maintenance ;
393
- administrateur ;
394
- superviseur ;
395
- utilisateur lecture seule ;
396
- support technique ;
397
- responsable exploitation.
398
```
399
400
### 4.6 Interactions avec l’infrastructure
401
402
Cette partie décrit les dépendances techniques.
403
404
**Exemples :**
405
406
```text
407
- base de données ;
408
- serveur web ;
409
- reverse proxy ;
410
- certificat TLS ;
411
- système de fichiers ;
412
- serveur de sauvegarde ;
413
- service de supervision ;
414
- service d’authentification ;
415
- réseau ;
416
- DNS ;
417
- horloge NTP.
418
```
419
420
---
421
422
## 5. Exigences de réception des données équipements
423
424
### 5.1 Objet de la réception des données
425
426
Cette partie décrit la capacité du serveur à recevoir les messages transmis par les équipements embarqués.
427
428
Ces messages peuvent contenir des mesures, états, alarmes, événements, informations de diagnostic, versions, logs ou résultats de commandes.
429
430
### 5.2 Types de données reçues
431
432
**Exemples :**
433
434
```text
435
- mesures périodiques ;
436
- mesures événementielles ;
437
- alarmes ;
438
- événements système ;
439
- changements de mode ;
440
- états de communication ;
441
- informations de diagnostic ;
442
- logs ;
443
- configuration active ;
444
- version firmware ;
445
- résultat de commande ;
446
- données resynchronisées après perte réseau.
447
```
448
449
### 5.3 Identification de l’équipement émetteur
450
451
Cette partie décrit comment le serveur identifie l’origine des données.
452
453
**Exemples d’exigences :**
454
455
```text
456
SRV-REC-001 — Le serveur doit identifier l’équipement émetteur de chaque message reçu.
457
458
SRV-REC-002 — Le serveur doit refuser ou signaler un message provenant d’un équipement non connu si cette situation est considérée comme anormale.
459
460
SRV-REC-003 — Le serveur doit associer chaque donnée reçue à l’équipement correspondant.
461
```
462
463
**Exemple explicatif :**
464
465
> Chaque message reçu doit contenir ou permettre de déterminer l’identifiant de l’équipement. Cet identifiant permet de rattacher les mesures, alarmes et événements au bon objet dans l’IHM et dans l’historique.
466
467
### 5.4 Horodatage des données reçues
468
469
Cette partie décrit la gestion du temps.
470
471
Il faut distinguer l’horodatage produit par l’équipement et l’horodatage de réception serveur.
472
473
**Exemples :**
474
475
```text
476
SRV-REC-TIME-001 — Le serveur doit conserver l’horodatage d’origine transmis par l’équipement lorsque celui-ci est disponible.
477
478
SRV-REC-TIME-002 — Le serveur doit ajouter un horodatage de réception serveur.
479
480
SRV-REC-TIME-003 — Le serveur doit permettre d’identifier les données dont l’horodatage d’origine est absent, incertain ou incohérent.
481
```
482
483
**Exemple :**
484
485
```text
486
Horodatage équipement : 2026-07-03 14:02:10
487
Horodatage réception serveur : 2026-07-03 14:05:42
488
Cas possible : donnée retransmise après perte réseau.
489
```
490
491
### 5.5 Acquittement des messages
492
493
Cette partie décrit le comportement du serveur après réception.
494
495
**Exemples :**
496
497
```text
498
SRV-REC-ACK-001 — Le serveur doit produire un acquittement pour les messages nécessitant une confirmation de réception.
499
500
SRV-REC-ACK-002 — L’acquittement doit permettre à l’équipement de déterminer si le message a été accepté, rejeté ou mis en attente.
501
502
SRV-REC-ACK-003 — En cas de rejet, le serveur doit fournir un motif exploitable si le protocole le permet.
503
```
504
505
### 5.6 Gestion des messages dupliqués
506
507
Cette partie est importante lors des resynchronisations après perte réseau.
508
509
**Exemples :**
510
511
```text
512
SRV-REC-DUP-001 — Le serveur doit détecter ou gérer les doublons de messages si le protocole d’échange le permet.
513
514
SRV-REC-DUP-002 — Un message retransmis après perte réseau ne doit pas créer de doublon fonctionnel dans les historiques critiques.
515
516
SRV-REC-DUP-003 — Les doublons détectés doivent être ignorés, fusionnés ou historisés selon la règle définie.
517
```
518
519
### 5.7 Gestion des messages en retard
520
521
Cette partie décrit les données reçues tardivement.
522
523
**Exemple :**
524
525
```text
526
SRV-REC-LATE-001 — Le serveur doit accepter les données retransmises après une période de perte communication, en conservant leur horodatage d’origine.
527
528
SRV-REC-LATE-002 — Le serveur doit permettre d’identifier les données reçues en différé si cette information est utile à l’exploitation.
529
```
530
531
### 5.8 Tests associés
532
533
**Exemples :**
534
535
```text
536
- réception mesure nominale ;
537
- réception alarme ;
538
- réception événement ;
539
- réception message équipement inconnu ;
540
- réception message sans horodatage ;
541
- réception message retransmis ;
542
- réception doublon ;
543
- acquittement accepté ;
544
- acquittement rejeté ;
545
- réception données après coupure réseau.
546
```
547
548
---
549
550
## 6. Exigences de validation des messages
551
552
### 6.1 Objet de la validation des messages
553
554
Cette partie décrit les contrôles réalisés par le serveur avant d’accepter une donnée.
555
556
La validation protège l’intégrité du système contre les messages incomplets, incohérents, mal formés, incompatibles ou non autorisés.
557
558
### 6.2 Contrôles de format
559
560
**Exemples :**
561
562
```text
563
SRV-VAL-FMT-001 — Le serveur doit vérifier que le message reçu respecte le format attendu.
564
565
SRV-VAL-FMT-002 — Le serveur doit rejeter un message dont la structure est invalide.
566
567
SRV-VAL-FMT-003 — Le serveur doit journaliser les erreurs de format répétées.
568
```
569
570
### 6.3 Contrôles de contenu
571
572
Cette partie décrit la vérification des champs obligatoires.
573
574
**Exemples :**
575
576
```text
577
- identifiant équipement ;
578
- type de message ;
579
- horodatage ;
580
- numéro ou identifiant de message ;
581
- version de protocole ;
582
- données mesurées ;
583
- unité ;
584
- criticité ;
585
- statut ;
586
- signature ou contrôle d’intégrité si applicable.
587
```
588
589
**Exemple d’exigence :**
590
591
```text
592
SRV-VAL-CONT-001 — Le serveur doit refuser un message de mesure ne contenant pas l’identifiant équipement ou la valeur mesurée.
593
```
594
595
### 6.4 Contrôles de cohérence
596
597
Cette partie décrit les règles métier ou techniques.
598
599
**Exemples :**
600
601
```text
602
- valeur hors plage ;
603
- unité inconnue ;
604
- équipement non compatible ;
605
- version protocole non supportée ;
606
- date future incohérente ;
607
- message plus ancien que la dernière donnée connue ;
608
- alarme sans équipement associé ;
609
- statut invalide ;
610
- criticité inconnue.
611
```
612
613
### 6.5 Contrôle d’autorisation
614
615
Cette partie décrit les contrôles d’origine du message.
616
617
**Exemples :**
618
619
```text
620
SRV-VAL-AUTH-001 — Le serveur doit accepter uniquement les messages provenant d’équipements autorisés.
621
622
SRV-VAL-AUTH-002 — Un équipement désactivé ne doit pas pouvoir alimenter les historiques de production sans décision explicite.
623
624
SRV-VAL-AUTH-003 — Les erreurs d’autorisation doivent être journalisées.
625
```
626
627
### 6.6 Gestion des messages rejetés
628
629
Cette partie décrit ce que le serveur fait des messages invalides.
630
631
**Exemples :**
632
633
```text
634
- rejet simple ;
635
- journalisation ;
636
- alerte technique ;
637
- conservation en quarantaine ;
638
- réponse d’erreur à l’équipement ;
639
- incrément d’un compteur d’erreurs ;
640
- blocage temporaire si erreurs répétées ;
641
- création d’un incident si seuil dépassé.
642
```
643
644
### 6.7 Tests associés
645
646
**Exemples :**
647
648
```text
649
- message valide ;
650
- message mal formé ;
651
- champ obligatoire absent ;
652
- valeur hors plage ;
653
- protocole non supporté ;
654
- équipement inconnu ;
655
- équipement désactivé ;
656
- message avec horodatage futur ;
657
- erreurs répétées ;
658
- journalisation du rejet.
659
```
660
661
---
662
663
## 7. Exigences de gestion des équipements
664
665
### 7.1 Objet de la gestion des équipements
666
667
Cette partie décrit comment le serveur connaît, affiche, administre et suit les équipements embarqués.
668
669
Un équipement doit être identifié, rattaché à une configuration, éventuellement à un site ou une zone, et associé à des données, alarmes, historiques et états.
670
671
### 7.2 Fiche équipement
672
673
Cette partie décrit les informations minimales associées à un équipement.
674
675
**Exemple :**
676
677
```text
678
Identifiant équipement :
679
Nom affiché :
680
Numéro de série :
681
Type :
682
Version hardware :
683
Version firmware :
684
Site :
685
Zone :
686
Adresse ou localisation :
687
Statut administratif : actif / inactif / maintenance / retiré
688
Dernière communication :
689
Configuration associée :
690
Date de mise en service :
691
Commentaires :
692
```
693
694
### 7.3 Création d’un équipement
695
696
**Exemples :**
697
698
```text
699
SRV-EQP-001 — Le serveur doit permettre la création d’un équipement par un utilisateur habilité.
700
701
SRV-EQP-002 — Chaque équipement doit disposer d’un identifiant unique.
702
703
SRV-EQP-003 — Le serveur doit empêcher la création de deux équipements actifs avec le même identifiant technique.
704
```
705
706
### 7.4 Activation et désactivation d’un équipement
707
708
Cette partie décrit les statuts administratifs.
709
710
**Exemples :**
711
712
```text
713
SRV-EQP-010 — Le serveur doit permettre de désactiver un équipement sans supprimer son historique.
714
715
SRV-EQP-011 — Un équipement désactivé ne doit plus être affiché comme équipement opérationnel actif.
716
717
SRV-EQP-012 — Les données reçues d’un équipement désactivé doivent être rejetées, ignorées ou signalées selon la règle définie.
718
```
719
720
### 7.5 État de connexion
721
722
Cette partie décrit comment le serveur affiche la connectivité.
723
724
**Exemples :**
725
726
```text
727
- connecté ;
728
- non joignable ;
729
- jamais connecté ;
730
- en retard de communication ;
731
- en maintenance ;
732
- désactivé ;
733
- état inconnu.
734
```
735
736
**Exemple d’exigence :**
737
738
```text
739
SRV-EQP-COM-001 — Le serveur doit afficher l’état de communication de chaque équipement actif.
740
```
741
742
### 7.6 Association équipement / configuration
743
744
Cette partie décrit comment une configuration est associée à un équipement.
745
746
**Exemples :**
747
748
```text
749
SRV-EQP-CFG-001 — Le serveur doit associer chaque équipement à une configuration active.
750
751
SRV-EQP-CFG-002 — Le serveur doit conserver l’historique des configurations appliquées à un équipement si cette traçabilité est requise.
752
753
SRV-EQP-CFG-003 — Le serveur doit signaler une divergence entre la configuration attendue et la configuration déclarée par l’équipement.
754
```
755
756
### 7.7 Tests associés
757
758
**Exemples :**
759
760
```text
761
- création équipement ;
762
- création doublon refusée ;
763
- désactivation équipement ;
764
- réception message équipement désactivé ;
765
- affichage état connecté ;
766
- affichage état non joignable ;
767
- changement de configuration ;
768
- consultation historique équipement.
769
```
770
771
---
772
773
## 8. Exigences de gestion des alarmes
774
775
### 8.1 Objet de la gestion des alarmes
776
777
Cette partie décrit comment le serveur reçoit, crée, consolide, affiche, historise et clôture les alarmes.
778
779
Certaines alarmes sont générées par l’équipement embarqué. D’autres peuvent être générées directement par le serveur, par exemple absence de communication, échec de sauvegarde applicative, incohérence de données ou erreur de traitement.
780
781
### 8.2 Sources d’alarmes
782
783
**Exemples :**
784
785
```text
786
- équipement embarqué ;
787
- serveur applicatif ;
788
- base de données ;
789
- supervision applicative ;
790
- infrastructure ;
791
- utilisateur ;
792
- système tiers ;
793
- processus de sauvegarde ;
794
- processus de synchronisation.
795
```
796
797
### 8.3 Informations associées à une alarme
798
799
**Exemples d’exigences :**
800
801
```text
802
SRV-ALM-001 — Chaque alarme doit comporter un identifiant ou type d’alarme.
803
804
SRV-ALM-002 — Chaque alarme doit être associée à un équipement, un service ou un composant lorsque cette association est applicable.
805
806
SRV-ALM-003 — Chaque alarme doit comporter une criticité.
807
808
SRV-ALM-004 — Chaque alarme doit comporter une date d’apparition.
809
810
SRV-ALM-005 — Chaque alarme doit comporter un statut : active, acquittée, disparue, clôturée ou historisée selon le modèle retenu.
811
```
812
813
### 8.4 Niveaux de criticité
814
815
Cette partie décrit la classification.
816
817
**Exemple :**
818
819
```text
820
Information :
821
événement à historiser sans action immédiate.
822
823
Mineure :
824
défaut limité, sans impact significatif immédiat.
825
826
Majeure :
827
défaut impactant une fonction importante ou nécessitant intervention.
828
829
Critique :
830
défaut impactant la sécurité, la disponibilité, les données critiques ou l’état sûr.
831
```
832
833
### 8.5 Alarme active et historique
834
835
Cette partie distingue les alarmes présentes des alarmes passées.
836
837
**Exemples :**
838
839
```text
840
SRV-ALM-ACT-001 — Le serveur doit afficher séparément les alarmes actives et l’historique des alarmes.
841
842
SRV-ALM-ACT-002 — Une alarme active doit rester visible tant que sa condition de clôture n’est pas satisfaite.
843
844
SRV-ALM-HIST-001 — Les alarmes clôturées doivent être conservées dans l’historique.
845
```
846
847
### 8.6 Acquittement des alarmes
848
849
Cette partie décrit les règles d’acquittement.
850
851
**Exemples :**
852
853
```text
854
SRV-ALM-ACK-001 — Le serveur doit permettre l’acquittement d’une alarme par un utilisateur habilité.
855
856
SRV-ALM-ACK-002 — L’acquittement doit être journalisé avec l’identité de l’utilisateur, la date et l’alarme concernée.
857
858
SRV-ALM-ACK-003 — L’acquittement ne doit pas supprimer l’alarme si la condition d’apparition est toujours présente.
859
860
SRV-ALM-ACK-004 — Certaines alarmes critiques peuvent nécessiter une action spécifique avant clôture.
861
```
862
863
### 8.7 Clôture des alarmes
864
865
Cette partie décrit comment une alarme se termine.
866
867
**Exemples :**
868
869
```text
870
- disparition automatique de la condition ;
871
- retour à la normale signalé par l’équipement ;
872
- action de maintenance ;
873
- acquittement + disparition ;
874
- clôture administrative par utilisateur habilité ;
875
- remplacement d’équipement ;
876
- correction serveur.
877
```
878
879
### 8.8 Consolidation et anti-doublon
880
881
Cette partie évite la multiplication excessive d’alarmes.
882
883
**Exemples :**
884
885
```text
886
SRV-ALM-DUP-001 — Le serveur doit éviter la création d’alarmes dupliquées pour un même défaut actif sur un même équipement.
887
888
SRV-ALM-DUP-002 — Si un défaut persiste, le serveur doit mettre à jour l’alarme existante plutôt que créer une nouvelle alarme à chaque message.
889
890
SRV-ALM-DUP-003 — Les répétitions peuvent être historisées sous forme de compteur ou d’événements associés.
891
```
892
893
### 8.9 Affichage des alarmes
894
895
Cette partie décrit les besoins de l’IHM.
896
897
**Exemples :**
898
899
```text
900
- liste des alarmes actives ;
901
- couleur ou pictogramme selon criticité ;
902
- filtre par équipement ;
903
- filtre par site ;
904
- filtre par criticité ;
905
- filtre par statut ;
906
- tri par date ;
907
- détail alarme ;
908
- historique ;
909
- export ;
910
- acquittement.
911
```
912
913
### 8.10 Tests associés
914
915
**Exemples :**
916
917
```text
918
- réception alarme équipement ;
919
- création alarme serveur ;
920
- affichage alarme active ;
921
- acquittement autorisé ;
922
- acquittement refusé ;
923
- clôture alarme ;
924
- historique alarme ;
925
- anti-doublon ;
926
- filtre criticité ;
927
- export historique alarmes.
928
```
929
930
---
931
932
## 9. Exigences d’historisation des données
933
934
### 9.1 Objet de l’historisation
935
936
Cette partie décrit les données à conserver dans le temps.
937
938
L’historisation permet la consultation, l’analyse, le diagnostic, la preuve, le reporting et la maintenance. Elle concerne les mesures, alarmes, événements, commandes, changements de configuration, connexions utilisateurs et opérations d’administration.
939
940
### 9.2 Données historisées
941
942
**Exemples :**
943
944
```text
945
- mesures ;
946
- états équipements ;
947
- alarmes ;
948
- événements ;
949
- transitions de mode ;
950
- commandes ;
951
- modifications de configuration ;
952
- connexions utilisateurs ;
953
- erreurs applicatives ;
954
- exports ;
955
- opérations de maintenance ;
956
- mises à jour ;
957
- sauvegardes ;
958
- restaurations.
959
```
960
961
### 9.3 Historisation des mesures
962
963
**Exemples :**
964
965
```text
966
SRV-HIST-MES-001 — Le serveur doit enregistrer les mesures reçues des équipements autorisés.
967
968
SRV-HIST-MES-002 — Chaque mesure historisée doit être associée à un équipement, un type de mesure, une valeur, une unité et un horodatage.
969
970
SRV-HIST-MES-003 — Les mesures retransmises après perte réseau doivent être historisées avec leur horodatage d’origine.
971
```
972
973
### 9.4 Historisation des événements
974
975
**Exemples :**
976
977
```text
978
SRV-HIST-EVT-001 — Le serveur doit historiser les événements significatifs transmis par les équipements.
979
980
SRV-HIST-EVT-002 — Le serveur doit historiser les événements applicatifs significatifs.
981
982
SRV-HIST-EVT-003 — Les événements doivent être consultables avec des filtres par date, type, équipement et criticité si applicable.
983
```
984
985
### 9.5 Durées de conservation
986
987
Cette partie précise combien de temps les données doivent être conservées.
988
989
**Exemple :**
990
991
```text
992
Mesures détaillées     : 12 mois
993
Alarmes                : 24 mois
994
Événements critiques   : 24 mois
995
Logs applicatifs       : 90 jours
996
Actions administrateur : 12 mois
997
Exports temporaires    : 30 jours
998
```
999
1000
### 9.6 Purge et archivage
1001
1002
Cette partie décrit ce qui se passe lorsque les données deviennent anciennes.
1003
1004
**Exemples :**
1005
1006
```text
1007
SRV-HIST-ARCH-001 — Le serveur doit permettre l’archivage ou la purge des données selon la politique de conservation définie.
1008
1009
SRV-HIST-ARCH-002 — La purge ne doit pas supprimer des données encore nécessaires à une obligation contractuelle, réglementaire ou de maintenance.
1010
1011
SRV-HIST-ARCH-003 — Les opérations de purge ou d’archivage doivent être journalisées si elles concernent des données critiques.
1012
```
1013
1014
### 9.7 Consultation des historiques
1015
1016
Cette partie décrit les fonctions de recherche.
1017
1018
**Exemples :**
1019
1020
```text
1021
- filtre par équipement ;
1022
- filtre par période ;
1023
- filtre par type de donnée ;
1024
- filtre par criticité ;
1025
- filtre par statut ;
1026
- tri ;
1027
- pagination ;
1028
- export ;
1029
- affichage graphique ;
1030
- comparaison entre équipements.
1031
```
1032
1033
### 9.8 Tests associés
1034
1035
**Exemples :**
1036
1037
```text
1038
- historisation mesure ;
1039
- historisation alarme ;
1040
- historisation événement ;
1041
- consultation par période ;
1042
- filtre par équipement ;
1043
- conservation horodatage d’origine ;
1044
- purge contrôlée ;
1045
- export historique ;
1046
- performance sur historique volumineux.
1047
```
1048
1049
---
1050
1051
## 10. Exigences de base de données
1052
1053
### 10.1 Objet de la base de données
1054
1055
Cette partie décrit le rôle de la base de données dans l’application.
1056
1057
Elle stocke les données opérationnelles, historiques, configurations, utilisateurs, alarmes, événements, droits, traces et paramètres.
1058
1059
### 10.2 Familles de données en base
1060
1061
**Exemples :**
1062
1063
```text
1064
- équipements ;
1065
- mesures ;
1066
- alarmes ;
1067
- événements ;
1068
- utilisateurs ;
1069
- rôles ;
1070
- droits ;
1071
- configurations ;
1072
- journaux ;
1073
- commandes ;
1074
- rapports ;
1075
- exports ;
1076
- paramètres applicatifs ;
1077
- versions ;
1078
- incidents.
1079
```
1080
1081
### 10.3 Exigences d’intégrité
1082
1083
Cette partie décrit les règles permettant d’éviter les données incohérentes.
1084
1085
**Exemples :**
1086
1087
```text
1088
SRV-DB-INT-001 — Une mesure historisée doit être rattachée à un équipement identifié.
1089
1090
SRV-DB-INT-002 — Une alarme doit être rattachée à un équipement, un service ou une source identifiée lorsque cela est applicable.
1091
1092
SRV-DB-INT-003 — La suppression d’un équipement ne doit pas entraîner la perte non maîtrisée de son historique.
1093
1094
SRV-DB-INT-004 — Les modifications de configuration doivent être historisées si la traçabilité est requise.
1095
```
1096
1097
### 10.4 Exigences de performance base de données
1098
1099
**Exemples :**
1100
1101
```text
1102
SRV-DB-PERF-001 — La base de données doit permettre la consultation des alarmes actives dans un délai compatible avec l’exploitation.
1103
1104
SRV-DB-PERF-002 — La consultation des historiques doit rester possible sur la période de conservation définie.
1105
1106
SRV-DB-PERF-003 — Les requêtes fréquentes doivent être compatibles avec le nombre d’équipements et le volume de données prévu.
1107
```
1108
1109
### 10.5 Migration de base de données
1110
1111
Cette partie décrit les évolutions de schéma.
1112
1113
**Exemples :**
1114
1115
```text
1116
SRV-DB-MIG-001 — Toute évolution du modèle de données doit être associée à une procédure de migration.
1117
1118
SRV-DB-MIG-002 — Une migration de base doit être testée sur un environnement représentatif avant production.
1119
1120
SRV-DB-MIG-003 — Un retour arrière ou une sauvegarde préalable doit être prévu avant migration critique.
1121
```
1122
1123
### 10.6 Sauvegarde de base de données
1124
1125
Cette partie renvoie au dossier infrastructure, mais précise les exigences applicatives.
1126
1127
**Exemples :**
1128
1129
```text
1130
SRV-DB-BKP-001 — Les données applicatives critiques doivent être sauvegardables.
1131
1132
SRV-DB-BKP-002 — La restauration d’une sauvegarde doit permettre le redémarrage cohérent de l’application.
1133
1134
SRV-DB-BKP-003 — Le serveur doit permettre de vérifier la cohérence applicative après restauration.
1135
```
1136
1137
### 10.7 Tests associés
1138
1139
**Exemples :**
1140
1141
```text
1142
- création mesure ;
1143
- création alarme ;
1144
- intégrité équipement / mesure ;
1145
- conservation historique après désactivation équipement ;
1146
- migration base ;
1147
- restauration base ;
1148
- performance requête historique ;
1149
- purge ancienne donnée.
1150
```
1151
1152
---
1153
1154
## 11. Exigences d’API
1155
1156
### 11.1 Objet des API
1157
1158
Cette partie décrit les interfaces logicielles exposées ou consommées par le serveur.
1159
1160
Il peut s’agir d’API entre équipement et serveur, entre IHM et serveur, entre serveur et système tiers, ou entre services internes.
1161
1162
### 11.2 Types d’API
1163
1164
**Exemples :**
1165
1166
```text
1167
- API de réception équipements ;
1168
- API de consultation IHM ;
1169
- API d’administration ;
1170
- API de configuration ;
1171
- API de diagnostic ;
1172
- API d’export ;
1173
- API de supervision ;
1174
- API vers système tiers ;
1175
- API interne entre services.
1176
```
1177
1178
### 11.3 API équipement / serveur
1179
1180
Cette partie décrit les exigences générales de l’API utilisée par les équipements.
1181
1182
**Exemples :**
1183
1184
```text
1185
SRV-API-EQP-001 — Le serveur doit exposer ou utiliser une interface permettant la réception des messages équipements.
1186
1187
SRV-API-EQP-002 — L’API équipement doit permettre l’identification de l’équipement émetteur.
1188
1189
SRV-API-EQP-003 — L’API équipement doit permettre l’acquittement des messages reçus si le protocole le prévoit.
1190
1191
SRV-API-EQP-004 — L’API équipement doit rejeter les messages invalides.
1192
```
1193
1194
### 11.4 API IHM / serveur
1195
1196
Cette partie décrit les échanges entre l’interface utilisateur et le backend.
1197
1198
**Exemples :**
1199
1200
```text
1201
- consultation état équipements ;
1202
- consultation alarmes actives ;
1203
- consultation historiques ;
1204
- acquittement alarme ;
1205
- gestion utilisateurs ;
1206
- modification configuration ;
1207
- export rapport ;
1208
- consultation logs autorisés.
1209
```
1210
1211
### 11.5 API systèmes tiers
1212
1213
Cette partie décrit les intégrations externes.
1214
1215
**Exemples :**
1216
1217
```text
1218
- export vers supervision client ;
1219
- synchronisation avec GMAO ;
1220
- envoi notification ;
1221
- import de référentiel équipements ;
1222
- export CSV ou JSON ;
1223
- connexion à annuaire utilisateur ;
1224
- interface avec ERP.
1225
```
1226
1227
### 11.6 Versionnement des API
1228
1229
Cette partie est essentielle pour éviter les incompatibilités.
1230
1231
**Exemples :**
1232
1233
```text
1234
SRV-API-VER-001 — Les API exposées à des composants externes doivent être versionnées si elles peuvent évoluer.
1235
1236
SRV-API-VER-002 — Une évolution incompatible d’API doit être documentée.
1237
1238
SRV-API-VER-003 — La compatibilité entre version firmware et version API serveur doit être documentée.
1239
```
1240
1241
### 11.7 Gestion des erreurs API
1242
1243
**Exemples :**
1244
1245
```text
1246
- erreur format ;
1247
- authentification échouée ;
1248
- autorisation insuffisante ;
1249
- ressource inconnue ;
1250
- conflit ;
1251
- erreur serveur ;
1252
- timeout ;
1253
- service indisponible.
1254
```
1255
1256
### 11.8 Tests associés
1257
1258
**Exemples :**
1259
1260
```text
1261
- appel API valide ;
1262
- appel API sans authentification ;
1263
- appel API utilisateur non autorisé ;
1264
- format invalide ;
1265
- version API incompatible ;
1266
- erreur serveur simulée ;
1267
- pagination ;
1268
- filtre ;
1269
- performance API ;
1270
- compatibilité firmware/API.
1271
```
1272
1273
---
1274
1275
## 12. Exigences d’interface utilisateur opérateur
1276
1277
### 12.1 Objet de l’IHM opérateur
1278
1279
Cette partie décrit l’interface destinée aux utilisateurs d’exploitation.
1280
1281
Elle doit permettre de comprendre l’état du système, visualiser les équipements, consulter les alarmes, suivre les événements, rechercher dans les historiques et effectuer les actions autorisées.
1282
1283
### 12.2 Tableau de bord
1284
1285
**Exemples d’exigences :**
1286
1287
```text
1288
SRV-IHM-DASH-001 — L’IHM doit présenter un tableau de bord synthétique de l’état du système.
1289
1290
SRV-IHM-DASH-002 — Le tableau de bord doit afficher le nombre d’équipements actifs, non joignables, en défaut et en maintenance.
1291
1292
SRV-IHM-DASH-003 — Le tableau de bord doit afficher les alarmes critiques actives.
1293
```
1294
1295
### 12.3 Liste des équipements
1296
1297
**Exemples :**
1298
1299
```text
1300
SRV-IHM-EQP-001 — L’IHM doit permettre de consulter la liste des équipements.
1301
1302
SRV-IHM-EQP-002 — La liste des équipements doit afficher au minimum le nom, l’état, la dernière communication, les alarmes actives et le site ou la zone si applicable.
1303
1304
SRV-IHM-EQP-003 — L’utilisateur doit pouvoir filtrer les équipements selon leur statut.
1305
```
1306
1307
### 12.4 Fiche équipement
1308
1309
Cette partie décrit l’écran de détail d’un équipement.
1310
1311
**Exemples d’informations affichées :**
1312
1313
```text
1314
- identifiant ;
1315
- nom ;
1316
- site ;
1317
- état courant ;
1318
- mode courant ;
1319
- dernière communication ;
1320
- version firmware ;
1321
- version hardware ;
1322
- configuration active ;
1323
- alarmes actives ;
1324
- mesures récentes ;
1325
- événements récents ;
1326
- historique ;
1327
- actions autorisées.
1328
```
1329
1330
### 12.5 Écran alarmes
1331
1332
Cette partie décrit l’écran de gestion des alarmes.
1333
1334
**Exemples :**
1335
1336
```text
1337
SRV-IHM-ALM-001 — L’IHM doit afficher les alarmes actives dans une liste dédiée.
1338
1339
SRV-IHM-ALM-002 — Les alarmes doivent être filtrables par criticité, équipement, statut et période.
1340
1341
SRV-IHM-ALM-003 — L’IHM doit permettre l’acquittement d’une alarme par un utilisateur habilité.
1342
1343
SRV-IHM-ALM-004 — L’IHM doit permettre d’accéder au détail d’une alarme.
1344
```
1345
1346
### 12.6 Écran historiques
1347
1348
Cette partie décrit la consultation des données passées.
1349
1350
**Exemples :**
1351
1352
```text
1353
- historiques de mesures ;
1354
- historiques d’alarmes ;
1355
- historiques d’événements ;
1356
- historiques de commandes ;
1357
- historiques de configuration ;
1358
- historiques de connexion ;
1359
- exports.
1360
```
1361
1362
### 12.7 Ergonomie et lisibilité
1363
1364
Cette partie décrit les exigences de compréhension.
1365
1366
**Exemples :**
1367
1368
```text
1369
SRV-IHM-ERG-001 — Les informations critiques doivent être visuellement distinguables.
1370
1371
SRV-IHM-ERG-002 — Les messages affichés doivent être compréhensibles par un opérateur non développeur.
1372
1373
SRV-IHM-ERG-003 — Les actions critiques doivent demander une confirmation explicite.
1374
1375
SRV-IHM-ERG-004 — L’IHM doit éviter les ambiguïtés entre alarme active, acquittée et clôturée.
1376
```
1377
1378
### 12.8 Tests associés
1379
1380
**Exemples :**
1381
1382
```text
1383
- affichage tableau de bord ;
1384
- affichage liste équipements ;
1385
- filtre équipement ;
1386
- détail équipement ;
1387
- affichage alarmes ;
1388
- acquittement alarme ;
1389
- consultation historique ;
1390
- export ;
1391
- action non autorisée masquée ou refusée ;
1392
- lisibilité message erreur.
1393
```
1394
1395
---
1396
1397
## 13. Exigences d’administration
1398
1399
### 13.1 Objet de l’administration
1400
1401
Cette partie décrit les fonctions réservées aux administrateurs.
1402
1403
L’administration peut concerner les utilisateurs, les rôles, les équipements, les configurations, les paramètres applicatifs, les imports/exports, les sauvegardes applicatives et certaines actions de maintenance.
1404
1405
### 13.2 Gestion des utilisateurs
1406
1407
**Exemples :**
1408
1409
```text
1410
SRV-ADM-USER-001 — L’application doit permettre la création d’un utilisateur par un administrateur habilité.
1411
1412
SRV-ADM-USER-002 — L’application doit permettre la désactivation d’un utilisateur.
1413
1414
SRV-ADM-USER-003 — L’application doit conserver une trace des actions d’administration utilisateur.
1415
1416
SRV-ADM-USER-004 — La suppression d’un utilisateur ne doit pas supprimer l’historique des actions déjà réalisées par cet utilisateur.
1417
```
1418
1419
### 13.3 Gestion des rôles et droits
1420
1421
**Exemples de rôles :**
1422
1423
```text
1424
- opérateur ;
1425
- maintenance ;
1426
- administrateur ;
1427
- superviseur ;
1428
- lecture seule ;
1429
- support technique.
1430
```
1431
1432
**Exemples d’exigences :**
1433
1434
```text
1435
SRV-ADM-RIGHT-001 — L’application doit associer chaque utilisateur à un ou plusieurs rôles.
1436
1437
SRV-ADM-RIGHT-002 — Les actions sensibles doivent être autorisées uniquement aux rôles habilités.
1438
1439
SRV-ADM-RIGHT-003 — Toute tentative d’action non autorisée doit être refusée et journalisée si nécessaire.
1440
```
1441
1442
### 13.4 Gestion des équipements
1443
1444
Cette partie décrit les fonctions administratives sur les équipements.
1445
1446
**Exemples :**
1447
1448
```text
1449
- création équipement ;
1450
- modification nom ou localisation ;
1451
- activation/désactivation ;
1452
- rattachement à un site ;
1453
- association configuration ;
1454
- retrait du parc ;
1455
- consultation version ;
1456
- historique équipement.
1457
```
1458
1459
### 13.5 Gestion des configurations
1460
1461
Cette partie décrit les actions sur les configurations applicatives ou équipements.
1462
1463
**Exemples :**
1464
1465
```text
1466
SRV-ADM-CFG-001 — L’application doit permettre la consultation des configurations applicables aux équipements.
1467
1468
SRV-ADM-CFG-002 — La modification d’une configuration critique doit être réservée aux utilisateurs habilités.
1469
1470
SRV-ADM-CFG-003 — Toute modification de configuration doit être historisée.
1471
1472
SRV-ADM-CFG-004 — L’application doit empêcher l’application d’une configuration invalide.
1473
```
1474
1475
### 13.6 Paramètres applicatifs
1476
1477
Cette partie décrit les paramètres généraux du serveur.
1478
1479
**Exemples :**
1480
1481
```text
1482
- durée de conservation des données ;
1483
- seuils applicatifs ;
1484
- fréquence de supervision ;
1485
- paramètres d’alerte ;
1486
- paramètres d’export ;
1487
- configuration des notifications ;
1488
- paramètres de connexion à un système tiers ;
1489
- paramètres de purge.
1490
```
1491
1492
### 13.7 Tests associés
1493
1494
**Exemples :**
1495
1496
```text
1497
- création utilisateur ;
1498
- désactivation utilisateur ;
1499
- action admin autorisée ;
1500
- action admin refusée ;
1501
- modification configuration ;
1502
- configuration invalide refusée ;
1503
- traçabilité action admin ;
1504
- consultation historique utilisateur ;
1505
- retrait équipement.
1506
```
1507
1508
---
1509
1510
## 14. Exigences de gestion des utilisateurs, authentification et droits
1511
1512
### 14.1 Objet de l’authentification
1513
1514
Cette partie décrit comment l’application identifie les utilisateurs.
1515
1516
Selon le contexte, l’authentification peut être locale, déléguée à un annuaire, couplée à un SSO ou renforcée par un second facteur.
1517
1518
### 14.2 Authentification locale
1519
1520
**Exemples :**
1521
1522
```text
1523
SRV-AUTH-001 — L’application doit authentifier les utilisateurs avant accès aux fonctions non publiques.
1524
1525
SRV-AUTH-002 — L’application doit refuser l’accès en cas d’identifiants invalides.
1526
1527
SRV-AUTH-003 — L’application doit journaliser les échecs répétés de connexion si cela est requis.
1528
```
1529
1530
### 14.3 Authentification déléguée
1531
1532
Cette partie est à compléter si l’application utilise un annuaire client.
1533
1534
**Exemples :**
1535
1536
```text
1537
- LDAP ;
1538
- Active Directory ;
1539
- SSO ;
1540
- OAuth2 ;
1541
- SAML ;
1542
- OpenID Connect.
1543
```
1544
1545
**Exemple d’exigence :**
1546
1547
```text
1548
SRV-AUTH-EXT-001 — L’application doit pouvoir déléguer l’authentification au service d’identité défini dans le dossier infrastructure si cette option est retenue.
1549
```
1550
1551
### 14.4 Sessions utilisateurs
1552
1553
**Exemples :**
1554
1555
```text
1556
SRV-SESS-001 — L’application doit gérer une session utilisateur après authentification.
1557
1558
SRV-SESS-002 — La session doit expirer après une période d’inactivité définie.
1559
1560
SRV-SESS-003 — L’utilisateur doit pouvoir se déconnecter explicitement.
1561
1562
SRV-SESS-004 — Les actions réalisées après expiration de session doivent être refusées.
1563
```
1564
1565
### 14.5 Droits par fonction
1566
1567
Cette partie décrit la matrice des droits.
1568
1569
**Exemple :**
1570
1571
```text
1572
Fonction               | Lecture seule | Opérateur | Maintenance | Administrateur
1573
Consulter états        | oui           | oui       | oui         | oui
1574
Acquitter alarme       | non           | oui       | oui         | oui
1575
Exporter logs          | non           | non       | oui         | oui
1576
Modifier configuration | non           | non       | limité      | oui
1577
Créer utilisateur      | non           | non       | non         | oui
1578
Désactiver équipement  | non           | non       | non         | oui
1579
```
1580
1581
### 14.6 Journalisation des actions utilisateurs
1582
1583
**Exemples :**
1584
1585
```text
1586
SRV-USER-LOG-001 — L’application doit journaliser les actions sensibles réalisées par les utilisateurs.
1587
1588
SRV-USER-LOG-002 — Le journal doit contenir l’utilisateur, la date, l’action, la ressource concernée et le résultat.
1589
1590
SRV-USER-LOG-003 — Les journaux d’actions utilisateurs doivent être consultables par un profil habilité.
1591
```
1592
1593
### 14.7 Tests associés
1594
1595
**Exemples :**
1596
1597
```text
1598
- connexion valide ;
1599
- connexion invalide ;
1600
- expiration session ;
1601
- déconnexion ;
1602
- accès autorisé ;
1603
- accès refusé ;
1604
- action sensible journalisée ;
1605
- rôle insuffisant ;
1606
- utilisateur désactivé ;
1607
- authentification externe indisponible.
1608
```
1609
1610
---
1611
1612
## 15. Exigences de configuration applicative
1613
1614
### 15.1 Objet de la configuration applicative
1615
1616
Cette partie décrit les paramètres qui gouvernent le fonctionnement du serveur et de l’application.
1617
1618
### 15.2 Paramètres serveur
1619
1620
**Exemples :**
1621
1622
```text
1623
- paramètres de connexion base de données ;
1624
- paramètres réseau ;
1625
- URL serveur ;
1626
- paramètres TLS ;
1627
- chemin des logs ;
1628
- paramètres d’export ;
1629
- paramètres de sauvegarde applicative ;
1630
- paramètres de supervision ;
1631
- configuration d’un système tiers ;
1632
- niveau de log ;
1633
- paramètres de purge.
1634
```
1635
1636
### 15.3 Paramètres métier
1637
1638
**Exemples :**
1639
1640
```text
1641
- seuils d’alarme centralisés ;
1642
- criticité des alarmes ;
1643
- règles de consolidation ;
1644
- règles d’acquittement ;
1645
- règles de clôture ;
1646
- durée de conservation ;
1647
- groupes d’équipements ;
1648
- sites ;
1649
- profils d’utilisateurs ;
1650
- formats de rapport.
1651
```
1652
1653
### 15.4 Validation des configurations
1654
1655
**Exemples :**
1656
1657
```text
1658
SRV-CFG-001 — L’application doit vérifier la validité des paramètres modifiés avant application.
1659
1660
SRV-CFG-002 — Une configuration invalide doit être refusée avec un message explicite.
1661
1662
SRV-CFG-003 — Toute modification de configuration critique doit être journalisée.
1663
1664
SRV-CFG-004 — Les configurations doivent être exportables ou sauvegardables si elles sont nécessaires à la reprise.
1665
```
1666
1667
### 15.5 Versionnement des configurations
1668
1669
Cette partie décrit la traçabilité.
1670
1671
**Exemples :**
1672
1673
```text
1674
- version de configuration ;
1675
- date de modification ;
1676
- auteur ;
1677
- commentaire ;
1678
- ancienne valeur ;
1679
- nouvelle valeur ;
1680
- équipement concerné ;
1681
- statut : brouillon, validée, appliquée, retirée.
1682
```
1683
1684
### 15.6 Tests associés
1685
1686
**Exemples :**
1687
1688
```text
1689
- modification paramètre valide ;
1690
- modification paramètre invalide ;
1691
- modification paramètre critique ;
1692
- journalisation configuration ;
1693
- export configuration ;
1694
- restauration configuration ;
1695
- application configuration à équipement ;
1696
- divergence configuration attendue / déclarée.
1697
```
1698
1699
---
1700
1701
## 16. Exigences de reporting et d’exports
1702
1703
### 16.1 Objet des rapports et exports
1704
1705
Cette partie décrit les fonctions permettant de produire des documents, fichiers ou extractions de données.
1706
1707
Les exports peuvent servir à l’exploitation, au diagnostic, à l’audit, à la maintenance, au partage client ou à l’intégration avec un autre système.
1708
1709
### 16.2 Types d’exports
1710
1711
**Exemples :**
1712
1713
```text
1714
- export mesures ;
1715
- export alarmes ;
1716
- export événements ;
1717
- export logs ;
1718
- export configuration ;
1719
- export rapport diagnostic ;
1720
- export rapport mensuel ;
1721
- export CSV ;
1722
- export JSON ;
1723
- export PDF ;
1724
- export fichier compressé.
1725
```
1726
1727
### 16.3 Filtres d’export
1728
1729
**Exemples :**
1730
1731
```text
1732
- période ;
1733
- équipement ;
1734
- site ;
1735
- type de donnée ;
1736
- criticité ;
1737
- statut ;
1738
- utilisateur ;
1739
- événement ;
1740
- mode ;
1741
- configuration.
1742
```
1743
1744
### 16.4 Traçabilité des exports
1745
1746
**Exemples :**
1747
1748
```text
1749
SRV-EXP-001 — Les exports contenant des données sensibles ou critiques doivent être journalisés.
1750
1751
SRV-EXP-002 — Le journal d’export doit indiquer l’utilisateur, la date, le type d’export, les filtres utilisés et le résultat.
1752
1753
SRV-EXP-003 — Les exports temporaires doivent être supprimés selon une durée définie si nécessaire.
1754
```
1755
1756
### 16.5 Rapports automatiques
1757
1758
Cette partie décrit les rapports planifiés.
1759
1760
**Exemples :**
1761
1762
```text
1763
- rapport journalier d’alarmes ;
1764
- rapport hebdomadaire d’équipements non joignables ;
1765
- rapport mensuel d’exploitation ;
1766
- rapport de maintenance ;
1767
- rapport de disponibilité ;
1768
- rapport de sauvegarde ;
1769
- rapport d’incident.
1770
```
1771
1772
### 16.6 Tests associés
1773
1774
**Exemples :**
1775
1776
```text
1777
- export CSV mesures ;
1778
- export alarmes filtrées ;
1779
- export période vide ;
1780
- export volumineux ;
1781
- génération rapport PDF ;
1782
- journalisation export ;
1783
- suppression export temporaire ;
1784
- droits insuffisants pour export.
1785
```
1786
1787
---
1788
1789
## 17. Exigences de supervision applicative
1790
1791
### 17.1 Objet de la supervision applicative
1792
1793
Cette partie décrit comment l’application surveille son propre état et rend visibles les problèmes applicatifs.
1794
1795
La supervision applicative complète la supervision infrastructure. Elle concerne les services applicatifs, les files de traitement, les erreurs de réception, les retards de données, les équipements non joignables, les erreurs d’API, les échecs d’intégration et les problèmes fonctionnels.
1796
1797
### 17.2 Indicateurs de santé applicative
1798
1799
**Exemples :**
1800
1801
```text
1802
- service applicatif disponible ;
1803
- API accessible ;
1804
- base de données accessible ;
1805
- nombre d’équipements connectés ;
1806
- nombre d’équipements non joignables ;
1807
- taux d’erreurs de messages ;
1808
- taille des files d’attente ;
1809
- âge du dernier message reçu ;
1810
- nombre d’alarmes actives ;
1811
- temps de réponse API ;
1812
- erreur de sauvegarde applicative ;
1813
- échec de notification ;
1814
- erreur système tiers.
1815
```
1816
1817
### 17.3 Healthcheck applicatif
1818
1819
**Exemples :**
1820
1821
```text
1822
SRV-SUP-001 — L’application doit fournir un mécanisme permettant de vérifier son état de fonctionnement.
1823
1824
SRV-SUP-002 — Le healthcheck doit vérifier au minimum la disponibilité de l’application et de ses dépendances critiques.
1825
1826
SRV-SUP-003 — Le résultat du healthcheck doit être exploitable par la supervision infrastructure si cette intégration est prévue.
1827
```
1828
1829
### 17.4 Alertes applicatives
1830
1831
**Exemples :**
1832
1833
```text
1834
SRV-SUP-ALM-001 — L’application doit générer une alerte si un nombre anormal d’équipements devient non joignable.
1835
1836
SRV-SUP-ALM-002 — L’application doit générer une alerte si le taux de messages rejetés dépasse un seuil défini.
1837
1838
SRV-SUP-ALM-003 — L’application doit générer une alerte si une file de traitement dépasse un seuil défini.
1839
```
1840
1841
### 17.5 Tableau de supervision
1842
1843
Cette partie décrit l’IHM ou la vue de supervision.
1844
1845
**Exemples :**
1846
1847
```text
1848
- état services ;
1849
- état base de données ;
1850
- état équipements ;
1851
- erreurs récentes ;
1852
- files d’attente ;
1853
- sauvegardes applicatives ;
1854
- temps de réponse ;
1855
- version applicative ;
1856
- espace disque applicatif si remonté ;
1857
- connectivité système tiers.
1858
```
1859
1860
### 17.6 Tests associés
1861
1862
**Exemples :**
1863
1864
```text
1865
- healthcheck nominal ;
1866
- base indisponible ;
1867
- API indisponible ;
1868
- équipement non joignable ;
1869
- message rejeté ;
1870
- file saturée ;
1871
- alerte supervision ;
1872
- retour au nominal ;
1873
- intégration supervision infrastructure.
1874
```
1875
1876
---
1877
1878
## 18. Exigences de journalisation applicative
1879
1880
### 18.1 Objet des logs applicatifs
1881
1882
Cette partie décrit les logs produits par l’application.
1883
1884
Les journaux applicatifs servent à comprendre les traitements réalisés, diagnostiquer les erreurs, tracer les actions sensibles, analyser les incidents et fournir des éléments d’audit.
1885
1886
### 18.2 Types de logs
1887
1888
**Exemples :**
1889
1890
```text
1891
- logs de réception ;
1892
- logs de validation de messages ;
1893
- logs d’erreur ;
1894
- logs de sécurité ;
1895
- logs d’authentification ;
1896
- logs d’administration ;
1897
- logs de configuration ;
1898
- logs d’export ;
1899
- logs d’alarme ;
1900
- logs de sauvegarde applicative ;
1901
- logs de communication système tiers.
1902
```
1903
1904
### 18.3 Contenu minimal d’un log
1905
1906
**Exemple :**
1907
1908
```text
1909
- date et heure ;
1910
- niveau ;
1911
- source ;
1912
- utilisateur si applicable ;
1913
- équipement si applicable ;
1914
- action ;
1915
- résultat ;
1916
- message d’erreur ;
1917
- identifiant de corrélation ;
1918
- adresse IP si nécessaire ;
1919
- version applicative si utile.
1920
```
1921
1922
### 18.4 Niveaux de logs
1923
1924
**Exemples :**
1925
1926
```text
1927
DEBUG :
1928
détail technique utile au diagnostic avancé.
1929
1930
INFO :
1931
événement normal significatif.
1932
1933
WARNING :
1934
situation anormale non bloquante.
1935
1936
ERROR :
1937
erreur applicative ou technique.
1938
1939
CRITICAL :
1940
erreur grave affectant une fonction critique.
1941
```
1942
1943
### 18.5 Protection des logs
1944
1945
**Exemples :**
1946
1947
```text
1948
SRV-LOG-SEC-001 — Les logs ne doivent pas contenir de mots de passe, secrets ou jetons sensibles en clair.
1949
1950
SRV-LOG-SEC-002 — Les logs de sécurité doivent être consultables uniquement par des profils habilités.
1951
1952
SRV-LOG-SEC-003 — Les logs critiques doivent être conservés selon la politique définie.
1953
```
1954
1955
### 18.6 Rotation et conservation
1956
1957
**Exemples :**
1958
1959
```text
1960
SRV-LOG-ROT-001 — Les logs applicatifs doivent être soumis à une rotation afin d’éviter la saturation du stockage.
1961
1962
SRV-LOG-ROT-002 — Les durées de conservation des logs doivent être définies selon leur criticité.
1963
1964
SRV-LOG-ROT-003 — Les logs nécessaires à un incident ouvert doivent pouvoir être conservés jusqu’à clôture de l’analyse.
1965
```
1966
1967
### 18.7 Tests associés
1968
1969
**Exemples :**
1970
1971
```text
1972
- log réception message ;
1973
- log erreur message ;
1974
- log connexion utilisateur ;
1975
- log action admin ;
1976
- log export ;
1977
- absence secret dans logs ;
1978
- rotation logs ;
1979
- consultation logs par profil autorisé ;
1980
- refus consultation profil non autorisé.
1981
```
1982
1983
---
1984
1985
## 19. Exigences de sécurité applicative et cybersécurité
1986
1987
### 19.1 Objet de la sécurité applicative
1988
1989
Cette partie décrit les exigences de protection de l’application contre les accès non autorisés, modifications non maîtrisées, erreurs d’usage, données invalides, fuite d’information ou compromission.
1990
1991
### 19.2 Contrôle d’accès
1992
1993
**Exemples :**
1994
1995
```text
1996
SRV-SEC-ACC-001 — L’application doit contrôler l’accès aux fonctions selon le profil utilisateur.
1997
1998
SRV-SEC-ACC-002 — Une action non autorisée doit être refusée.
1999
2000
SRV-SEC-ACC-003 — Les actions sensibles doivent être journalisées.
2001
2002
SRV-SEC-ACC-004 — Les fonctions d’administration doivent être réservées aux administrateurs habilités.
2003
```
2004
2005
### 19.3 Protection des données sensibles
2006
2007
Cette partie décrit les données nécessitant une protection particulière.
2008
2009
**Exemples :**
2010
2011
```text
2012
- identifiants utilisateurs ;
2013
- mots de passe ;
2014
- jetons de session ;
2015
- clés API ;
2016
- configurations sensibles ;
2017
- certificats ;
2018
- logs de sécurité ;
2019
- données personnelles ;
2020
- exports contenant des données sensibles ;
2021
- commandes critiques.
2022
```
2023
2024
### 19.4 Validation des entrées utilisateur
2025
2026
Cette partie décrit les contrôles à appliquer aux saisies IHM ou API.
2027
2028
**Exemples :**
2029
2030
```text
2031
SRV-SEC-IN-001 — L’application doit valider les données saisies par les utilisateurs avant traitement.
2032
2033
SRV-SEC-IN-002 — L’application doit refuser les valeurs incohérentes ou hors limites.
2034
2035
SRV-SEC-IN-003 — Une saisie invalide doit donner lieu à un message compréhensible sans exposer d’information sensible.
2036
```
2037
2038
### 19.5 Protection contre les actions dangereuses
2039
2040
Cette partie décrit les confirmations ou verrous.
2041
2042
**Exemples :**
2043
2044
```text
2045
- confirmation avant modification configuration critique ;
2046
- confirmation avant désactivation équipement ;
2047
- confirmation avant restauration ;
2048
- confirmation avant commande distante ;
2049
- interdiction si équipement en mode incompatible ;
2050
- journalisation obligatoire.
2051
```
2052
2053
### 19.6 Sécurité des API
2054
2055
**Exemples :**
2056
2057
```text
2058
SRV-SEC-API-001 — Les API non publiques doivent exiger une authentification.
2059
2060
SRV-SEC-API-002 — Les API doivent vérifier les droits de l’utilisateur ou du composant appelant.
2061
2062
SRV-SEC-API-003 — Les erreurs API ne doivent pas exposer de détails internes sensibles.
2063
2064
SRV-SEC-API-004 — Les appels répétés anormaux doivent être journalisés ou limités si nécessaire.
2065
```
2066
2067
### 19.7 Tests associés
2068
2069
**Exemples :**
2070
2071
```text
2072
- accès sans authentification ;
2073
- accès avec rôle insuffisant ;
2074
- modification configuration interdite ;
2075
- commande critique confirmée ;
2076
- injection donnée invalide ;
2077
- message API mal formé ;
2078
- absence secret dans erreur ;
2079
- session expirée ;
2080
- export refusé utilisateur non habilité.
2081
```
2082
2083
---
2084
2085
## 20. Exigences de sauvegarde et restauration applicative
2086
2087
### 20.1 Objet de la sauvegarde applicative
2088
2089
Cette partie précise les exigences applicatives relatives à la sauvegarde.
2090
2091
Le détail technique est dans le dossier infrastructure, mais la spécification serveur doit indiquer quelles données applicatives sont critiques et doivent être sauvegardables.
2092
2093
### 20.2 Données applicatives à sauvegarder
2094
2095
**Exemples :**
2096
2097
```text
2098
- base de données ;
2099
- configurations applicatives ;
2100
- configurations équipements ;
2101
- utilisateurs et rôles ;
2102
- historiques critiques ;
2103
- alarmes ;
2104
- événements ;
2105
- rapports nécessaires ;
2106
- fichiers d’export conservés ;
2107
- paramètres d’intégration ;
2108
- modèles de rapports.
2109
```
2110
2111
### 20.3 Cohérence applicative de la sauvegarde
2112
2113
**Exemples :**
2114
2115
```text
2116
SRV-BKP-001 — Les sauvegardes applicatives doivent permettre de restaurer un état cohérent de l’application.
2117
2118
SRV-BKP-002 — Les configurations et données associées doivent être sauvegardées de manière cohérente.
2119
2120
SRV-BKP-003 — Une sauvegarde réalisée avant mise à jour doit permettre un retour arrière si cette exigence est retenue.
2121
```
2122
2123
### 20.4 Restauration applicative
2124
2125
Cette partie décrit le comportement attendu après restauration.
2126
2127
**Exemples :**
2128
2129
```text
2130
SRV-REST-001 — Après restauration, l’application doit pouvoir redémarrer sans erreur critique.
2131
2132
SRV-REST-002 — Après restauration, les utilisateurs autorisés doivent pouvoir se connecter.
2133
2134
SRV-REST-003 — Après restauration, les équipements doivent pouvoir reprendre la transmission des données.
2135
2136
SRV-REST-004 — Après restauration, la cohérence des alarmes actives et historiques doit être vérifiable.
2137
```
2138
2139
### 20.5 Tests associés
2140
2141
**Exemples :**
2142
2143
```text
2144
- sauvegarde base ;
2145
- sauvegarde configuration ;
2146
- restauration base sur environnement de test ;
2147
- connexion après restauration ;
2148
- réception message après restauration ;
2149
- cohérence alarmes après restauration ;
2150
- restauration avant/après mise à jour ;
2151
- rapport de restauration.
2152
```
2153
2154
---
2155
2156
## 21. Exigences de performance applicative
2157
2158
### 21.1 Objet des performances
2159
2160
Cette partie décrit les exigences de temps de réponse, capacité, volumétrie et montée en charge.
2161
2162
Les performances doivent être formulées de manière mesurable.
2163
2164
### 21.2 Nombre d’équipements supportés
2165
2166
**Exemples :**
2167
2168
```text
2169
SRV-PERF-EQP-001 — L’application doit supporter le nombre d’équipements actifs défini dans les hypothèses de dimensionnement.
2170
2171
SRV-PERF-EQP-002 — L’application doit rester exploitable lorsque tous les équipements transmettent selon la fréquence nominale.
2172
2173
SRV-PERF-EQP-003 — Une marge de croissance doit être prévue si elle est définie dans le projet.
2174
```
2175
2176
### 21.3 Volume de données
2177
2178
**Exemples :**
2179
2180
```text
2181
- nombre de messages par minute ;
2182
- taille moyenne des messages ;
2183
- volume journalier ;
2184
- volume annuel ;
2185
- nombre d’alarmes ;
2186
- nombre d’événements ;
2187
- nombre d’utilisateurs simultanés ;
2188
- nombre de requêtes IHM.
2189
```
2190
2191
### 21.4 Temps de réponse IHM
2192
2193
**Exemples :**
2194
2195
```text
2196
SRV-PERF-IHM-001 — L’affichage du tableau de bord doit être réalisé dans un délai compatible avec l’exploitation.
2197
2198
SRV-PERF-IHM-002 — La consultation des alarmes actives doit rester rapide même avec le volume d’alarmes prévu.
2199
2200
SRV-PERF-IHM-003 — Les requêtes historiques longues doivent être paginées ou limitées afin de préserver la disponibilité de l’application.
2201
```
2202
2203
### 21.5 Temps de traitement serveur
2204
2205
**Exemples :**
2206
2207
```text
2208
SRV-PERF-TRT-001 — Le serveur doit traiter les messages entrants sans accumulation durable dans les conditions nominales.
2209
2210
SRV-PERF-TRT-002 — En cas de pic de messages, le serveur doit appliquer une stratégie définie : mise en file, limitation, rejet contrôlé ou alerte.
2211
2212
SRV-PERF-TRT-003 — Le traitement des alarmes critiques doit rester prioritaire si cette exigence est retenue.
2213
```
2214
2215
### 21.6 Tests associés
2216
2217
**Exemples :**
2218
2219
```text
2220
- test charge équipements ;
2221
- test messages simultanés ;
2222
- test consultation alarmes volumineuses ;
2223
- test historique longue période ;
2224
- test utilisateurs simultanés ;
2225
- test pic d’alarmes ;
2226
- test export volumineux ;
2227
- test saturation contrôlée.
2228
```
2229
2230
---
2231
2232
## 22. Exigences de robustesse et disponibilité applicative
2233
2234
### 22.1 Objet de la robustesse applicative
2235
2236
Cette partie décrit le comportement de l’application face aux erreurs, indisponibilités, données invalides, dépendances perdues ou incidents.
2237
2238
### 22.2 Indisponibilité base de données
2239
2240
**Exemples :**
2241
2242
```text
2243
SRV-ROB-DB-001 — Le serveur doit détecter une indisponibilité de la base de données.
2244
2245
SRV-ROB-DB-002 — Le serveur doit signaler une erreur applicative critique si la base de données devient indisponible.
2246
2247
SRV-ROB-DB-003 — Le serveur ne doit pas afficher des données comme valides si leur lecture ou écriture a échoué.
2248
```
2249
2250
### 22.3 Indisponibilité partielle d’un service
2251
2252
**Exemples :**
2253
2254
```text
2255
- service de notification indisponible ;
2256
- service d’authentification indisponible ;
2257
- service d’export indisponible ;
2258
- service de supervision indisponible ;
2259
- système tiers non joignable.
2260
```
2261
2262
### 22.4 Gestion des erreurs applicatives
2263
2264
**Exemples :**
2265
2266
```text
2267
SRV-ROB-ERR-001 — Une erreur applicative doit être journalisée avec un niveau adapté.
2268
2269
SRV-ROB-ERR-002 — Une erreur interne ne doit pas exposer d’information sensible à l’utilisateur.
2270
2271
SRV-ROB-ERR-003 — L’application doit fournir un message utilisateur compréhensible en cas d’échec d’une action.
2272
```
2273
2274
### 22.5 Reprise après redémarrage
2275
2276
**Exemples :**
2277
2278
```text
2279
SRV-ROB-START-001 — Après redémarrage du serveur applicatif, l’application doit retrouver un état cohérent.
2280
2281
SRV-ROB-START-002 — Les équipements doivent pouvoir reprendre la communication après redémarrage du serveur.
2282
2283
SRV-ROB-START-003 — Les alarmes actives doivent rester cohérentes après redémarrage.
2284
```
2285
2286
### 22.6 Tests associés
2287
2288
**Exemples :**
2289
2290
```text
2291
- base indisponible ;
2292
- base restaurée ;
2293
- service applicatif redémarré ;
2294
- API en erreur ;
2295
- système tiers indisponible ;
2296
- message utilisateur après erreur ;
2297
- logs erreur ;
2298
- reprise équipements après redémarrage.
2299
```
2300
2301
---
2302
2303
## 23. Exigences d’interfaces systèmes tiers
2304
2305
### 23.1 Objet des interfaces systèmes tiers
2306
2307
Cette partie décrit les échanges avec des systèmes externes éventuels.
2308
2309
Ces interfaces peuvent concerner une supervision client, une GMAO, un ERP, un annuaire utilisateur, un outil de reporting, une plateforme cloud, un système d’alerte ou un outil de ticketing.
2310
2311
### 23.2 Liste des systèmes tiers
2312
2313
**Exemple :**
2314
2315
```text
2316
Système tiers      | Usage             | Sens échange          | Criticité      | Responsable
2317
Annuaire client    | authentification  | serveur ↔ annuaire    | élevée         | client IT
2318
Supervision client | remontée état     | serveur → supervision | moyenne        | client IT
2319
GMAO               | création incident | serveur → GMAO        | moyenne        | exploitation
2320
ERP                | référentiel site  | ERP → serveur         | faible/moyenne | client
2321
```
2322
2323
### 23.3 Données échangées
2324
2325
**Exemples :**
2326
2327
```text
2328
- états équipements ;
2329
- alarmes critiques ;
2330
- rapports ;
2331
- tickets d’incident ;
2332
- utilisateurs ;
2333
- sites ;
2334
- configurations ;
2335
- exports historiques ;
2336
- notifications.
2337
```
2338
2339
### 23.4 Gestion des erreurs d’interface
2340
2341
**Exemples :**
2342
2343
```text
2344
SRV-TIERS-ERR-001 — Le serveur doit détecter une indisponibilité du système tiers si cette indisponibilité impacte une fonction prévue.
2345
2346
SRV-TIERS-ERR-002 — Une erreur d’échange avec un système tiers doit être journalisée.
2347
2348
SRV-TIERS-ERR-003 — Une indisponibilité d’un système tiers non critique ne doit pas bloquer les fonctions principales du système.
2349
```
2350
2351
### 23.5 Tests associés
2352
2353
**Exemples :**
2354
2355
```text
2356
- échange nominal ;
2357
- système tiers indisponible ;
2358
- réponse invalide ;
2359
- timeout ;
2360
- authentification refusée ;
2361
- message rejeté ;
2362
- reprise après retour système tiers ;
2363
- journalisation erreur interface.
2364
```
2365
2366
---
2367
2368
## 24. Exigences de testabilité serveur / application
2369
2370
### 24.1 Objet de la testabilité
2371
2372
Cette partie décrit les exigences permettant de tester efficacement l’application.
2373
2374
La testabilité doit permettre les tests unitaires, tests API, tests IHM, tests base de données, tests d’intégration équipement/serveur, tests de performance, tests de sécurité et tests de non-régression.
2375
2376
### 24.2 Observabilité
2377
2378
**Exemples :**
2379
2380
```text
2381
- logs ;
2382
- healthcheck ;
2383
- métriques ;
2384
- compteurs messages ;
2385
- compteurs erreurs ;
2386
- état équipements ;
2387
- état files d’attente ;
2388
- état base de données ;
2389
- version applicative ;
2390
- état des dépendances ;
2391
- traces de corrélation.
2392
```
2393
2394
**Exemple d’exigence :**
2395
2396
```text
2397
SRV-TEST-OBS-001 — L’application doit fournir les informations nécessaires au diagnostic des tests d’intégration.
2398
```
2399
2400
### 24.3 Données de test
2401
2402
Cette partie décrit les données nécessaires.
2403
2404
**Exemples :**
2405
2406
```text
2407
- équipements fictifs ;
2408
- mesures nominales ;
2409
- mesures hors plage ;
2410
- alarmes critiques ;
2411
- utilisateurs de test ;
2412
- rôles de test ;
2413
- configurations de test ;
2414
- données historiques ;
2415
- messages invalides ;
2416
- exports attendus.
2417
```
2418
2419
### 24.4 Simulateurs
2420
2421
Cette partie décrit les simulateurs utiles.
2422
2423
**Exemples :**
2424
2425
```text
2426
- simulateur d’équipement ;
2427
- simulateur de perte réseau ;
2428
- simulateur de messages invalides ;
2429
- simulateur de charge ;
2430
- simulateur système tiers ;
2431
- simulateur annuaire ;
2432
- générateur d’alarmes.
2433
```
2434
2435
### 24.5 Tests unitaires applicatifs
2436
2437
**Exemples :**
2438
2439
```text
2440
- validation message ;
2441
- traitement alarme ;
2442
- filtrage historique ;
2443
- droits utilisateur ;
2444
- création équipement ;
2445
- règle anti-doublon ;
2446
- export ;
2447
- pagination ;
2448
- conversion de données ;
2449
- calcul d’état global.
2450
```
2451
2452
### 24.6 Tests d’intégration
2453
2454
**Exemples :**
2455
2456
```text
2457
- équipement vers serveur ;
2458
- serveur vers base ;
2459
- serveur vers IHM ;
2460
- serveur vers supervision ;
2461
- serveur vers sauvegarde ;
2462
- serveur vers système tiers ;
2463
- authentification ;
2464
- API ;
2465
- resynchronisation après coupure.
2466
```
2467
2468
### 24.7 Tests de non-régression
2469
2470
**Exemples :**
2471
2472
```text
2473
SRV-TEST-NR-001 — Toute nouvelle version applicative doit permettre l’exécution d’un jeu de tests de non-régression.
2474
2475
SRV-TEST-NR-002 — Les fonctions critiques doivent faire partie du jeu de non-régression.
2476
2477
SRV-TEST-NR-003 — Les tests de non-régression doivent être associés à la version applicative testée.
2478
```
2479
2480
### 24.8 Tests associés
2481
2482
**Exemples :**
2483
2484
```text
2485
- tests API ;
2486
- tests IHM ;
2487
- tests base ;
2488
- tests droits ;
2489
- tests alarmes ;
2490
- tests historique ;
2491
- tests export ;
2492
- tests performance ;
2493
- tests sécurité ;
2494
- tests supervision ;
2495
- tests non-régression.
2496
```
2497
2498
---
2499
2500
## 25. Exigences de configuration, versionnement et livraison applicative
2501
2502
### 25.1 Objet de la gestion de configuration applicative
2503
2504
Cette partie décrit comment identifier et livrer une version serveur.
2505
2506
### 25.2 Identification de version
2507
2508
**Exemples :**
2509
2510
```text
2511
SRV-VER-001 — L’application doit exposer sa version applicative.
2512
2513
SRV-VER-002 — L’application doit permettre d’identifier la version de base de données ou de schéma utilisée.
2514
2515
SRV-VER-003 — L’application doit permettre d’identifier la version de configuration active.
2516
2517
SRV-VER-004 — Les versions doivent être visibles dans une interface d’administration ou un endpoint technique.
2518
```
2519
2520
### 25.3 Compatibilité serveur / firmware
2521
2522
Cette partie est importante pour les systèmes avec équipements embarqués.
2523
2524
**Exemples :**
2525
2526
```text
2527
SRV-VER-COMP-001 — La compatibilité entre version serveur et version firmware doit être documentée.
2528
2529
SRV-VER-COMP-002 — Le serveur doit gérer ou signaler les équipements utilisant une version firmware non supportée.
2530
2531
SRV-VER-COMP-003 — Une évolution incompatible du format de message doit être explicitement versionnée.
2532
```
2533
2534
### 25.4 Livraison applicative
2535
2536
Cette partie décrit les éléments livrés.
2537
2538
**Exemples :**
2539
2540
```text
2541
- paquet applicatif ;
2542
- image conteneur si applicable ;
2543
- scripts d’installation ;
2544
- scripts de migration base ;
2545
- fichiers de configuration ;
2546
- documentation d’installation ;
2547
- note de version ;
2548
- liste des anomalies corrigées ;
2549
- liste des anomalies connues ;
2550
- résultats de tests ;
2551
- procédure de retour arrière.
2552
```
2553
2554
### 25.5 Note de version
2555
2556
**Modèle :**
2557
2558
```text
2559
Version :
2560
Date :
2561
Compatibilité firmware :
2562
Compatibilité base de données :
2563
Nouvelles fonctions :
2564
Corrections :
2565
Évolutions API :
2566
Évolutions base :
2567
Anomalies connues :
2568
Procédure de mise à jour :
2569
Procédure de retour arrière :
2570
Tests réalisés :
2571
Restrictions :
2572
```
2573
2574
### 25.6 Tests associés
2575
2576
**Exemples :**
2577
2578
```text
2579
- affichage version ;
2580
- compatibilité firmware ;
2581
- migration base ;
2582
- installation version ;
2583
- rollback ;
2584
- vérification note de version ;
2585
- mise à jour configuration ;
2586
- tests post-déploiement.
2587
```
2588
2589
---
2590
2591
## 26. Traçabilité
2592
2593
### 26.1 Traçabilité avec la spécification globale
2594
2595
Cette partie relie les exigences serveur aux exigences système.
2596
2597
**Exemple :**
2598
2599
```text
2600
Exigence système :
2601
SYS-ALM-002 — Le système doit afficher les alarmes actives avec leur niveau de criticité.
2602
2603
Exigences serveur associées :
2604
SRV-ALM-001 — Création et conservation des alarmes.
2605
SRV-IHM-ALM-001 — Affichage des alarmes actives.
2606
SRV-ALM-ACK-001 — Acquittement par utilisateur habilité.
2607
SRV-HIST-EVT-001 — Historisation des événements associés.
2608
```
2609
2610
### 26.2 Traçabilité avec l’architecture système
2611
2612
Cette partie relie les exigences aux blocs d’architecture.
2613
2614
**Exemple :**
2615
2616
```text
2617
Bloc architecture :
2618
SS-SRV-001 — serveur applicatif
2619
SS-DB-001 — base de données
2620
SS-IHM-001 — interface opérateur
2621
2622
Exigences associées :
2623
SRV-REC-001, SRV-ALM-001, SRV-HIST-001, SRV-IHM-001, SRV-DB-001.
2624
```
2625
2626
### 26.3 Traçabilité avec le firmware embarqué
2627
2628
Cette partie relie les exigences serveur aux exigences firmware.
2629
2630
**Exemple :**
2631
2632
```text
2633
Firmware :
2634
SW-COM-SYNC-001 — retransmettre les messages non acquittés.
2635
2636
Serveur :
2637
SRV-REC-DUP-001 — détecter ou gérer les doublons.
2638
SRV-REC-LATE-001 — accepter les données retransmises.
2639
SRV-HIST-MES-003 — conserver l’horodatage d’origine.
2640
```
2641
2642
### 26.4 Traçabilité vers les tests
2643
2644
Cette partie relie les exigences aux tests.
2645
2646
**Exemple :**
2647
2648
```text
2649
SRV-REC-001 — Réception messages équipements
2650
Tests associés :
2651
TEST-SRV-REC-001 — réception mesure nominale.
2652
TEST-INT-EQP-SRV-001 — transmission équipement réel vers serveur.
2653
TEST-SYS-COM-001 — affichage donnée reçue dans IHM.
2654
```
2655
2656
### 26.5 Matrice de traçabilité serveur
2657
2658
**Structure recommandée :**
2659
2660
```text
2661
ID exigence serveur
2662
Exigence système source
2663
Interface concernée
2664
Composant applicatif
2665
Donnée concernée
2666
Test unitaire
2667
Test intégration
2668
Test système
2669
Statut
2670
Commentaire
2671
```
2672
2673
---
2674
2675
## 27. Contraintes, risques et points ouverts
2676
2677
### 27.1 Contraintes techniques
2678
2679
Cette partie liste les contraintes connues.
2680
2681
**Exemples :**
2682
2683
```text
2684
- base de données imposée ;
2685
- infrastructure client imposée ;
2686
- absence d’accès Internet ;
2687
- protocole équipement imposé ;
2688
- nombre élevé d’équipements ;
2689
- volume de données important ;
2690
- compatibilité navigateur ;
2691
- politique de sécurité client ;
2692
- intégration annuaire obligatoire ;
2693
- conservation longue des historiques ;
2694
- interface système tiers non stabilisée.
2695
```
2696
2697
### 27.2 Risques applicatifs
2698
2699
Cette partie identifie les risques.
2700
2701
**Exemples :**
2702
2703
```text
2704
- saturation base de données ;
2705
- lenteur historique ;
2706
- perte de données à la réception ;
2707
- doublons après resynchronisation ;
2708
- mauvaise gestion des droits ;
2709
- alarmes non visibles ;
2710
- API incompatible avec firmware ;
2711
- migration base échouée ;
2712
- export trop volumineux ;
2713
- logs insuffisants pour diagnostic ;
2714
- dépendance système tiers instable.
2715
```
2716
2717
### 27.3 Mesures de réduction des risques
2718
2719
**Exemples :**
2720
2721
```text
2722
- tests de charge ;
2723
- pagination des historiques ;
2724
- indexation base ;
2725
- tests de resynchronisation ;
2726
- versionnement API ;
2727
- tests de droits ;
2728
- supervision applicative ;
2729
- logs de corrélation ;
2730
- tests de migration ;
2731
- sauvegarde avant mise à jour ;
2732
- simulateur d’équipement ;
2733
- revue cybersécurité.
2734
```
2735
2736
### 27.4 Points ouverts
2737
2738
Cette partie liste les décisions à confirmer.
2739
2740
**Exemple :**
2741
2742
```text
2743
ID         | Sujet                | Description                                   | Responsable                  | Échéance                  | Impact               | Statut
2744
PO-SRV-001 | Protocole équipement | Confirmer format final des messages           | Système / firmware / serveur | avant conception API      | intégration          | ouvert
2745
PO-SRV-002 | Conservation données | Durée de conservation des mesures à confirmer | Client                       | avant conception DB       | stockage/performance | ouvert
2746
PO-SRV-003 | Authentification     | Local ou annuaire client à confirmer          | Client IT                    | avant conception sécurité | utilisateurs         | ouvert
2747
PO-SRV-004 | Exports              | Formats CSV/PDF/JSON à arbitrer               | Client / exploitation        | avant IHM                 | reporting            | ouvert
2748
PO-SRV-005 | Système tiers        | Interface GMAO à confirmer                    | Client                       | avant spéc. interfaces    | intégration externe  | ouvert
2749
```
2750
2751
---
2752
2753
## 28. Critères d’acceptation de la spécification serveur / application
2754
2755
### 28.1 Complétude
2756
2757
Cette partie définit les critères permettant de considérer la spécification comme complète.
2758
2759
**Exemples :**
2760
2761
```text
2762
La spécification serveur / application est considérée comme complète si :
2763
- les fonctions de réception sont décrites ;
2764
- les règles de validation des messages sont décrites ;
2765
- la gestion des équipements est décrite ;
2766
- la gestion des alarmes est décrite ;
2767
- l’historisation est décrite ;
2768
- les exigences base de données sont décrites ;
2769
- les API principales sont identifiées ;
2770
- l’IHM opérateur est décrite ;
2771
- les fonctions d’administration sont décrites ;
2772
- les utilisateurs et droits sont décrits ;
2773
- les exports et rapports sont décrits ;
2774
- la supervision applicative est décrite ;
2775
- la journalisation est décrite ;
2776
- la sécurité applicative est décrite ;
2777
- les exigences de sauvegarde/restauration applicative sont décrites ;
2778
- les exigences de performance sont décrites ;
2779
- les exigences de testabilité sont décrites ;
2780
- les exigences critiques sont reliées à des tests.
2781
```
2782
2783
### 28.2 Cohérence
2784
2785
Cette partie définit les critères de cohérence.
2786
2787
**Exemples :**
2788
2789
```text
2790
Le document ne doit pas contenir :
2791
- de fonction serveur sans source d’exigence ;
2792
- d’alarme sans cycle de vie défini ;
2793
- de donnée historisée sans durée de conservation ;
2794
- d’action critique sans contrôle de droit ;
2795
- d’API non versionnée alors qu’elle est exposée à un composant externe ;
2796
- de message reçu sans règle de validation ;
2797
- d’historique sans règle de purge ou archivage ;
2798
- de sauvegarde sans restauration vérifiable ;
2799
- d’IHM affichant des données non définies ;
2800
- d’exigence non testable.
2801
```
2802
2803
### 28.3 Testabilité
2804
2805
Cette partie vérifie que la spécification permet de construire les tests.
2806
2807
**Exemples :**
2808
2809
```text
2810
La spécification est testable si :
2811
- chaque API peut être testée ;
2812
- chaque règle d’alarme peut être vérifiée ;
2813
- chaque rôle utilisateur peut être testé ;
2814
- les flux équipement / serveur peuvent être simulés ;
2815
- les erreurs de message peuvent être injectées ;
2816
- les données historiques peuvent être vérifiées ;
2817
- les exports peuvent être contrôlés ;
2818
- la restauration applicative peut être validée ;
2819
- la supervision applicative peut être déclenchée.
2820
```
2821
2822
### 28.4 Exploitabilité
2823
2824
Cette partie vérifie que l’application sera exploitable par les utilisateurs.
2825
2826
**Exemples :**
2827
2828
```text
2829
La spécification prend correctement en compte l’exploitation si :
2830
- les états équipements sont visibles ;
2831
- les alarmes critiques sont visibles et compréhensibles ;
2832
- les historiques sont consultables ;
2833
- les exports utiles sont prévus ;
2834
- les droits sont adaptés aux profils ;
2835
- les erreurs sont compréhensibles ;
2836
- les logs permettent le diagnostic ;
2837
- les fonctions d’administration sont maîtrisées.
2838
```
2839
2840
### 28.5 Validation du document
2841
2842
Cette partie précise les revues nécessaires.
2843
2844
**Exemple :**
2845
2846
```text
2847
La spécification serveur / application doit être relue par :
2848
- le responsable applicatif ;
2849
- l’ingénieur système ;
2850
- le responsable firmware ;
2851
- le responsable infrastructure ;
2852
- le responsable base de données ;
2853
- le responsable IHM ;
2854
- le responsable cybersécurité ;
2855
- le responsable validation ;
2856
- le responsable exploitation ;
2857
- le représentant client si l’IHM ou les fonctions d’exploitation sont contractuelles.
2858
```
2859
2860
---
2861
2862
## 29. Annexes
2863
2864
### 29.1 Liste complète des exigences serveur
2865
2866
Cette annexe peut contenir la liste complète des exigences.
2867
2868
**Exemple :**
2869
2870
```text
2871
ID               | Catégorie  | Libellé                        | Criticité | Vérification     | Statut
2872
SRV-REC-001      | réception  | identifier équipement émetteur | élevée    | test API         | à faire
2873
SRV-ALM-001      | alarme     | créer alarme                   | élevée    | test fonctionnel | à faire
2874
SRV-IHM-ALM-001  | IHM        | afficher alarmes actives       | élevée    | test IHM         | à faire
2875
SRV-AUTH-001     | sécurité   | authentifier utilisateur       | critique  | test sécurité    | à faire
2876
SRV-HIST-MES-001 | historique | enregistrer mesures            | élevée    | test DB          | à faire
2877
```
2878
2879
### 29.2 Liste des messages équipements
2880
2881
Cette annexe liste les messages reçus ou envoyés aux équipements.
2882
2883
**Exemple :**
2884
2885
```text
2886
Message | Sens                 | Usage               | Criticité | Acquittement
2887
MEASURE | équipement → serveur | transmission mesure | élevée    | oui
2888
ALARM   | équipement → serveur | transmission alarme | élevée    | oui
2889
STATE   | équipement → serveur | état équipement     | moyenne   | oui
2890
CONFIG  | serveur → équipement | configuration       | élevée    | oui
2891
COMMAND | serveur → équipement | commande distante   | critique  | oui
2892
```
2893
2894
### 29.3 Liste des écrans IHM
2895
2896
Cette annexe reprend les écrans prévus.
2897
2898
**Exemples :**
2899
2900
```text
2901
- tableau de bord ;
2902
- liste équipements ;
2903
- fiche équipement ;
2904
- alarmes actives ;
2905
- historique alarmes ;
2906
- historique mesures ;
2907
- configuration ;
2908
- utilisateurs ;
2909
- administration ;
2910
- supervision ;
2911
- exports ;
2912
- diagnostic.
2913
```
2914
2915
### 29.4 Liste des rôles et droits
2916
2917
Cette annexe reprend la matrice complète des droits.
2918
2919
### 29.5 Liste des API
2920
2921
Cette annexe reprend les API identifiées, sans nécessairement détailler encore chaque endpoint.
2922
2923
### 29.6 Liste des données historisées
2924
2925
Cette annexe reprend les données conservées, leur source, leur durée et leur criticité.
2926
2927
### 29.7 Liste des alarmes serveur
2928
2929
Cette annexe décrit les alarmes générées par le serveur.
2930
2931
**Exemple :**
2932
2933
```text
2934
ID alarme | Source | Condition | Criticité | Action attendue
2935
SRV-ALM-COM-LOSS | serveur | équipement non joignable | majeure | vérifier communication
2936
SRV-ALM-DB-DOWN | serveur | base indisponible | critique | intervention admin
2937
SRV-ALM-MSG-REJECT | serveur | taux messages rejetés élevé | majeure | analyse protocole
2938
SRV-ALM-BKP-FAIL | serveur | sauvegarde échouée | majeure | vérifier sauvegarde
2939
```
2940
2941
### 29.8 Matrice exigences / tests
2942
2943
Cette annexe reprend la matrice de vérification.
2944
2945
### 29.9 Glossaire applicatif
2946
2947
Cette annexe définit les termes propres à l’application.
2948
2949
### 29.10 Historique des décisions applicatives
2950
2951
Cette annexe conserve les décisions structurantes.
2952
2953
**Exemple :**
2954
2955
```text
2956
DEC-SRV-001 :
2957
Les alarmes actives sont consolidées côté serveur afin d’éviter la multiplication d’alarmes identiques.
2958
2959
Justification :
2960
améliorer la lisibilité opérateur et éviter la saturation de l’IHM.
2961
2962
Impact :
2963
nécessite une règle anti-doublon, un modèle de cycle de vie d’alarme et des tests de consolidation.
2964
```