Project

General

Profile

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

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

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