Project

General

Profile

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

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

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