Project

General

Profile

Canevas 7B — Spécification détaillée software embarqué » History » Version 1

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

1 1 Redmine Admin
# Canevas 7B — Spécification détaillée software embarqué
2
# Canevas 7B — Spécification détaillée software embarqué
3
4
## 1. Objet du document
5
6
### 1.1 Finalité de la spécification détaillée software embarqué
7
8
Cette partie précise l’objectif du document.
9
10
La spécification détaillée software embarqué décrit les exigences applicables au logiciel exécuté dans l’équipement embarqué : acquisition des données, traitement local, gestion des modes de fonctionnement, gestion des alarmes, communication avec le serveur, stockage local, diagnostic, configuration, mise à jour, sécurité, journalisation et testabilité.
11
12
Elle constitue la déclinaison logicielle embarquée de la spécification globale, de l’architecture système, du dossier des modes de fonctionnement et de la spécification détaillée hardware.
13
14
Elle doit rester une spécification, c’est-à-dire décrire **ce que le logiciel embarqué doit faire**. Elle ne doit pas encore décrire en détail les classes, fonctions, structures de données, fichiers sources, algorithmes internes ou choix d’implémentation détaillés. Ces éléments relèveront du dossier de conception détaillée software embarqué.
15
16
**Exemple :**
17
18
> Le présent document a pour objectif de spécifier les exigences détaillées applicables au logiciel embarqué. Il décrit les fonctions d’acquisition, de traitement, de communication, de stockage local, de gestion des modes, de gestion des alarmes, de diagnostic, de configuration, de mise à jour et de sécurité que le logiciel embarqué doit assurer.
19
20
### 1.2 Positionnement dans le cycle en V
21
22
Cette partie situe la spécification détaillée software embarqué dans le cycle en V.
23
24
Elle est produite après la spécification globale, l’architecture système, le dossier des modes de fonctionnement et la spécification détaillée hardware. Elle sert d’entrée à la conception détaillée software, au codage, aux tests unitaires logiciels, aux tests d’intégration hardware/software et aux tests système.
25
26
```text
27
Spécification globale
28
29
Architecture système / conception globale
30
31
Dossier des modes de fonctionnement
32
33
Spécification détaillée hardware
34
35
Spécification détaillée software embarqué
36
37
Conception détaillée software embarqué
38
39
Codage / configuration firmware
40
41
Tests unitaires software
42
43
Tests d’intégration hardware/software
44
45
Tests système
46
47
Validation client
48
```
49
50
### 1.3 Différence avec la spécification globale
51
52
Cette partie précise la différence entre la spécification globale et la spécification détaillée software embarqué.
53
54
La spécification globale décrit le comportement attendu du système complet. La spécification détaillée software embarqué décrit ce que le logiciel embarqué doit réaliser pour contribuer à ce comportement.
55
56
**Exemple :**
57
58
```text
59
Spécification globale :
60
Le système doit continuer à acquérir les données en cas de perte de communication serveur.
61
62
Spécification détaillée software embarqué :
63
Le logiciel embarqué doit détecter la perte de communication avec le serveur.
64
Le logiciel embarqué doit poursuivre l’acquisition des mesures configurées.
65
Le logiciel embarqué doit enregistrer localement les données non transmises.
66
Le logiciel embarqué doit déclencher une resynchronisation lorsque la communication est rétablie.
67
```
68
69
### 1.4 Différence avec la conception détaillée software
70
71
Cette partie précise la frontière entre la spécification et la conception.
72
73
La spécification détaillée software indique **le comportement attendu**.
74
La conception détaillée software indique **comment ce comportement sera réalisé techniquement**.
75
76
**Exemple :**
77
78
```text
79
Spécification détaillée software :
80
Le logiciel embarqué doit conserver localement les données non transmises pendant une perte de communication.
81
82
Conception détaillée software :
83
Les données non transmises sont stockées dans une file persistante gérée par le module LocalStorageManager. Chaque enregistrement contient un identifiant, un horodatage, un type de message, un statut et un compteur de tentatives de transmission.
84
```
85
86
### 1.5 Responsabilités de rédaction et d’approbation
87
88
Cette partie précise qui rédige, relit et approuve le document.
89
90
La spécification détaillée software embarqué est généralement rédigée par le responsable logiciel embarqué, avec contribution de l’ingénieur système, du responsable hardware, du responsable serveur, du responsable intégration, du responsable validation, de la maintenance et de la cybersécurité.
91
92
**Exemple :**
93
94
```text
95
Rédaction : responsable software embarqué / ingénieur firmware
96
Contribution : ingénieur système, hardware, serveur, infrastructure, cybersécurité, validation
97
Relecture : architecte système, responsable tests, responsable qualité
98
Approbation : responsable technique fournisseur et client si le document est contractuel
99
```
100
101
---
102
103
## 2. Références et documents applicables
104
105
### 2.1 Documents d’entrée
106
107
Cette partie liste les documents utilisés pour rédiger la spécification software embarqué.
108
109
Ces documents doivent être identifiés avec leur référence, leur version et leur statut, afin d’éviter que le logiciel soit spécifié à partir d’une version obsolète du besoin ou de l’architecture.
110
111
**Exemples :**
112
113
```text
114
- Cahier des charges / expression du besoin
115
- Spécification globale / spécification système
116
- Dossier des modes de fonctionnement
117
- Architecture système / conception globale
118
- Spécification détaillée hardware
119
- Spécification des interfaces
120
- Dossier infrastructure
121
- Dossier de validation client
122
- Analyse de risques
123
- Contraintes cybersécurité
124
- Contraintes d’exploitation
125
- Contraintes de maintenance
126
```
127
128
### 2.2 Documents applicables
129
130
Cette partie liste les documents que le logiciel embarqué doit respecter.
131
132
**Exemples :**
133
134
```text
135
- standard de développement logiciel ;
136
- règles de codage ;
137
- règles de gestion de configuration ;
138
- règles de cybersécurité ;
139
- règles de journalisation ;
140
- contraintes temps réel ;
141
- contraintes de sûreté de fonctionnement ;
142
- contraintes de testabilité ;
143
- normes ou standards sectoriels applicables ;
144
- protocole de communication imposé ;
145
- règles de versionnement firmware.
146
```
147
148
### 2.3 Documents produits à partir de cette spécification
149
150
Cette partie liste les documents qui seront dérivés de la spécification software embarqué.
151
152
**Exemples :**
153
154
```text
155
- dossier de conception détaillée software embarqué ;
156
- plan de tests unitaires software ;
157
- procédures de tests unitaires ;
158
- procédures de tests d’intégration hardware/software ;
159
- procédures de tests de communication ;
160
- procédures de tests des modes dégradés ;
161
- dossier de configuration firmware ;
162
- manuel de maintenance logicielle ;
163
- procédure de mise à jour firmware ;
164
- rapport de tests software.
165
```
166
167
### 2.4 Gestion des versions
168
169
Cette partie précise que les versions software doivent être identifiées et maîtrisées.
170
171
Une modification du firmware peut avoir des impacts sur le matériel, le serveur, les interfaces, les modes de fonctionnement, les tests, la validation et la maintenance.
172
173
**Exemple :**
174
175
> Toute modification d’une fonction d’acquisition, d’un protocole de communication, d’une règle d’alarme, d’une gestion de mode, d’un format de stockage local ou d’une procédure de mise à jour doit faire l’objet d’une analyse d’impact sur les tests unitaires, les tests d’intégration, la documentation de maintenance et la configuration livrée.
176
177
---
178
179
## 3. Définitions, acronymes et conventions
180
181
### 3.1 Définitions
182
183
Cette partie définit les termes utilisés dans le document.
184
185
**Exemples :**
186
187
```text
188
Firmware :
189
Logiciel embarqué exécuté sur le matériel de l’équipement.
190
191
Cycle d’acquisition :
192
Séquence périodique consistant à lire une ou plusieurs entrées, valider les données, les traiter puis les rendre disponibles au reste du système.
193
194
Mode dégradé :
195
Mode dans lequel le firmware maintient certaines fonctions malgré la perte d’une ressource, par exemple communication serveur, capteur ou stockage.
196
197
Alarme locale :
198
Alarme générée par le firmware à partir d’un état ou d’une mesure détectée localement.
199
200
File locale :
201
Mécanisme de stockage temporaire des données ou événements non transmis au serveur.
202
203
Watchdog :
204
Mécanisme de surveillance permettant de détecter un blocage logiciel et de provoquer une action de reprise.
205
```
206
207
### 3.2 Acronymes
208
209
**Exemples :**
210
211
```text
212
ADC  : Analog-to-Digital Converter
213
API  : Application Programming Interface
214
BMS  : Battery Management System
215
CRC  : Cyclic Redundancy Check
216
GPIO : General Purpose Input/Output
217
IHM  : Interface Homme-Machine
218
NTP  : Network Time Protocol
219
RTC  : Real-Time Clock
220
RTOS : Real-Time Operating System
221
TLS  : Transport Layer Security
222
UART : Universal Asynchronous Receiver Transmitter
223
```
224
225
### 3.3 Convention d’identification des exigences software embarqué
226
227
Cette partie définit la codification des exigences.
228
229
**Exemple :**
230
231
```text
232
SW-BOOT-001 : exigence de démarrage
233
SW-MODE-001 : exigence de gestion des modes
234
SW-ACQ-001  : exigence d’acquisition
235
SW-TRT-001  : exigence de traitement
236
SW-ALM-001  : exigence de gestion des alarmes
237
SW-COM-001  : exigence de communication
238
SW-STO-001  : exigence de stockage local
239
SW-CFG-001  : exigence de configuration
240
SW-DIAG-001 : exigence de diagnostic
241
SW-MAJ-001  : exigence de mise à jour
242
SW-SEC-001  : exigence de sécurité
243
SW-TEST-001 : exigence de testabilité
244
```
245
246
### 3.4 Convention de formulation des exigences
247
248
Cette partie rappelle qu’une exigence doit être claire, vérifiable et non ambiguë.
249
250
**Exemples :**
251
252
```text
253
Correct :
254
SW-ACQ-001 — Le logiciel embarqué doit lire la mesure de température toutes les 10 secondes en mode nominal.
255
256
Incorrect :
257
Le logiciel doit lire régulièrement la température.
258
259
Correct :
260
SW-COM-004 — Le logiciel embarqué doit considérer la communication serveur comme perdue si aucun acquittement valide n’est reçu pendant plus de 120 secondes.
261
262
Incorrect :
263
Le logiciel doit bien gérer les pertes réseau.
264
```
265
266
### 3.5 Convention de criticité
267
268
Cette partie peut définir une criticité pour les exigences.
269
270
**Exemple :**
271
272
```text
273
Critique :
274
exigence liée à la sécurité, à l’état sûr, à l’arrêt d’urgence ou à une fonction indispensable.
275
276
Élevée :
277
exigence affectant une fonction majeure du système.
278
279
Moyenne :
280
exigence importante mais dont le défaut n’empêche pas totalement l’exploitation.
281
282
Faible :
283
exigence de confort, d’ergonomie, d’optimisation ou de diagnostic secondaire.
284
```
285
286
---
287
288
## 4. Vue générale du logiciel embarqué
289
290
### 4.1 Présentation générale
291
292
Cette partie décrit le rôle du logiciel embarqué dans le système.
293
294
Elle doit permettre à un lecteur de comprendre ce que le firmware assure localement et comment il interagit avec le hardware, le serveur et les utilisateurs.
295
296
**Exemple :**
297
298
> Le logiciel embarqué assure l’acquisition des signaux matériels, le traitement local des données, la surveillance des seuils, la génération des alarmes locales, la gestion des modes de fonctionnement, le stockage temporaire des données, la communication avec le serveur applicatif et les fonctions de diagnostic et de maintenance locale.
299
300
### 4.2 Fonctions principales du logiciel embarqué
301
302
Cette partie liste les grandes fonctions logicielles.
303
304
**Exemples :**
305
306
```text
307
- démarrage et initialisation ;
308
- gestion des modes ;
309
- acquisition des entrées ;
310
- commande des sorties ;
311
- traitement des mesures ;
312
- surveillance des seuils ;
313
- gestion des alarmes ;
314
- communication avec le serveur ;
315
- stockage local ;
316
- resynchronisation ;
317
- diagnostic ;
318
- gestion de configuration ;
319
- mise à jour firmware ;
320
- journalisation ;
321
- sécurité et contrôle d’accès local si applicable.
322
```
323
324
### 4.3 Frontières du logiciel embarqué
325
326
Cette partie précise ce qui relève du firmware et ce qui relève d’autres sous-systèmes.
327
328
**Exemple :**
329
330
```text
331
Inclus dans le logiciel embarqué :
332
- lecture des entrées matérielles ;
333
- commande des sorties matérielles ;
334
- détection des défauts locaux ;
335
- stockage temporaire des données ;
336
- communication avec le serveur ;
337
- gestion des modes locaux.
338
339
Externe au logiciel embarqué :
340
- affichage web côté serveur ;
341
- stockage longue durée centralisé ;
342
- gestion globale des utilisateurs si assurée par le serveur ;
343
- sauvegarde serveur ;
344
- administration réseau ;
345
- base de données centrale.
346
```
347
348
### 4.4 Interactions avec le hardware
349
350
Cette partie décrit les interactions entre le logiciel et le matériel.
351
352
**Exemples :**
353
354
```text
355
- lecture d’entrées numériques ;
356
- lecture d’entrées analogiques ;
357
- commande de sorties relais ;
358
- lecture d’un bus de communication ;
359
- gestion d’un module 4G ou Ethernet ;
360
- lecture de l’état d’alimentation ;
361
- utilisation d’une mémoire non volatile ;
362
- utilisation d’une horloge temps réel ;
363
- interaction avec un watchdog matériel.
364
```
365
366
### 4.5 Interactions avec le serveur
367
368
Cette partie décrit les interactions avec la partie serveur.
369
370
**Exemples :**
371
372
```text
373
- envoi périodique de mesures ;
374
- envoi événementiel d’alarmes ;
375
- réception d’acquittements ;
376
- réception de configuration ;
377
- envoi de journaux ;
378
- synchronisation horaire ;
379
- resynchronisation après coupure réseau ;
380
- notification de changement de mode.
381
```
382
383
### 4.6 Interactions avec l’opérateur ou la maintenance
384
385
Cette partie décrit les interactions locales éventuelles.
386
387
**Exemples :**
388
389
```text
390
- voyant d’état ;
391
- bouton local ;
392
- port de maintenance ;
393
- commande de diagnostic ;
394
- export de logs ;
395
- mode maintenance ;
396
- indication de défaut ;
397
- retour d’état local.
398
```
399
400
---
401
402
## 5. Exigences de démarrage et d’initialisation
403
404
### 5.1 Objet des exigences de démarrage
405
406
Cette partie décrit le comportement attendu du firmware lors de la mise sous tension, du redémarrage ou du retour après mise à jour.
407
408
Le démarrage est une phase critique, car le logiciel doit établir un état cohérent du système avant d’autoriser le fonctionnement nominal.
409
410
### 5.2 Séquence de démarrage
411
412
Cette partie décrit les étapes attendues au démarrage.
413
414
**Exemple :**
415
416
```text
417
SW-BOOT-001 — Au démarrage, le logiciel embarqué doit initialiser les ressources matérielles nécessaires à son fonctionnement.
418
419
SW-BOOT-002 — Au démarrage, le logiciel embarqué doit charger la configuration locale.
420
421
SW-BOOT-003 — Au démarrage, le logiciel embarqué doit vérifier la cohérence de la configuration chargée.
422
423
SW-BOOT-004 — Au démarrage, le logiciel embarqué doit initialiser les communications nécessaires.
424
425
SW-BOOT-005 — Au démarrage, le logiciel embarqué doit déterminer le mode initial du système.
426
```
427
428
### 5.3 Vérifications au démarrage
429
430
Cette partie liste les contrôles que le firmware doit réaliser.
431
432
**Exemples :**
433
434
```text
435
- validité de la configuration ;
436
- disponibilité du stockage local ;
437
- état des entrées critiques ;
438
- état des sorties ;
439
- version hardware ;
440
- version firmware ;
441
- état du module communication ;
442
- état de l’horloge ;
443
- cause du dernier redémarrage ;
444
- disponibilité des ressources mémoire ;
445
- état du watchdog.
446
```
447
448
### 5.4 Gestion des défauts au démarrage
449
450
Cette partie décrit le comportement en cas d’anomalie détectée dès le démarrage.
451
452
**Exemple :**
453
454
```text
455
SW-BOOT-010 — Si la configuration locale est absente ou invalide, le logiciel embarqué doit empêcher le passage en mode nominal et signaler un défaut de configuration.
456
457
SW-BOOT-011 — Si un capteur critique est indisponible au démarrage, le logiciel embarqué doit appliquer la règle définie dans le dossier des modes : mode dégradé, état sûr ou arrêt.
458
459
SW-BOOT-012 — Si la communication serveur est indisponible au démarrage, le logiciel embarqué doit appliquer le mode dégradé communication si les fonctions locales peuvent être maintenues.
460
```
461
462
### 5.5 État initial des sorties
463
464
Cette partie précise comment le firmware doit gérer les sorties au démarrage.
465
466
**Exemples :**
467
468
```text
469
SW-BOOT-020 — Les sorties critiques doivent rester dans leur état sûr jusqu’à ce que les conditions de fonctionnement soient validées.
470
471
SW-BOOT-021 — Le logiciel embarqué ne doit pas générer de commande intempestive lors du démarrage.
472
473
SW-BOOT-022 — Toute activation de sortie après démarrage doit être conditionnée par la validation du mode et des règles de sécurité applicables.
474
```
475
476
### 5.6 Redémarrage après incident
477
478
Cette partie décrit le comportement après un reset, watchdog ou coupure d’alimentation.
479
480
**Exemples :**
481
482
```text
483
SW-BOOT-030 — Le logiciel embarqué doit enregistrer ou exposer la cause du dernier redémarrage si cette information est disponible.
484
485
SW-BOOT-031 — Après un redémarrage non planifié, le logiciel embarqué doit vérifier l’intégrité des données locales avant reprise.
486
487
SW-BOOT-032 — Après un redémarrage watchdog, le logiciel embarqué doit signaler un événement de redémarrage anormal.
488
```
489
490
### 5.7 Tests associés
491
492
Cette partie indique les tests à prévoir.
493
494
**Exemples :**
495
496
```text
497
- démarrage nominal ;
498
- démarrage avec configuration absente ;
499
- démarrage avec configuration corrompue ;
500
- démarrage sans serveur ;
501
- démarrage avec stockage local indisponible ;
502
- démarrage après coupure d’alimentation ;
503
- démarrage après watchdog ;
504
- vérification de l’état initial des sorties.
505
```
506
507
---
508
509
## 6. Exigences de gestion des modes de fonctionnement
510
511
### 6.1 Objet de la gestion des modes
512
513
Cette partie décrit comment le logiciel embarqué doit gérer les modes définis dans le dossier des modes de fonctionnement.
514
515
Le firmware doit connaître le mode courant du système, appliquer les fonctions autorisées ou interdites dans ce mode, gérer les transitions et signaler les changements de mode.
516
517
### 6.2 Modes supportés
518
519
Cette partie liste les modes que le firmware doit gérer.
520
521
**Exemples :**
522
523
```text
524
- arrêt ;
525
- démarrage ;
526
- initialisation ;
527
- nominal ;
528
- maintenance ;
529
- diagnostic ;
530
- dégradé communication ;
531
- dégradé capteur ;
532
- dégradé stockage ;
533
- secours / état sûr ;
534
- mise à jour ;
535
- arrêt contrôlé ;
536
- arrêt d’urgence.
537
```
538
539
### 6.3 Mode nominal
540
541
Cette partie décrit le comportement logiciel attendu en mode nominal.
542
543
**Exemple :**
544
545
```text
546
SW-MODE-NOM-001 — En mode nominal, le logiciel embarqué doit exécuter les fonctions d’acquisition, de traitement, de surveillance, de communication et de journalisation définies.
547
548
SW-MODE-NOM-002 — En mode nominal, le logiciel embarqué doit signaler tout défaut détecté selon les règles d’alarme définies.
549
550
SW-MODE-NOM-003 — En mode nominal, le logiciel embarqué doit maintenir la communication serveur si celle-ci est disponible.
551
```
552
553
### 6.4 Mode maintenance
554
555
Cette partie décrit le comportement logiciel en mode maintenance.
556
557
**Exemples :**
558
559
```text
560
SW-MODE-MNT-001 — Le passage en mode maintenance doit être déclenché uniquement dans les conditions définies par le dossier des modes.
561
562
SW-MODE-MNT-002 — En mode maintenance, le logiciel embarqué doit permettre les fonctions de diagnostic et de test autorisées.
563
564
SW-MODE-MNT-003 — Les actions réalisées en mode maintenance doivent être journalisées.
565
566
SW-MODE-MNT-004 — Le retour au mode nominal doit réactiver les fonctions inhibées, sauf exception explicitement prévue.
567
```
568
569
### 6.5 Mode diagnostic
570
571
Cette partie décrit les fonctions de diagnostic accessibles.
572
573
**Exemples :**
574
575
```text
576
SW-MODE-DIAG-001 — En mode diagnostic, le logiciel embarqué doit permettre la consultation des états internes autorisés.
577
578
SW-MODE-DIAG-002 — En mode diagnostic, le logiciel embarqué doit permettre l’export des journaux techniques si cette fonction est prévue.
579
580
SW-MODE-DIAG-003 — Le mode diagnostic ne doit pas autoriser de commande physique dangereuse sans passage par un mode approprié.
581
```
582
583
### 6.6 Mode dégradé communication
584
585
Cette partie décrit le comportement attendu en cas de perte de communication serveur.
586
587
**Exemple :**
588
589
```text
590
SW-MODE-COM-001 — Le logiciel embarqué doit passer en mode dégradé communication lorsque les critères de perte serveur sont atteints.
591
592
SW-MODE-COM-002 — En mode dégradé communication, le logiciel embarqué doit poursuivre les acquisitions locales autorisées.
593
594
SW-MODE-COM-003 — En mode dégradé communication, le logiciel embarqué doit stocker localement les données non transmises.
595
596
SW-MODE-COM-004 — En mode dégradé communication, le logiciel embarqué doit interdire ou ignorer les commandes distantes indisponibles.
597
```
598
599
### 6.7 Mode dégradé capteur
600
601
Cette partie décrit le comportement attendu en cas de capteur absent, incohérent ou défaillant.
602
603
**Exemples :**
604
605
```text
606
SW-MODE-CAPT-001 — Le logiciel embarqué doit détecter l’indisponibilité d’un capteur critique si le hardware permet cette détection.
607
608
SW-MODE-CAPT-002 — En cas de défaut capteur non critique, le logiciel embarqué doit maintenir les fonctions non dépendantes de ce capteur.
609
610
SW-MODE-CAPT-003 — En cas de défaut capteur critique, le logiciel embarqué doit appliquer le comportement défini dans le dossier des modes.
611
```
612
613
### 6.8 Mode secours ou état sûr
614
615
Cette partie décrit le comportement logiciel en cas de situation critique.
616
617
**Exemples :**
618
619
```text
620
SW-MODE-SAFE-001 — Le logiciel embarqué doit placer les sorties critiques dans un état sûr lorsque les conditions d’état sûr sont réunies.
621
622
SW-MODE-SAFE-002 — Le logiciel embarqué ne doit pas autoriser un retour automatique au mode nominal depuis un état sûr si une intervention est requise.
623
624
SW-MODE-SAFE-003 — Le logiciel embarqué doit journaliser l’entrée en état sûr si les ressources nécessaires sont disponibles.
625
```
626
627
### 6.9 Transitions entre modes
628
629
Cette partie précise les règles de transition.
630
631
**Exemple :**
632
633
```text
634
SW-MODE-TR-001 — Le logiciel embarqué doit autoriser uniquement les transitions définies dans le dossier des modes.
635
636
SW-MODE-TR-002 — Le logiciel embarqué doit refuser toute transition interdite.
637
638
SW-MODE-TR-003 — Le logiciel embarqué doit journaliser les transitions de mode significatives.
639
640
SW-MODE-TR-004 — Les transitions critiques doivent être protégées contre les déclenchements intempestifs.
641
```
642
643
### 6.10 Tests associés
644
645
**Exemples :**
646
647
```text
648
- passage démarrage vers nominal ;
649
- passage nominal vers maintenance ;
650
- refus maintenance utilisateur non autorisé ;
651
- passage nominal vers dégradé communication ;
652
- retour dégradé communication vers nominal ;
653
- passage nominal vers état sûr ;
654
- refus retour automatique depuis arrêt d’urgence ;
655
- journalisation des transitions.
656
```
657
658
---
659
660
## 7. Exigences d’acquisition des données
661
662
### 7.1 Objet des fonctions d’acquisition
663
664
Cette partie décrit comment le firmware doit lire les signaux provenant du matériel : entrées numériques, entrées analogiques, bus, capteurs intelligents, états internes ou informations de diagnostic.
665
666
### 7.2 Liste des données acquises
667
668
Cette partie liste les données que le logiciel doit acquérir.
669
670
**Exemple :**
671
672
```text
673
Donnée        | Source hardware      | Type       | Périodicité     | Criticité
674
TEMP_INT      | capteur température  | analogique | 10 s            | élevée
675
V_BATT        | mesure tension       | analogique | 10 s            | élevée
676
DOOR_STATE    | contact porte        | numérique  | événement / 1 s | moyenne
677
BMS_STATE     | bus RS485/CAN        | message    | 5 s             | élevée
678
COM_LINK      | module communication | état       | 10 s            | élevée
679
STORAGE_LEVEL | mémoire locale       | interne    | 60 s            | élevée
680
```
681
682
### 7.3 Acquisition périodique
683
684
Cette partie décrit les acquisitions réalisées à intervalle régulier.
685
686
**Exemples :**
687
688
```text
689
SW-ACQ-001 — Le logiciel embarqué doit acquérir les mesures périodiques selon la fréquence définie pour chaque donnée.
690
691
SW-ACQ-002 — Le logiciel embarqué doit horodater les mesures acquises.
692
693
SW-ACQ-003 — Le logiciel embarqué doit distinguer une donnée acquise valide d’une donnée invalide.
694
695
SW-ACQ-004 — Le logiciel embarqué doit signaler l’absence d’une donnée attendue si cette absence est détectable.
696
```
697
698
### 7.4 Acquisition événementielle
699
700
Cette partie décrit les acquisitions déclenchées par changement d’état ou événement.
701
702
**Exemples :**
703
704
```text
705
- changement d’état d’une entrée numérique ;
706
- apparition d’un défaut ;
707
- activation d’un bouton ;
708
- réception d’un message bus ;
709
- franchissement d’un seuil ;
710
- retour d’un capteur ;
711
- perte d’un capteur.
712
```
713
714
**Exemple d’exigence :**
715
716
```text
717
SW-ACQ-EVT-001 — Le logiciel embarqué doit détecter les changements d’état des entrées identifiées comme événementielles.
718
```
719
720
### 7.5 Validation des données acquises
721
722
Cette partie décrit les règles permettant de déterminer si une donnée est valide.
723
724
**Exemples :**
725
726
```text
727
- plage physique acceptable ;
728
- cohérence entre plusieurs mesures ;
729
- absence de valeur impossible ;
730
- contrôle CRC ou checksum ;
731
- horodatage cohérent ;
732
- compteur de messages ;
733
- état capteur disponible ;
734
- absence de timeout.
735
```
736
737
**Exemple :**
738
739
```text
740
SW-ACQ-VAL-001 — Le logiciel embarqué doit marquer comme invalide toute mesure analogique située hors de la plage physique définie.
741
```
742
743
### 7.6 Filtrage et anti-rebond logiciel
744
745
Cette partie décrit les traitements de stabilisation des signaux.
746
747
**Exemples :**
748
749
```text
750
SW-ACQ-FILT-001 — Le logiciel embarqué doit appliquer un anti-rebond logiciel aux entrées numériques qui le nécessitent.
751
752
SW-ACQ-FILT-002 — Le filtrage logiciel ne doit pas masquer un événement critique au-delà du délai maximal acceptable.
753
754
SW-ACQ-FILT-003 — Les règles de filtrage doivent être compatibles avec les contraintes temporelles du système.
755
```
756
757
### 7.7 Gestion des défauts d’acquisition
758
759
Cette partie décrit ce qui se passe lorsqu’une acquisition échoue.
760
761
**Exemples :**
762
763
```text
764
- capteur absent ;
765
- bus silencieux ;
766
- donnée hors plage ;
767
- message corrompu ;
768
- timeout ;
769
- valeur figée ;
770
- incohérence entre capteurs ;
771
- erreur ADC ;
772
- défaut hardware.
773
```
774
775
**Exemple d’exigence :**
776
777
```text
778
SW-ACQ-ERR-001 — En cas d’échec répété d’acquisition d’une donnée critique, le logiciel embarqué doit générer un défaut et appliquer le mode de fonctionnement associé.
779
```
780
781
### 7.8 Tests associés
782
783
**Exemples :**
784
785
```text
786
- acquisition d’une valeur nominale ;
787
- acquisition d’une valeur limite ;
788
- valeur hors plage ;
789
- capteur débranché ;
790
- signal instable ;
791
- changement d’état rapide ;
792
- message bus invalide ;
793
- timeout capteur ;
794
- vérification horodatage.
795
```
796
797
---
798
799
## 8. Exigences de traitement local
800
801
### 8.1 Objet des traitements locaux
802
803
Cette partie décrit les traitements réalisés par le firmware avant transmission ou action.
804
805
Le traitement local peut inclure la conversion de mesures, le filtrage, la comparaison à des seuils, la détection d’anomalies, l’agrégation, la génération d’états ou le calcul d’indicateurs.
806
807
### 8.2 Conversion des mesures
808
809
Cette partie décrit les conversions nécessaires entre signal brut et valeur exploitable.
810
811
**Exemples :**
812
813
```text
814
SW-TRT-CONV-001 — Le logiciel embarqué doit convertir les valeurs brutes des entrées analogiques en unités physiques lorsque cette conversion est nécessaire.
815
816
SW-TRT-CONV-002 — Les coefficients de conversion doivent être définis par configuration ou par constante validée.
817
818
SW-TRT-CONV-003 — Toute erreur de conversion ou valeur impossible doit être signalée comme donnée invalide.
819
```
820
821
**Exemple :**
822
823
```text
824
Valeur brute ADC → tension mesurée → température calculée → comparaison au seuil.
825
```
826
827
### 8.3 Surveillance des seuils
828
829
Cette partie décrit la comparaison des mesures à des seuils.
830
831
**Exemples :**
832
833
```text
834
SW-TRT-SEUIL-001 — Le logiciel embarqué doit comparer les mesures surveillées aux seuils configurés.
835
836
SW-TRT-SEUIL-002 — Le logiciel embarqué doit distinguer les seuils d’information, d’alerte et de défaut critique si ces niveaux sont définis.
837
838
SW-TRT-SEUIL-003 — Le franchissement d’un seuil doit générer un événement ou une alarme selon les règles définies.
839
```
840
841
### 8.4 Hystérésis et temporisation
842
843
Cette partie décrit les mécanismes évitant les alarmes instables.
844
845
**Exemple :**
846
847
```text
848
SW-TRT-HYST-001 — Lorsqu’une hystérésis est définie, le logiciel embarqué doit appliquer des seuils distincts d’apparition et de disparition de l’alarme.
849
850
SW-TRT-TEMP-001 — Lorsqu’une temporisation est définie, le logiciel embarqué doit générer l’alarme uniquement si la condition reste vraie pendant la durée prévue.
851
```
852
853
**Exemple explicatif :**
854
855
> Si la température dépasse 70 °C, une alarme peut être déclenchée après 30 secondes de dépassement continu. Elle ne sera clôturée qu’après retour sous 65 °C, afin d’éviter les oscillations autour du seuil.
856
857
### 8.5 Agrégation ou synthèse d’état
858
859
Cette partie décrit la construction d’un état global à partir de plusieurs informations.
860
861
**Exemples :**
862
863
```text
864
SW-TRT-ETAT-001 — Le logiciel embarqué doit produire un état global de l’équipement à partir des défauts, alarmes, modes et états de communication.
865
866
SW-TRT-ETAT-002 — L’état global doit distinguer au minimum : nominal, dégradé, maintenance, défaut critique et arrêt.
867
868
SW-TRT-ETAT-003 — L’état global doit être transmis au serveur et rendu disponible au diagnostic local.
869
```
870
871
### 8.6 Priorités de traitement
872
873
Cette partie décrit les traitements prioritaires.
874
875
**Exemples :**
876
877
```text
878
Priorité haute :
879
- sécurité ;
880
- arrêt d’urgence ;
881
- état sûr ;
882
- défaut critique ;
883
- watchdog ;
884
- commandes critiques.
885
886
Priorité moyenne :
887
- acquisition ;
888
- alarmes ;
889
- communication ;
890
- stockage.
891
892
Priorité basse :
893
- diagnostics détaillés ;
894
- logs verbeux ;
895
- statistiques ;
896
- opérations non critiques.
897
```
898
899
### 8.7 Tests associés
900
901
**Exemples :**
902
903
```text
904
- conversion d’une mesure ;
905
- franchissement d’un seuil ;
906
- retour sous seuil avec hystérésis ;
907
- temporisation avant alarme ;
908
- agrégation d’état global ;
909
- priorité défaut critique ;
910
- traitement d’une donnée invalide.
911
```
912
913
---
914
915
## 9. Exigences de commande des sorties
916
917
### 9.1 Objet des commandes
918
919
Cette partie décrit les sorties que le firmware peut commander : relais, sorties numériques, sorties analogiques, voyants, afficheurs, modules de communication, actionneurs ou signaux vers un équipement tiers.
920
921
### 9.2 Liste des sorties commandées
922
923
**Exemple :**
924
925
```text
926
Sortie      | Usage               | Commandée par | Mode autorisé       | Criticité
927
OUT_RELAY_1 | commande contacteur | firmware      | nominal/maintenance | critique
928
LED_STATUS  | état système        | firmware      | tous modes          | faible
929
OUT_FAULT   | défaut général      | firmware      | tous modes          | élevée
930
BUZZER      | alarme locale       | firmware      | nominal/défaut      | moyenne
931
```
932
933
### 9.3 Conditions d’autorisation des commandes
934
935
Cette partie décrit les conditions nécessaires avant d’activer une sortie.
936
937
**Exemples :**
938
939
```text
940
SW-CMD-001 — Le logiciel embarqué doit vérifier les conditions de sécurité avant d’activer une sortie critique.
941
942
SW-CMD-002 — Une commande critique ne doit être autorisée que dans les modes prévus.
943
944
SW-CMD-003 — Une commande critique doit être refusée si un défaut incompatible est actif.
945
946
SW-CMD-004 — Toute commande critique doit être journalisée.
947
```
948
949
### 9.4 État initial et état sûr
950
951
Cette partie décrit l’état des sorties au démarrage, en défaut et à l’arrêt.
952
953
**Exemples :**
954
955
```text
956
SW-CMD-SAFE-001 — Au démarrage, les sorties critiques doivent rester dans leur état sûr jusqu’à validation du mode courant.
957
958
SW-CMD-SAFE-002 — En cas de défaut critique, le logiciel embarqué doit placer les sorties concernées dans leur état sûr.
959
960
SW-CMD-SAFE-003 — En mode arrêt d’urgence, le logiciel embarqué ne doit pas réactiver une sortie critique sans procédure de réarmement.
961
```
962
963
### 9.5 Commandes locales et commandes distantes
964
965
Cette partie distingue les commandes issues du firmware, d’un opérateur local ou du serveur.
966
967
**Exemples :**
968
969
```text
970
Commande locale automatique :
971
déclenchée par le firmware selon une règle interne.
972
973
Commande distante :
974
reçue du serveur ou de l’IHM.
975
976
Commande maintenance :
977
déclenchée localement par un technicien habilité.
978
979
Commande de sécurité :
980
déclenchée par un événement critique ou une entrée de sécurité.
981
```
982
983
**Exemple d’exigence :**
984
985
```text
986
SW-CMD-DIST-001 — Le logiciel embarqué doit refuser toute commande distante si la communication n’est pas authentifiée ou si le mode courant ne l’autorise pas.
987
```
988
989
### 9.6 Confirmation de commande
990
991
Cette partie décrit comment le firmware confirme ou refuse une commande.
992
993
**Exemples :**
994
995
```text
996
SW-CMD-ACK-001 — Le logiciel embarqué doit produire un retour d’exécution après réception d’une commande.
997
998
SW-CMD-ACK-002 — Le retour d’exécution doit indiquer si la commande a été acceptée, refusée, exécutée ou échouée.
999
1000
SW-CMD-ACK-003 — En cas de refus, le motif doit être identifiable.
1001
```
1002
1003
### 9.7 Tests associés
1004
1005
**Exemples :**
1006
1007
```text
1008
- commande sortie autorisée ;
1009
- commande sortie refusée par mode incompatible ;
1010
- commande refusée par défaut actif ;
1011
- état sûr au démarrage ;
1012
- état sûr après défaut critique ;
1013
- retour d’exécution ;
1014
- journalisation de commande ;
1015
- refus commande distante non autorisée.
1016
```
1017
1018
---
1019
1020
## 10. Exigences de gestion des alarmes et événements
1021
1022
### 10.1 Objet de la gestion des alarmes
1023
1024
Cette partie décrit comment le firmware doit générer, maintenir, clôturer, historiser et transmettre les alarmes.
1025
1026
Les alarmes peuvent être locales ou transmises au serveur. Elles peuvent concerner un défaut capteur, une perte de communication, un dépassement de seuil, un défaut matériel, un défaut logiciel, un état de sécurité ou une erreur de configuration.
1027
1028
### 10.2 Types d’événements
1029
1030
**Exemples :**
1031
1032
```text
1033
- mesure hors seuil ;
1034
- défaut capteur ;
1035
- défaut communication ;
1036
- défaut stockage ;
1037
- redémarrage ;
1038
- passage de mode ;
1039
- commande opérateur ;
1040
- défaut configuration ;
1041
- mise à jour ;
1042
- watchdog ;
1043
- arrêt d’urgence.
1044
```
1045
1046
### 10.3 Niveaux de criticité
1047
1048
Cette partie décrit les niveaux d’alarme.
1049
1050
**Exemple :**
1051
1052
```text
1053
Information :
1054
événement utile mais sans impact opérationnel direct.
1055
1056
Mineure :
1057
défaut non critique, surveillance à prévoir.
1058
1059
Majeure :
1060
défaut impactant une fonction importante.
1061
1062
Critique :
1063
défaut pouvant affecter la sécurité, la disponibilité ou l’état sûr.
1064
```
1065
1066
### 10.4 Création d’une alarme
1067
1068
Cette partie décrit les informations minimales associées à une alarme.
1069
1070
**Exemples :**
1071
1072
```text
1073
SW-ALM-001 — Toute alarme générée par le logiciel embarqué doit comporter un identifiant unique ou un type d’alarme.
1074
1075
SW-ALM-002 — Toute alarme doit comporter un horodatage.
1076
1077
SW-ALM-003 — Toute alarme doit comporter un niveau de criticité.
1078
1079
SW-ALM-004 — Toute alarme doit indiquer l’origine du défaut lorsque cette origine est connue.
1080
1081
SW-ALM-005 — Toute alarme doit être journalisée localement si la ressource de stockage est disponible.
1082
```
1083
1084
### 10.5 Cycle de vie d’une alarme
1085
1086
Cette partie décrit les états possibles d’une alarme.
1087
1088
**Exemple :**
1089
1090
```text
1091
- apparue ;
1092
- active ;
1093
- acquittée ;
1094
- disparue ;
1095
- clôturée ;
1096
- historisée ;
1097
- retransmise au serveur ;
1098
- non transmise en attente de synchronisation.
1099
```
1100
1101
### 10.6 Acquittement d’alarme
1102
1103
Cette partie décrit les règles d’acquittement.
1104
1105
**Exemples :**
1106
1107
```text
1108
SW-ALM-ACK-001 — Le logiciel embarqué doit accepter l’acquittement d’une alarme uniquement si cette fonction est autorisée pour le type d’alarme.
1109
1110
SW-ALM-ACK-002 — L’acquittement d’une alarme ne doit pas masquer le défaut si la condition d’apparition est toujours présente.
1111
1112
SW-ALM-ACK-003 — L’acquittement doit être journalisé avec son origine lorsque cette information est disponible.
1113
```
1114
1115
### 10.7 Transmission des alarmes au serveur
1116
1117
Cette partie décrit l’envoi des alarmes.
1118
1119
**Exemples :**
1120
1121
```text
1122
SW-ALM-COM-001 — Le logiciel embarqué doit transmettre les alarmes au serveur lorsque la communication est disponible.
1123
1124
SW-ALM-COM-002 — En cas de perte de communication, les alarmes non transmises doivent être conservées localement selon la politique de stockage.
1125
1126
SW-ALM-COM-003 — Au retour de communication, les alarmes non transmises doivent être retransmises avec leur horodatage d’origine.
1127
```
1128
1129
### 10.8 Tests associés
1130
1131
**Exemples :**
1132
1133
```text
1134
- génération d’une alarme sur seuil ;
1135
- génération d’une alarme capteur absent ;
1136
- alarme critique et passage état sûr ;
1137
- acquittement autorisé ;
1138
- acquittement refusé ;
1139
- conservation alarme en perte réseau ;
1140
- retransmission alarme après retour réseau ;
1141
- clôture alarme après disparition défaut.
1142
```
1143
1144
---
1145
1146
## 11. Exigences de communication avec le serveur
1147
1148
### 11.1 Objet de la communication serveur
1149
1150
Cette partie décrit les échanges entre le firmware et le serveur applicatif.
1151
1152
Le firmware peut transmettre des mesures, alarmes, événements, états, logs ou diagnostics. Il peut recevoir des acquittements, configurations, commandes, demandes de diagnostic ou mises à jour.
1153
1154
### 11.2 Types de messages transmis
1155
1156
**Exemples :**
1157
1158
```text
1159
- mesures périodiques ;
1160
- alarmes ;
1161
- événements ;
1162
- état courant ;
1163
- informations de diagnostic ;
1164
- version firmware ;
1165
- configuration active ;
1166
- logs ;
1167
- résultats de commande ;
1168
- état de synchronisation.
1169
```
1170
1171
### 11.3 Types de messages reçus
1172
1173
**Exemples :**
1174
1175
```text
1176
- acquittements ;
1177
- configuration ;
1178
- commande distante ;
1179
- demande de diagnostic ;
1180
- demande de mise à jour ;
1181
- demande de resynchronisation ;
1182
- synchronisation horaire ;
1183
- changement de seuils.
1184
```
1185
1186
### 11.4 Établissement de communication
1187
1188
Cette partie décrit les conditions de connexion.
1189
1190
**Exemples :**
1191
1192
```text
1193
SW-COM-001 — Le logiciel embarqué doit tenter d’établir la communication avec le serveur selon la configuration active.
1194
1195
SW-COM-002 — Le logiciel embarqué doit signaler l’état de communication : connecté, déconnecté, dégradé, en erreur.
1196
1197
SW-COM-003 — Le logiciel embarqué doit identifier le serveur cible à partir de la configuration validée.
1198
```
1199
1200
### 11.5 Acquittements
1201
1202
Cette partie décrit la gestion des acquittements.
1203
1204
**Exemples :**
1205
1206
```text
1207
SW-COM-ACK-001 — Le logiciel embarqué doit considérer un message comme transmis uniquement après réception d’un acquittement valide si le protocole retenu l’exige.
1208
1209
SW-COM-ACK-002 — En absence d’acquittement, le logiciel embarqué doit conserver le message à retransmettre si ce message est critique.
1210
1211
SW-COM-ACK-003 — Les acquittements invalides ou incohérents doivent être rejetés.
1212
```
1213
1214
### 11.6 Détection de perte de communication
1215
1216
Cette partie décrit les critères de perte serveur.
1217
1218
**Exemples :**
1219
1220
```text
1221
SW-COM-LOSS-001 — Le logiciel embarqué doit détecter une perte de communication si aucun acquittement valide n’est reçu pendant la durée définie.
1222
1223
SW-COM-LOSS-002 — La perte de communication doit déclencher le mode dégradé communication.
1224
1225
SW-COM-LOSS-003 — La perte de communication doit être journalisée localement.
1226
```
1227
1228
### 11.7 Reconnexion et resynchronisation
1229
1230
Cette partie décrit le retour au nominal.
1231
1232
**Exemples :**
1233
1234
```text
1235
SW-COM-SYNC-001 — Au retour de la communication, le logiciel embarqué doit tenter de retransmettre les messages non acquittés.
1236
1237
SW-COM-SYNC-002 — Les messages retransmis doivent conserver leur horodatage d’origine.
1238
1239
SW-COM-SYNC-003 — Le logiciel embarqué doit éviter les doublons de transmission lorsque le protocole permet leur détection.
1240
1241
SW-COM-SYNC-004 — Le retour au mode nominal ne doit être autorisé qu’après satisfaction des critères définis dans le dossier des modes.
1242
```
1243
1244
### 11.8 Sécurité de communication
1245
1246
Cette partie décrit les exigences de protection des échanges.
1247
1248
**Exemples :**
1249
1250
```text
1251
SW-COM-SEC-001 — Le logiciel embarqué doit utiliser les mécanismes de sécurité définis pour authentifier ou protéger les échanges avec le serveur.
1252
1253
SW-COM-SEC-002 — Le logiciel embarqué ne doit pas accepter une commande distante provenant d’une source non autorisée.
1254
1255
SW-COM-SEC-003 — Les erreurs de sécurité de communication doivent être journalisées et signalées selon leur criticité.
1256
```
1257
1258
### 11.9 Tests associés
1259
1260
**Exemples :**
1261
1262
```text
1263
- connexion serveur nominale ;
1264
- transmission mesure ;
1265
- transmission alarme ;
1266
- réception acquittement ;
1267
- absence acquittement ;
1268
- coupure réseau ;
1269
- retour réseau ;
1270
- retransmission messages ;
1271
- message serveur invalide ;
1272
- commande distante autorisée ;
1273
- commande distante refusée.
1274
```
1275
1276
---
1277
1278
## 12. Exigences de stockage local
1279
1280
### 12.1 Objet du stockage local
1281
1282
Cette partie décrit les données que le firmware doit conserver localement.
1283
1284
Le stockage local est souvent nécessaire pour gérer les pertes réseau, conserver les configurations, journaliser les défauts, permettre le diagnostic et protéger certaines données avant transmission.
1285
1286
### 12.2 Données stockées localement
1287
1288
**Exemples :**
1289
1290
```text
1291
- configuration active ;
1292
- mesures non transmises ;
1293
- alarmes non transmises ;
1294
- événements critiques ;
1295
- logs de diagnostic ;
1296
- dernier état connu ;
1297
- cause du dernier redémarrage ;
1298
- version firmware ;
1299
- compteurs d’erreurs ;
1300
- informations de maintenance.
1301
```
1302
1303
### 12.3 Stockage des données non transmises
1304
1305
Cette partie décrit la conservation des données en perte communication.
1306
1307
**Exemples :**
1308
1309
```text
1310
SW-STO-001 — Le logiciel embarqué doit conserver localement les données critiques non transmises au serveur.
1311
1312
SW-STO-002 — Les données stockées localement doivent conserver leur horodatage d’origine.
1313
1314
SW-STO-003 — Les données stockées localement doivent être retransmissibles après retour de communication.
1315
1316
SW-STO-004 — Le logiciel embarqué doit distinguer les données transmises, non transmises et acquittées si le protocole le nécessite.
1317
```
1318
1319
### 12.4 Gestion de la saturation
1320
1321
Cette partie décrit le comportement lorsque la mémoire locale est pleine ou proche de l’être.
1322
1323
**Exemples :**
1324
1325
```text
1326
SW-STO-SAT-001 — Le logiciel embarqué doit détecter une saturation prochaine du stockage local.
1327
1328
SW-STO-SAT-002 — Le logiciel embarqué doit générer une alarme lorsque le stockage local dépasse le seuil défini.
1329
1330
SW-STO-SAT-003 — En cas de saturation, le logiciel embarqué doit appliquer la politique de conservation définie : blocage, écrasement contrôlé, priorité aux données critiques ou passage en mode dégradé stockage.
1331
```
1332
1333
### 12.5 Priorité des données
1334
1335
Cette partie décrit les données à conserver en priorité.
1336
1337
**Exemple :**
1338
1339
```text
1340
Priorité 1 :
1341
- alarmes critiques ;
1342
- événements de sécurité ;
1343
- commandes ;
1344
- défauts système.
1345
1346
Priorité 2 :
1347
- mesures importantes ;
1348
- événements de fonctionnement ;
1349
- données de resynchronisation.
1350
1351
Priorité 3 :
1352
- logs détaillés ;
1353
- statistiques ;
1354
- traces de debug.
1355
```
1356
1357
### 12.6 Intégrité des données locales
1358
1359
Cette partie décrit comment éviter ou détecter la corruption des données.
1360
1361
**Exemples :**
1362
1363
```text
1364
SW-STO-INT-001 — Le logiciel embarqué doit détecter toute incohérence majeure des données locales si le support de stockage permet ce contrôle.
1365
1366
SW-STO-INT-002 — Le logiciel embarqué doit éviter la perte silencieuse de données critiques.
1367
1368
SW-STO-INT-003 — En cas de corruption détectée, le logiciel embarqué doit générer un défaut de stockage.
1369
```
1370
1371
### 12.7 Tests associés
1372
1373
**Exemples :**
1374
1375
```text
1376
- stockage local en perte réseau ;
1377
- retransmission après retour réseau ;
1378
- saturation progressive ;
1379
- priorité données critiques ;
1380
- redémarrage avec données non transmises ;
1381
- corruption simulée ;
1382
- suppression contrôlée ;
1383
- alarme stockage.
1384
```
1385
1386
---
1387
1388
## 13. Exigences de configuration
1389
1390
### 13.1 Objet de la configuration
1391
1392
Cette partie décrit les paramètres utilisés par le firmware pour fonctionner.
1393
1394
La configuration peut inclure des seuils, périodicités, identifiants, paramètres réseau, modes autorisés, paramètres de diagnostic, options hardware, niveaux d’alarme ou informations de serveur.
1395
1396
### 13.2 Paramètres configurables
1397
1398
**Exemples :**
1399
1400
```text
1401
- identifiant équipement ;
1402
- adresse serveur ;
1403
- port de communication ;
1404
- fréquence d’acquisition ;
1405
- seuils d’alarme ;
1406
- hystérésis ;
1407
- temporisations ;
1408
- activation ou désactivation d’une fonction ;
1409
- durée de stockage local ;
1410
- niveaux de logs ;
1411
- paramètres de mise à jour ;
1412
- options hardware installées.
1413
```
1414
1415
### 13.3 Chargement de configuration
1416
1417
Cette partie décrit comment le firmware charge la configuration.
1418
1419
**Exemples :**
1420
1421
```text
1422
SW-CFG-001 — Le logiciel embarqué doit charger sa configuration au démarrage.
1423
1424
SW-CFG-002 — Le logiciel embarqué doit vérifier la validité de la configuration avant de l’appliquer.
1425
1426
SW-CFG-003 — En cas de configuration invalide, le logiciel embarqué doit refuser le passage en mode nominal si la configuration est nécessaire au fonctionnement.
1427
```
1428
1429
### 13.4 Modification de configuration
1430
1431
Cette partie décrit les règles de modification.
1432
1433
**Exemples :**
1434
1435
```text
1436
SW-CFG-MOD-001 — Le logiciel embarqué doit accepter une modification de configuration uniquement si son origine est autorisée.
1437
1438
SW-CFG-MOD-002 — Toute modification d’un paramètre critique doit être journalisée.
1439
1440
SW-CFG-MOD-003 — Le logiciel embarqué doit vérifier la cohérence d’une nouvelle configuration avant application.
1441
1442
SW-CFG-MOD-004 — Une configuration invalide doit être rejetée avec un motif identifiable.
1443
```
1444
1445
### 13.5 Version de configuration
1446
1447
Cette partie décrit la gestion des versions de configuration.
1448
1449
**Exemples :**
1450
1451
```text
1452
SW-CFG-VER-001 — La configuration active doit comporter un identifiant ou une version.
1453
1454
SW-CFG-VER-002 — Le logiciel embarqué doit pouvoir fournir la version de configuration active au serveur ou à l’outil de diagnostic.
1455
1456
SW-CFG-VER-003 — Après mise à jour de configuration, l’ancienne version doit être conservée si un retour arrière est requis.
1457
```
1458
1459
### 13.6 Configuration par défaut
1460
1461
Cette partie décrit le comportement en absence de configuration spécifique.
1462
1463
**Exemples :**
1464
1465
```text
1466
SW-CFG-DEF-001 — Le logiciel embarqué peut disposer d’une configuration par défaut uniquement si cette configuration est explicitement validée.
1467
1468
SW-CFG-DEF-002 — La configuration par défaut ne doit pas permettre une commande critique non maîtrisée.
1469
1470
SW-CFG-DEF-003 — L’utilisation d’une configuration par défaut doit être signalée ou journalisée.
1471
```
1472
1473
### 13.7 Tests associés
1474
1475
**Exemples :**
1476
1477
```text
1478
- chargement configuration valide ;
1479
- configuration absente ;
1480
- configuration corrompue ;
1481
- modification seuil autorisée ;
1482
- modification seuil refusée ;
1483
- configuration incompatible hardware ;
1484
- retour arrière configuration ;
1485
- lecture version configuration.
1486
```
1487
1488
---
1489
1490
## 14. Exigences de diagnostic et journalisation
1491
1492
### 14.1 Objet du diagnostic logiciel embarqué
1493
1494
Cette partie décrit les informations que le firmware doit fournir pour permettre l’exploitation, le support technique, la maintenance et l’analyse d’incidents.
1495
1496
### 14.2 Informations de diagnostic
1497
1498
**Exemples :**
1499
1500
```text
1501
- version firmware ;
1502
- version hardware détectée ;
1503
- configuration active ;
1504
- mode courant ;
1505
- dernier défaut ;
1506
- cause du dernier redémarrage ;
1507
- état communication ;
1508
- niveau stockage local ;
1509
- état entrées/sorties ;
1510
- compteurs d’erreurs ;
1511
- état de synchronisation ;
1512
- historique de transitions de mode ;
1513
- état watchdog.
1514
```
1515
1516
### 14.3 Logs locaux
1517
1518
Cette partie décrit les journaux produits localement.
1519
1520
**Exemples :**
1521
1522
```text
1523
SW-LOG-001 — Le logiciel embarqué doit journaliser les événements significatifs.
1524
1525
SW-LOG-002 — Le logiciel embarqué doit journaliser les défauts critiques.
1526
1527
SW-LOG-003 — Le logiciel embarqué doit journaliser les transitions de mode.
1528
1529
SW-LOG-004 — Le logiciel embarqué doit journaliser les commandes critiques.
1530
1531
SW-LOG-005 — Le logiciel embarqué ne doit pas stocker de secret sensible en clair dans les journaux.
1532
```
1533
1534
### 14.4 Niveaux de logs
1535
1536
**Exemples :**
1537
1538
```text
1539
DEBUG :
1540
informations détaillées pour diagnostic avancé.
1541
1542
INFO :
1543
événement normal significatif.
1544
1545
WARNING :
1546
situation anormale non bloquante.
1547
1548
ERROR :
1549
erreur fonctionnelle ou technique.
1550
1551
CRITICAL :
1552
défaut critique, sécurité, état sûr ou arrêt d’urgence.
1553
```
1554
1555
### 14.5 Export des logs
1556
1557
Cette partie décrit comment les logs peuvent être récupérés.
1558
1559
**Exemples :**
1560
1561
```text
1562
- transmission serveur ;
1563
- export via port maintenance ;
1564
- export via commande diagnostic ;
1565
- export automatique après défaut critique ;
1566
- export manuel par technicien habilité.
1567
```
1568
1569
**Exemple d’exigence :**
1570
1571
```text
1572
SW-LOG-EXP-001 — Le logiciel embarqué doit permettre l’export des journaux de diagnostic selon les moyens prévus dans l’architecture.
1573
```
1574
1575
### 14.6 Limitation des volumes de logs
1576
1577
Cette partie décrit la rotation ou la purge.
1578
1579
**Exemples :**
1580
1581
```text
1582
SW-LOG-ROT-001 — Le logiciel embarqué doit limiter la taille des journaux afin d’éviter la saturation du stockage local.
1583
1584
SW-LOG-ROT-002 — Les événements critiques doivent être conservés prioritairement par rapport aux traces de debug.
1585
1586
SW-LOG-ROT-003 — Le niveau de log doit pouvoir être configuré si cette fonction est prévue.
1587
```
1588
1589
### 14.7 Tests associés
1590
1591
**Exemples :**
1592
1593
```text
1594
- génération log démarrage ;
1595
- génération log défaut ;
1596
- génération log transition mode ;
1597
- export logs ;
1598
- saturation logs ;
1599
- absence de secret dans logs ;
1600
- conservation log critique ;
1601
- lecture version firmware.
1602
```
1603
1604
---
1605
1606
## 15. Exigences de mise à jour firmware
1607
1608
### 15.1 Objet de la mise à jour firmware
1609
1610
Cette partie décrit les exigences relatives au remplacement ou à l’évolution du logiciel embarqué.
1611
1612
La mise à jour firmware est sensible : elle peut immobiliser l’équipement, modifier son comportement, introduire des incompatibilités ou rendre l’équipement inutilisable en cas d’échec.
1613
1614
### 15.2 Conditions d’autorisation de mise à jour
1615
1616
**Exemples :**
1617
1618
```text
1619
SW-MAJ-001 — La mise à jour firmware doit être autorisée uniquement dans les conditions prévues par le dossier des modes.
1620
1621
SW-MAJ-002 — Le logiciel embarqué ne doit pas lancer de mise à jour si une commande critique est en cours.
1622
1623
SW-MAJ-003 — La mise à jour doit être déclenchée uniquement par une source autorisée.
1624
1625
SW-MAJ-004 — La version cible doit être vérifiée avant installation si le mécanisme le permet.
1626
```
1627
1628
### 15.3 Vérification du paquet de mise à jour
1629
1630
Cette partie décrit les contrôles préalables.
1631
1632
**Exemples :**
1633
1634
```text
1635
- compatibilité version hardware ;
1636
- intégrité du paquet ;
1637
- authenticité ;
1638
- taille ;
1639
- version cible ;
1640
- dépendances ;
1641
- espace disponible ;
1642
- état d’alimentation ;
1643
- mode courant.
1644
```
1645
1646
### 15.4 Déroulement de mise à jour
1647
1648
Cette partie décrit les étapes attendues au niveau comportemental.
1649
1650
**Exemple :**
1651
1652
```text
1653
SW-MAJ-010 — Le logiciel embarqué doit passer dans un mode de mise à jour avant de modifier le firmware.
1654
1655
SW-MAJ-011 — Le logiciel embarqué doit journaliser le début et la fin de la mise à jour.
1656
1657
SW-MAJ-012 — Après mise à jour, le logiciel embarqué doit redémarrer ou réinitialiser les composants nécessaires selon la procédure définie.
1658
1659
SW-MAJ-013 — Après mise à jour, le logiciel embarqué doit exposer la nouvelle version installée.
1660
```
1661
1662
### 15.5 Échec de mise à jour
1663
1664
Cette partie décrit le comportement attendu en cas d’échec.
1665
1666
**Exemples :**
1667
1668
```text
1669
SW-MAJ-ERR-001 — En cas d’échec de mise à jour, le logiciel embarqué doit signaler l’échec.
1670
1671
SW-MAJ-ERR-002 — En cas d’échec, le système doit rester dans un état maîtrisé.
1672
1673
SW-MAJ-ERR-003 — Si un mécanisme de retour arrière est prévu, le logiciel embarqué doit revenir à la dernière version valide.
1674
1675
SW-MAJ-ERR-004 — L’échec de mise à jour doit être journalisé.
1676
```
1677
1678
### 15.6 Tests associés
1679
1680
**Exemples :**
1681
1682
```text
1683
- mise à jour nominale ;
1684
- paquet invalide ;
1685
- version incompatible ;
1686
- coupure pendant mise à jour ;
1687
- espace insuffisant ;
1688
- retour arrière ;
1689
- lecture nouvelle version ;
1690
- journalisation mise à jour.
1691
```
1692
1693
---
1694
1695
## 16. Exigences de sécurité et cybersécurité embarquée
1696
1697
### 16.1 Objet de la sécurité software embarqué
1698
1699
Cette partie décrit les exigences visant à protéger le firmware, les données locales, les commandes, la configuration et les communications.
1700
1701
### 16.2 Contrôle des commandes
1702
1703
**Exemples :**
1704
1705
```text
1706
SW-SEC-CMD-001 — Le logiciel embarqué doit refuser toute commande non autorisée.
1707
1708
SW-SEC-CMD-002 — Le logiciel embarqué doit vérifier que le mode courant autorise la commande reçue.
1709
1710
SW-SEC-CMD-003 — Les commandes critiques doivent être journalisées.
1711
1712
SW-SEC-CMD-004 — Une commande invalide ou mal formée ne doit pas provoquer de comportement non maîtrisé.
1713
```
1714
1715
### 16.3 Protection de la configuration
1716
1717
**Exemples :**
1718
1719
```text
1720
SW-SEC-CFG-001 — Le logiciel embarqué doit vérifier la validité d’une configuration avant application.
1721
1722
SW-SEC-CFG-002 — Le logiciel embarqué doit refuser une configuration non autorisée ou incohérente.
1723
1724
SW-SEC-CFG-003 — Les paramètres sensibles doivent être protégés contre une modification non maîtrisée.
1725
```
1726
1727
### 16.4 Protection des secrets
1728
1729
Cette partie concerne les mots de passe, clés, certificats, jetons ou identifiants techniques.
1730
1731
**Exemples :**
1732
1733
```text
1734
SW-SEC-SECRET-001 — Le logiciel embarqué ne doit pas exposer les secrets techniques dans les logs.
1735
1736
SW-SEC-SECRET-002 — Les secrets techniques doivent être stockés selon les moyens de protection disponibles.
1737
1738
SW-SEC-SECRET-003 — Les secrets doivent pouvoir être renouvelés selon une procédure définie si cette exigence est applicable.
1739
```
1740
1741
### 16.5 Robustesse face aux données invalides
1742
1743
Cette partie décrit la résistance aux messages ou entrées invalides.
1744
1745
**Exemples :**
1746
1747
```text
1748
SW-SEC-ROB-001 — Le logiciel embarqué doit rejeter les messages mal formés.
1749
1750
SW-SEC-ROB-002 — Le logiciel embarqué ne doit pas se bloquer en cas de réception d’une donnée invalide.
1751
1752
SW-SEC-ROB-003 — Les erreurs répétées de communication doivent être journalisées et éventuellement signalées.
1753
```
1754
1755
### 16.6 Sécurité des mises à jour
1756
1757
Cette partie décrit les exigences liées à la mise à jour firmware.
1758
1759
**Exemples :**
1760
1761
```text
1762
SW-SEC-MAJ-001 — Le logiciel embarqué doit vérifier l’intégrité du paquet de mise à jour avant installation.
1763
1764
SW-SEC-MAJ-002 — Le logiciel embarqué doit refuser une mise à jour incompatible avec la version hardware.
1765
1766
SW-SEC-MAJ-003 — Une mise à jour ne doit pas être possible depuis une source non autorisée.
1767
```
1768
1769
### 16.7 Tests associés
1770
1771
**Exemples :**
1772
1773
```text
1774
- commande non autorisée ;
1775
- commande mal formée ;
1776
- configuration invalide ;
1777
- paquet mise à jour invalide ;
1778
- tentative de modification paramètre critique ;
1779
- absence de secret dans logs ;
1780
- message réseau corrompu ;
1781
- saturation par messages invalides.
1782
```
1783
1784
---
1785
1786
## 17. Exigences temporelles et performances
1787
1788
### 17.1 Objet des exigences temporelles
1789
1790
Cette partie décrit les contraintes de temps, fréquence, délai, latence ou ordre d’exécution applicables au firmware.
1791
1792
Dans un logiciel embarqué, les contraintes temporelles peuvent être aussi importantes que les fonctions elles-mêmes.
1793
1794
### 17.2 Fréquences d’acquisition
1795
1796
**Exemples :**
1797
1798
```text
1799
SW-PERF-ACQ-001 — Le logiciel embarqué doit acquérir les mesures critiques avec la périodicité définie.
1800
1801
SW-PERF-ACQ-002 — La périodicité d’acquisition doit rester respectée en mode nominal dans les conditions de charge prévues.
1802
1803
SW-PERF-ACQ-003 — En mode dégradé, les acquisitions critiques doivent être maintenues si les ressources le permettent.
1804
```
1805
1806
### 17.3 Délais de réaction
1807
1808
Cette partie décrit les temps maximaux avant réaction.
1809
1810
**Exemples :**
1811
1812
```text
1813
SW-PERF-REACT-001 — Le logiciel embarqué doit détecter un défaut critique dans le délai maximal défini.
1814
1815
SW-PERF-REACT-002 — Le logiciel embarqué doit placer les sorties critiques en état sûr dans le délai requis après détection d’un défaut critique.
1816
1817
SW-PERF-REACT-003 — Une perte de communication doit être détectée après le timeout configuré.
1818
```
1819
1820
### 17.4 Délais de communication
1821
1822
**Exemples :**
1823
1824
```text
1825
SW-PERF-COM-001 — Le logiciel embarqué doit transmettre les messages périodiques selon la fréquence définie lorsque la communication est disponible.
1826
1827
SW-PERF-COM-002 — Après retour réseau, le logiciel embarqué doit lancer la resynchronisation dans le délai prévu.
1828
1829
SW-PERF-COM-003 — La resynchronisation ne doit pas empêcher le traitement des fonctions critiques locales.
1830
```
1831
1832
### 17.5 Charge CPU et mémoire
1833
1834
Cette partie décrit les exigences de marge.
1835
1836
**Exemples :**
1837
1838
```text
1839
SW-PERF-RES-001 — Le logiciel embarqué doit fonctionner avec une marge de mémoire compatible avec les évolutions prévues.
1840
1841
SW-PERF-RES-002 — Le logiciel embarqué doit éviter toute fuite mémoire détectable sur une durée de fonctionnement représentative.
1842
1843
SW-PERF-RES-003 — Les buffers de communication doivent être dimensionnés pour les cas de charge prévus.
1844
```
1845
1846
### 17.6 Tests associés
1847
1848
**Exemples :**
1849
1850
```text
1851
- fréquence acquisition ;
1852
- délai défaut critique ;
1853
- délai état sûr ;
1854
- charge communication ;
1855
- resynchronisation volumineuse ;
1856
- fonctionnement prolongé ;
1857
- mémoire stable ;
1858
- saturation contrôlée.
1859
```
1860
1861
---
1862
1863
## 18. Exigences de robustesse et sûreté de fonctionnement
1864
1865
### 18.1 Objet de la robustesse
1866
1867
Cette partie décrit le comportement du firmware face aux erreurs, défauts, données invalides, ressources indisponibles ou situations inattendues.
1868
1869
### 18.2 Gestion des erreurs récupérables
1870
1871
**Exemples :**
1872
1873
```text
1874
SW-ROB-001 — Le logiciel embarqué doit détecter les erreurs récupérables et poursuivre le fonctionnement lorsque cela est autorisé.
1875
1876
SW-ROB-002 — Une erreur récupérable doit être journalisée si elle est significative.
1877
1878
SW-ROB-003 — Les erreurs récupérables répétées doivent pouvoir être escaladées en défaut plus critique selon les règles définies.
1879
```
1880
1881
### 18.3 Gestion des erreurs non récupérables
1882
1883
**Exemples :**
1884
1885
```text
1886
SW-ROB-CRIT-001 — En cas d’erreur non récupérable, le logiciel embarqué doit rejoindre un état sûr ou déclencher un redémarrage contrôlé selon les règles définies.
1887
1888
SW-ROB-CRIT-002 — Le logiciel embarqué doit éviter tout comportement indéfini en cas d’erreur critique.
1889
1890
SW-ROB-CRIT-003 — Les erreurs critiques doivent être historisées si possible.
1891
```
1892
1893
### 18.4 Watchdog
1894
1895
Cette partie décrit l’usage du watchdog.
1896
1897
**Exemples :**
1898
1899
```text
1900
SW-WDG-001 — Le logiciel embarqué doit activer le mécanisme watchdog si celui-ci est prévu dans l’architecture.
1901
1902
SW-WDG-002 — Le logiciel embarqué doit rafraîchir le watchdog uniquement lorsque les fonctions critiques sont exécutées correctement.
1903
1904
SW-WDG-003 — Après déclenchement watchdog, le logiciel embarqué doit signaler un redémarrage anormal si cette information est disponible.
1905
```
1906
1907
### 18.5 Reprise après erreur
1908
1909
Cette partie décrit les mécanismes de reprise.
1910
1911
**Exemples :**
1912
1913
```text
1914
- reprise communication ;
1915
- reprise stockage ;
1916
- reprise après reset ;
1917
- reprise après défaut capteur ;
1918
- reprise après configuration corrigée ;
1919
- reprise après saturation ;
1920
- retour au mode nominal sous conditions.
1921
```
1922
1923
### 18.6 Tests associés
1924
1925
**Exemples :**
1926
1927
```text
1928
- erreur communication répétée ;
1929
- donnée invalide ;
1930
- saturation mémoire ;
1931
- déclenchement watchdog ;
1932
- redémarrage après watchdog ;
1933
- stockage indisponible ;
1934
- défaut capteur critique ;
1935
- retour au nominal après correction.
1936
```
1937
1938
---
1939
1940
## 19. Exigences d’interfaces avec le hardware
1941
1942
### 19.1 Objet des interfaces hardware/software
1943
1944
Cette partie décrit les interfaces entre le firmware et le matériel.
1945
1946
Elle sert de base commune entre l’équipe hardware et l’équipe software.
1947
1948
### 19.2 Liste des interfaces hardware utilisées
1949
1950
**Exemple :**
1951
1952
```text
1953
Interface    | Usage                  | Type                  | Module software concerné
1954
GPIO-IN-001  | contact porte          | entrée numérique      | InputManager
1955
ADC-001      | température            | entrée analogique     | AcquisitionManager
1956
GPIO-OUT-001 | relais commande        | sortie numérique      | OutputManager
1957
UART-001     | module communication   | série                 | CommunicationManager
1958
NVM-001      | stockage configuration | mémoire non volatile  | ConfigurationManager
1959
RTC-001      | horodatage             | horloge               | TimeManager
1960
WDG-001      | watchdog               | périphérique sécurité | WatchdogManager
1961
```
1962
1963
### 19.3 Lecture des entrées
1964
1965
**Exemples :**
1966
1967
```text
1968
SW-HW-IN-001 — Le logiciel embarqué doit lire les entrées matérielles selon la périodicité ou l’événement défini.
1969
1970
SW-HW-IN-002 — Le logiciel embarqué doit interpréter la polarité des entrées conformément à la spécification hardware.
1971
1972
SW-HW-IN-003 — Le logiciel embarqué doit gérer les états invalides ou incohérents des entrées.
1973
```
1974
1975
### 19.4 Commande des sorties
1976
1977
**Exemples :**
1978
1979
```text
1980
SW-HW-OUT-001 — Le logiciel embarqué doit commander les sorties matérielles selon les règles de mode et de sécurité.
1981
1982
SW-HW-OUT-002 — Le logiciel embarqué doit appliquer l’état sûr défini pour chaque sortie critique.
1983
1984
SW-HW-OUT-003 — Le logiciel embarqué doit éviter toute activation intempestive lors du démarrage.
1985
```
1986
1987
### 19.5 Gestion des périphériques
1988
1989
**Exemples :**
1990
1991
```text
1992
- ADC ;
1993
- GPIO ;
1994
- UART ;
1995
- SPI ;
1996
- I2C ;
1997
- CAN ;
1998
- Ethernet ;
1999
- mémoire non volatile ;
2000
- horloge RTC ;
2001
- watchdog ;
2002
- module radio.
2003
```
2004
2005
### 19.6 Compatibilité versions hardware
2006
2007
**Exemples :**
2008
2009
```text
2010
SW-HW-COMP-001 — Le logiciel embarqué doit être compatible avec les versions hardware définies.
2011
2012
SW-HW-COMP-002 — Si plusieurs versions hardware sont supportées, le logiciel embarqué doit pouvoir identifier ou recevoir l’information de version hardware.
2013
2014
SW-HW-COMP-003 — Une version hardware non supportée doit être signalée.
2015
```
2016
2017
### 19.7 Tests associés
2018
2019
**Exemples :**
2020
2021
```text
2022
- lecture GPIO ;
2023
- lecture ADC ;
2024
- commande relais ;
2025
- inversion polarité ;
2026
- périphérique absent ;
2027
- version hardware incompatible ;
2028
- état sortie au boot ;
2029
- watchdog matériel.
2030
```
2031
2032
---
2033
2034
## 20. Exigences d’interfaces avec le serveur et les systèmes externes
2035
2036
### 20.1 Objet des interfaces externes
2037
2038
Cette partie décrit les interactions du firmware avec le serveur applicatif, l’infrastructure, les équipements tiers ou les outils de maintenance.
2039
2040
### 20.2 Interface serveur
2041
2042
**Exemples :**
2043
2044
```text
2045
- transmission mesures ;
2046
- transmission alarmes ;
2047
- réception acquittements ;
2048
- réception configuration ;
2049
- transmission diagnostics ;
2050
- synchronisation horaire ;
2051
- mise à jour firmware ;
2052
- commandes distantes.
2053
```
2054
2055
### 20.3 Interface équipement tiers
2056
2057
Cette partie décrit les échanges avec un équipement tiers connecté au firmware.
2058
2059
**Exemples :**
2060
2061
```text
2062
- BMS ;
2063
- automate ;
2064
- capteur intelligent ;
2065
- module communication ;
2066
- afficheur ;
2067
- convertisseur ;
2068
- compteur ;
2069
- système de sécurité.
2070
```
2071
2072
**Exemple d’exigence :**
2073
2074
```text
2075
SW-EXT-001 — Le logiciel embarqué doit lire les données de l’équipement tiers selon le protocole défini dans la spécification des interfaces.
2076
```
2077
2078
### 20.4 Interface maintenance locale
2079
2080
Cette partie décrit les fonctions accessibles via port local ou outil de diagnostic.
2081
2082
**Exemples :**
2083
2084
```text
2085
SW-MNT-IF-001 — Le logiciel embarqué doit permettre la consultation de son état courant via l’interface de maintenance prévue.
2086
2087
SW-MNT-IF-002 — Le logiciel embarqué doit permettre l’export des logs via l’interface de maintenance si cette fonction est prévue.
2088
2089
SW-MNT-IF-003 — Les commandes de maintenance critiques doivent être protégées contre un accès non autorisé.
2090
```
2091
2092
### 20.5 Gestion des erreurs d’interface
2093
2094
**Exemples :**
2095
2096
```text
2097
- message mal formé ;
2098
- timeout ;
2099
- protocole incompatible ;
2100
- version interface incorrecte ;
2101
- donnée incohérente ;
2102
- équipement tiers silencieux ;
2103
- serveur indisponible.
2104
```
2105
2106
### 20.6 Tests associés
2107
2108
**Exemples :**
2109
2110
```text
2111
- message serveur valide ;
2112
- message serveur invalide ;
2113
- acquittement absent ;
2114
- protocole tiers silencieux ;
2115
- données équipement tiers incohérentes ;
2116
- outil maintenance connecté ;
2117
- commande maintenance refusée.
2118
```
2119
2120
---
2121
2122
## 21. Exigences de testabilité software embarqué
2123
2124
### 21.1 Objet de la testabilité
2125
2126
Cette partie décrit les exigences permettant de tester le firmware de manière efficace.
2127
2128
Un logiciel embarqué difficile à tester devient difficile à intégrer, maintenir et valider. La testabilité doit être prévue dès la spécification.
2129
2130
### 21.2 Observabilité
2131
2132
Cette partie décrit les informations que le firmware doit rendre observables.
2133
2134
**Exemples :**
2135
2136
```text
2137
- mode courant ;
2138
- état communication ;
2139
- état stockage ;
2140
- état alarmes ;
2141
- valeurs acquises ;
2142
- dernière erreur ;
2143
- compteurs ;
2144
- version ;
2145
- état des sorties ;
2146
- état des entrées ;
2147
- résultat de commande.
2148
```
2149
2150
**Exemple d’exigence :**
2151
2152
```text
2153
SW-TEST-OBS-001 — Le logiciel embarqué doit permettre d’observer les états nécessaires aux tests d’intégration.
2154
```
2155
2156
### 21.3 Commandabilité en test
2157
2158
Cette partie décrit les capacités nécessaires pour déclencher certains comportements en environnement de test.
2159
2160
**Exemples :**
2161
2162
```text
2163
- forcer une perte communication simulée ;
2164
- injecter une mesure simulée ;
2165
- déclencher un défaut capteur simulé ;
2166
- déclencher une saturation stockage simulée ;
2167
- passer en mode maintenance ;
2168
- exporter les logs ;
2169
- réinitialiser les compteurs ;
2170
- lancer un autotest.
2171
```
2172
2173
**Exemple d’exigence :**
2174
2175
```text
2176
SW-TEST-CMD-001 — Le logiciel embarqué doit permettre de déclencher certains autotests en mode maintenance, sans activer de commande dangereuse.
2177
```
2178
2179
### 21.4 Tests unitaires software
2180
2181
Cette partie décrit les fonctions qui doivent pouvoir être testées isolément.
2182
2183
**Exemples :**
2184
2185
```text
2186
- conversion de mesure ;
2187
- filtrage ;
2188
- comparaison seuil ;
2189
- gestion hystérésis ;
2190
- création alarme ;
2191
- validation configuration ;
2192
- gestion file locale ;
2193
- traitement message serveur ;
2194
- décision de transition de mode ;
2195
- formatage message de sortie.
2196
```
2197
2198
### 21.5 Tests d’intégration hardware/software
2199
2200
Cette partie décrit les besoins de test avec le matériel.
2201
2202
**Exemples :**
2203
2204
```text
2205
- lecture entrée réelle ;
2206
- commande sortie réelle ;
2207
- défaut capteur ;
2208
- perte alimentation ;
2209
- watchdog ;
2210
- stockage local réel ;
2211
- port de maintenance ;
2212
- module communication ;
2213
- version hardware détectée.
2214
```
2215
2216
### 21.6 Tests de non-régression
2217
2218
Cette partie décrit les exigences permettant de vérifier qu’une évolution ne casse pas des fonctions existantes.
2219
2220
**Exemples :**
2221
2222
```text
2223
SW-TEST-NR-001 — Toute évolution du firmware doit permettre l’exécution d’un ensemble minimal de tests de non-régression.
2224
2225
SW-TEST-NR-002 — Les fonctions critiques doivent être incluses dans les tests de non-régression.
2226
2227
SW-TEST-NR-003 — Les résultats de tests doivent être associés à la version firmware testée.
2228
```
2229
2230
### 21.7 Tests associés
2231
2232
**Exemples :**
2233
2234
```text
2235
- tests unitaires conversion ;
2236
- tests unitaires alarmes ;
2237
- tests unitaires configuration ;
2238
- tests unitaires stockage ;
2239
- tests intégration entrées/sorties ;
2240
- tests intégration communication ;
2241
- tests non-régression après mise à jour.
2242
```
2243
2244
---
2245
2246
## 22. Exigences de configuration, versionnement et livraison firmware
2247
2248
### 22.1 Objet de la gestion de configuration firmware
2249
2250
Cette partie décrit comment identifier, livrer et tracer les versions du logiciel embarqué.
2251
2252
### 22.2 Identification de version
2253
2254
**Exemples :**
2255
2256
```text
2257
SW-VER-001 — Le logiciel embarqué doit exposer sa version firmware.
2258
2259
SW-VER-002 — Le logiciel embarqué doit permettre d’identifier la version de configuration active.
2260
2261
SW-VER-003 — La version firmware doit être incluse dans les informations de diagnostic.
2262
2263
SW-VER-004 — La version firmware doit être transmise au serveur si cette fonction est prévue.
2264
```
2265
2266
### 22.3 Compatibilité firmware / hardware
2267
2268
Cette partie décrit les contraintes de compatibilité.
2269
2270
**Exemples :**
2271
2272
```text
2273
SW-VER-COMP-001 — La version firmware doit être compatible avec les versions hardware définies.
2274
2275
SW-VER-COMP-002 — Une incompatibilité détectée entre firmware et hardware doit empêcher le fonctionnement nominal si elle peut provoquer un comportement dangereux.
2276
2277
SW-VER-COMP-003 — Les compatibilités firmware/hardware doivent être documentées.
2278
```
2279
2280
### 22.4 Livraison firmware
2281
2282
Cette partie décrit les éléments livrés.
2283
2284
**Exemples :**
2285
2286
```text
2287
- fichier binaire firmware ;
2288
- checksum ;
2289
- signature si applicable ;
2290
- note de version ;
2291
- procédure d’installation ;
2292
- procédure de retour arrière ;
2293
- liste des corrections ;
2294
- liste des exigences couvertes ;
2295
- liste des tests exécutés ;
2296
- configuration associée.
2297
```
2298
2299
### 22.5 Note de version
2300
2301
Cette partie décrit le contenu attendu d’une release note.
2302
2303
**Exemple :**
2304
2305
```text
2306
Version :
2307
Date :
2308
Compatibilité hardware :
2309
Nouvelles fonctions :
2310
Corrections :
2311
Anomalies connues :
2312
Procédure de mise à jour :
2313
Procédure de retour arrière :
2314
Tests réalisés :
2315
Restrictions :
2316
```
2317
2318
### 22.6 Tests associés
2319
2320
**Exemples :**
2321
2322
```text
2323
- lecture version firmware ;
2324
- compatibilité hardware ;
2325
- livraison paquet firmware ;
2326
- contrôle checksum ;
2327
- installation version ;
2328
- retour arrière ;
2329
- vérification note de version.
2330
```
2331
2332
---
2333
2334
## 23. Traçabilité
2335
2336
### 23.1 Traçabilité avec la spécification globale
2337
2338
Cette partie relie les exigences firmware aux exigences système.
2339
2340
**Exemple :**
2341
2342
```text
2343
Exigence système :
2344
SYS-COM-004 — En cas de perte de communication serveur, le système doit maintenir les fonctions locales critiques et conserver les données nécessaires.
2345
2346
Exigences software embarqué associées :
2347
SW-COM-LOSS-001 — Détecter la perte communication.
2348
SW-MODE-COM-002 — Maintenir les acquisitions locales.
2349
SW-STO-001 — Conserver localement les données critiques.
2350
SW-COM-SYNC-001 — Retransmettre les messages au retour réseau.
2351
```
2352
2353
### 23.2 Traçabilité avec l’architecture système
2354
2355
Cette partie relie les exigences firmware aux blocs d’architecture.
2356
2357
**Exemple :**
2358
2359
```text
2360
Bloc architecture :
2361
SS-SW-001 — logiciel embarqué.
2362
2363
Exigences associées :
2364
SW-ACQ-001, SW-MODE-001, SW-COM-001, SW-STO-001, SW-ALM-001, SW-DIAG-001.
2365
```
2366
2367
### 23.3 Traçabilité avec le hardware
2368
2369
Cette partie relie les exigences firmware aux interfaces matérielles.
2370
2371
**Exemple :**
2372
2373
```text
2374
SW-HW-IN-001 — Lecture entrée contact porte
2375
Interface hardware associée :
2376
HW-IN-001 — entrée numérique isolée.
2377
2378
Test associé :
2379
TEST-INT-HW-SW-001 — changement d’état contact et lecture firmware.
2380
```
2381
2382
### 23.4 Traçabilité vers les tests
2383
2384
Cette partie relie chaque exigence logicielle à un ou plusieurs tests.
2385
2386
**Exemple :**
2387
2388
```text
2389
SW-ALM-001 — Génération alarme
2390
Tests associés :
2391
TEST-SW-ALM-001 — création alarme sur seuil.
2392
TEST-INT-ALM-001 — transmission alarme au serveur.
2393
TEST-SYS-ALM-001 — affichage alarme dans l’IHM.
2394
```
2395
2396
### 23.5 Matrice de traçabilité software embarqué
2397
2398
**Structure recommandée :**
2399
2400
```text
2401
ID exigence software
2402
Exigence système source
2403
Interface hardware concernée
2404
Interface serveur concernée
2405
Élément de conception
2406
Test unitaire
2407
Test intégration
2408
Test système
2409
Statut
2410
Commentaire
2411
```
2412
2413
---
2414
2415
## 24. Contraintes, risques et points ouverts
2416
2417
### 24.1 Contraintes techniques
2418
2419
Cette partie liste les contraintes connues.
2420
2421
**Exemples :**
2422
2423
```text
2424
- mémoire limitée ;
2425
- CPU limité ;
2426
- stockage local limité ;
2427
- fréquence acquisition imposée ;
2428
- protocole serveur imposé ;
2429
- hardware déjà défini ;
2430
- absence de système d’exploitation ;
2431
- RTOS imposé ;
2432
- contraintes de consommation ;
2433
- contraintes de temps réel ;
2434
- impossibilité d’accès distant permanent ;
2435
- compatibilité avec plusieurs versions hardware.
2436
```
2437
2438
### 24.2 Risques software embarqué
2439
2440
Cette partie identifie les risques.
2441
2442
**Exemples :**
2443
2444
```text
2445
- saturation mémoire ;
2446
- perte de données en coupure réseau ;
2447
- doublons après resynchronisation ;
2448
- mauvais état des sorties au démarrage ;
2449
- temporisation mal dimensionnée ;
2450
- watchdog déclenché à tort ;
2451
- configuration invalide acceptée ;
2452
- logs trop volumineux ;
2453
- mise à jour échouée ;
2454
- incompatibilité firmware/hardware ;
2455
- mauvaise gestion d’un capteur critique.
2456
```
2457
2458
### 24.3 Mesures de réduction des risques
2459
2460
**Exemples :**
2461
2462
```text
2463
- tests unitaires des fonctions critiques ;
2464
- tests de coupure réseau ;
2465
- tests de saturation stockage ;
2466
- tests de démarrage ;
2467
- tests watchdog ;
2468
- simulation de capteur absent ;
2469
- analyse de compatibilité firmware/hardware ;
2470
- revue de code ;
2471
- tests de non-régression ;
2472
- journalisation des erreurs critiques.
2473
```
2474
2475
### 24.4 Points ouverts
2476
2477
Cette partie liste les décisions non encore prises.
2478
2479
**Exemple :**
2480
2481
```text        
2482
ID        | Sujet           | Description                                        | Responsable        | Échéance         | Impact              | Statut
2483
PO-SW-001 | Timeout serveur | Durée exacte avant perte communication à confirmer | Système/client     | avant conception | communication/modes | ouvert
2484
PO-SW-002 | Stockage local  | Politique en cas de saturation à confirmer         | Système            | avant conception | stockage/tests      | ouvert
2485
PO-SW-003 | Mise à jour     | Mécanisme de retour arrière requis ou non          | Client/fournisseur | avant conception | update/sécurité     | ouvert
2486
PO-SW-004 | Logs            | Durée et volume de conservation locale             | Maintenance        | avant conception | diagnostic/stockage | ouvert
2487
```
2488
2489
---
2490
2491
## 25. Critères d’acceptation de la spécification software embarqué
2492
2493
### 25.1 Complétude
2494
2495
Cette partie définit les critères permettant de considérer la spécification comme complète.
2496
2497
**Exemples :**
2498
2499
```text
2500
La spécification détaillée software embarqué est considérée comme complète si :
2501
- les fonctions de démarrage sont décrites ;
2502
- les modes de fonctionnement sont déclinés ;
2503
- les acquisitions sont listées ;
2504
- les traitements locaux sont spécifiés ;
2505
- les commandes de sorties sont spécifiées ;
2506
- les alarmes sont spécifiées ;
2507
- les communications serveur sont décrites ;
2508
- le stockage local est décrit ;
2509
- la configuration est décrite ;
2510
- le diagnostic est décrit ;
2511
- la mise à jour est décrite ;
2512
- les exigences de sécurité sont décrites ;
2513
- les exigences de testabilité sont décrites ;
2514
- les exigences critiques sont reliées à des tests.
2515
```
2516
2517
### 25.2 Cohérence
2518
2519
Cette partie définit les critères de cohérence.
2520
2521
**Exemples :**
2522
2523
```text
2524
Le document ne doit pas contenir :
2525
- d’exigence contradictoire avec le dossier des modes ;
2526
- d’exigence incompatible avec le hardware ;
2527
- de comportement non défini en cas de défaut critique ;
2528
- de commande critique sans condition d’autorisation ;
2529
- de donnée critique sans règle de stockage ;
2530
- de perte réseau sans comportement de resynchronisation ;
2531
- de configuration modifiable sans contrôle ;
2532
- de mise à jour sans comportement en cas d’échec ;
2533
- d’exigence non vérifiable.
2534
```
2535
2536
### 25.3 Testabilité
2537
2538
Cette partie vérifie que la spécification permet de construire les tests.
2539
2540
**Exemples :**
2541
2542
```text
2543
La spécification est testable si :
2544
- chaque exigence critique possède une méthode de vérification ;
2545
- les entrées peuvent être simulées ou injectées ;
2546
- les sorties peuvent être observées ;
2547
- les modes peuvent être déclenchés ;
2548
- les défauts principaux peuvent être simulés ;
2549
- les logs permettent le diagnostic ;
2550
- les tests unitaires et d’intégration peuvent être définis.
2551
```
2552
2553
### 25.4 Maintenabilité
2554
2555
Cette partie vérifie que le firmware pourra être maintenu.
2556
2557
**Exemples :**
2558
2559
```text
2560
La spécification prend correctement en compte la maintenance si :
2561
- la version firmware est identifiable ;
2562
- les logs sont exportables ;
2563
- les défauts sont diagnostiquables ;
2564
- la configuration est consultable ;
2565
- les mises à jour sont maîtrisées ;
2566
- les incompatibilités hardware/software sont détectables ;
2567
- les fonctions critiques sont documentées.
2568
```
2569
2570
### 25.5 Validation du document
2571
2572
Cette partie précise les revues nécessaires.
2573
2574
**Exemple :**
2575
2576
```text
2577
La spécification détaillée software embarqué doit être relue par :
2578
- le responsable software embarqué ;
2579
- l’ingénieur système ;
2580
- le responsable hardware ;
2581
- le responsable serveur/application ;
2582
- le responsable intégration ;
2583
- le responsable validation ;
2584
- le responsable cybersécurité ;
2585
- le responsable maintenance ;
2586
- le représentant client si le comportement embarqué impacte la recette.
2587
```
2588
2589
---
2590
2591
## 26. Annexes
2592
2593
### 26.1 Liste complète des exigences software embarqué
2594
2595
Cette annexe peut contenir la liste tabulaire complète des exigences.
2596
2597
**Exemple :**
2598
2599
```text
2600
ID              | Catégorie     | Libellé                          | Criticité    | Vérification | Statut
2601
SW-BOOT-001     | démarrage     | initialiser ressources           | élevée       | test         | à faire
2602
SW-ACQ-001      | acquisition   | lire mesure périodique           | élevée       | test         | à faire
2603
SW-COM-LOSS-001 | communication | détecter perte serveur           | élevée       | test         | à faire
2604
SW-STO-001      | stockage      | conserver données non transmises | élevée       | test         | à faire
2605
SW-MAJ-001      | mise à jour   | mise à jour autorisée uniquement | moyenne      | test         | à faire
2606
```
2607
2608
### 26.2 Liste des données acquises
2609
2610
Cette annexe reprend toutes les mesures, états et événements acquis par le firmware.
2611
2612
### 26.3 Liste des alarmes embarquées
2613
2614
Cette annexe décrit les alarmes générées localement.
2615
2616
**Exemple :**
2617
2618
```text
2619
ID alarme     | Condition              | Criticité | Mode associé          | Transmission serveur
2620
ALM-TEMP-HIGH | température > seuil    | majeure   | nominal/dégradé       | oui
2621
ALM-COM-LOSS  | perte serveur          | majeure   | dégradé communication | oui au retour
2622
ALM-STO-SAT   | stockage > seuil       | majeure   | dégradé stockage      | oui
2623
ALM-CFG-ERR   | configuration invalide | critique  | arrêt/maintenance     | oui si possible
2624
```
2625
2626
### 26.4 Liste des commandes
2627
2628
Cette annexe liste les commandes que le firmware peut exécuter.
2629
2630
**Exemple :**
2631
2632
```text
2633
Commande        | Origine             | Mode autorisé              | Condition            | Criticité
2634
CMD-RESET       | serveur/maintenance | maintenance                | utilisateur habilité | élevée
2635
CMD-SET-CONFIG  | serveur             | maintenance/nominal limité | config valide        | élevée
2636
CMD-OUTPUT-TEST | maintenance         | maintenance                | sortie non critique  | moyenne
2637
```
2638
2639
### 26.5 Liste des messages serveur
2640
2641
Cette annexe peut contenir la liste synthétique des messages échangés.
2642
2643
### 26.6 Liste des paramètres de configuration
2644
2645
Cette annexe reprend tous les paramètres configurables.
2646
2647
### 26.7 Matrice software / hardware
2648
2649
Cette annexe relie les fonctions firmware aux interfaces matérielles.
2650
2651
### 26.8 Matrice exigences / tests
2652
2653
Cette annexe reprend la matrice de vérification.
2654
2655
### 26.9 Glossaire software embarqué
2656
2657
Cette annexe définit les termes spécifiques au firmware.
2658
2659
### 26.10 Historique des décisions software
2660
2661
Cette annexe conserve les décisions importantes.
2662
2663
**Exemple :**
2664
2665
```text
2666
DEC-SW-001 :
2667
La détection des alarmes critiques est réalisée localement dans le firmware.
2668
2669
Justification :
2670
garantir la détection même en cas de perte communication serveur.
2671
2672
Impact :
2673
nécessite des règles d’alarme embarquées, une configuration locale, un stockage local et des tests de synchronisation.
2674
```