Applications logicielles certifiables 1
Processus principaux
Jean-Louis Boulanger
ISTE éditions
Introduction
11
Chapitre 1. Système, équipement et logiciel
15
1.1. Introduction15
1.2. Impact sur la sûreté de fonctionnement15
1.3. Système de contrôle et de commande17
1.4. Système22
1.5. Processus de réalisation25
1.6. Sécurité : du système au logiciel27
1.7. Application logicielle30
1.7.1. Qu'est-ce que le logiciel ?30
1.7.2. Générique, spécifique ou dédiée31
1.7.3. Différents types de logiciels31
1.7.4. Différents types d'utilisation32
1.8. Conclusion32
1.9. Glossaire33
1.10. Bibliographie34
Chapitre 2. Application logicielle
35
2.1. Introduction35
2.2. Application logicielle versus logiciel35
2.3. L'application logicielle dans son contexte38
2.3.1. Cadre général38
2.3.2. Réutilisabilité, maintenabilité et continuité de service39
2.3.3. Architecture modulaire41
2.4. Logiciel générique et logiciel paramétré42
2.5. Module et composant46
2.6. Composant réutilisé et COTS51
2.7. Ligne de produit52
2.8. Conclusion54
2.9. Glossaire54
2.10. Bibliographie55
Chapitre 3. Principe de la sûreté de fonctionnement
57
3.1. Introduction57
3.2. Sûreté de fonctionnement58
3.2.1. Concepts de base58
3.2.2. Entrave à la sûreté de fonctionnement59
3.2.3. Moyen64
3.2.4. Exemple d'entrave65
3.2.5. Classification des fautes67
3.2.6. Adaptation aux applications logicielles68
3.3. Description des erreurs du logiciel73
3.4. Mise en sécurité d'une application logicielle73
3.4.1. L'évitement des fautes74
3.4.2. L'élimination des fautes75
3.4.3. La tolérance aux fautes75
3.4.4. La prévision des fautes76
3.4.5. Bilan77
3.5. Conclusion77
3.6. Glossaire78
3.7. Bibliographie78
Chapitre 4. Maîtrise de la sécurité d'une application logicielle
81
4.1. Introduction81
4.2. Approche générale83
4.3. Danger, événement redouté, accident, risque84
4.3.1. Définitions84
4.4. Sécurité du système90
4.4.1. Définition90
4.4.2. Maîtrise de la sécurité93
4.4.3. Intégrité de la sécurité99
4.4.4. Gestion des SIL102
4.4.5. Niveau d'intégrité de la sécurité103
4.4.6. Cycle global de la sécurité107
4.5. Plan d'assurance sécurité113
4.6. Dossier de sécurité113
4.6.1. Structure du dossier de sécurité113
4.6.2. Contraintes exportées114
4.6.3. Produit115
4.7. Fiabilité, disponibilité et maintenabilité116
4.7.1. Besoin116
4.7.2. De la problématique particulière de l'utilisation
de composants sur étagère117
4.7.3. Plan de FDM118
4.8. Système critique118
4.9. Conclusion119
4.10. Annexe : plan d'assurance sécurité119
4.11. Glossaire120
4.12. Bibliographie121
Chapitre 5. Sécurité d'une application logicielle
125
5.1. Introduction125
5.2. Approche générale127
5.2.1. Fiabilité du logiciel127
5.2.2. Disponibilité129
5.2.3. Maintenance130
5.2.4. Sécurité130
5.2.5. Impact du logiciel132
5.3. Niveau de sécurité133
5.4. Activité de démonstration de la sécurité
d'une application logicielle134
5.4.1. Analyse de sécurité134
5.4.2. Analyse du code140
5.4.3. Respect des exigences de sécurité142
5.4.4. Analyse des anomalies143
5.5. Conclusion143
5.6. Plan type d'un PASL144
5.7. Glossaire145
5.8. Bibliographie146
Chapitre 6. Technique de sécurisation
d'une application logicielle
149
6.1. Introduction149
6.2. Techniques de sécurisation d'une application logicielle150
6.2.1. Introduction150
6.2.2. La gestion des erreurs150
6.2.3. Le recouvrement d'erreurs153
6.2.4. La programmation défensive159
6.2.5. La double exécution de l'application logicielle167
6.2.6. La redondance des données175
6.3. D'autres diversités178
6.3.1. La diversité temporelle179
6.3.2. La diversité d'allocation en mémoire179
6.4. Conclusion179
6.5. Glossaire180
6.6. Bibliographie181
Chapitre 7. Evaluation et certification
183
7.1. Introduction183
7.2. Produit184
7.3. Evaluation184
7.4. Certification188
7.4.1. Certification de produit188
7.4.2. Evaluation et certification de logiciel190
7.4.3. Cross-acceptance192
7.4.4. Maîtrise des évolutions192
7.4.5. Essais193
7.5. Conclusion195
7.6. Glossaire195
7.7. Bibliographie196
Chapitre 8. Plusieurs domaines et différents référentiels
normatifs
199
8.1. Introduction199
8.2. Présentation des standards par domaine199
8.2.1. Système E/E/EP199
8.2.2. Domaine ferroviaire204
8.2.3. Aéronautique212
8.2.4. Spatial215
8.2.5. Nucléaire216
8.2.6. Automobile216
8.3. Quelques contraintes220
8.4. Niveau de sécurité220
8.5. Conclusion221
8.6. Glossaire221
8.7. Bibliographie222
Chapitre 9. Maîtrise de la qualité
227
9.1. Introduction227
9.2. Amélioration continue228
9.3. Management, mais aussi contrôle de la qualité229
9.4. Maîtrise de la qualité229
9.4.1. Introduction229
9.4.2. ISO 9000230
9.4.3. ISO 9001230
9.4.4. Autres233
9.4.5. Manuel d'assurance qualité, MAQ237
9.4.6. Qualité projet238
9.5. Qu'est-ce que la qualité d'une application logicielle ?239
9.6. Réalisation d'une application logicielle240
9.7. Qualité logiciel241
9.7.1. Caractéristiques d'une application logicielle241
9.7.2. Objectif qualité242
9.8. Mesure de la complexité d'une application logicielle246
9.9. Cycle de réalisation246
9.9.1. Introduction246
9.9.2. Différents cycles de vie247
9.9.3. Cycle en V249
9.9.4. Vérification et validation251
9.10. Vocabulaire et mode d'expression252
9.11. Organisation252
9.11.1. Introduction252
9.11.2. Organisation type253
9.11.3. Gestion des compétences255
9.12. Maîtrise de la gestion de la configuration258
9.13. Management de l'assurance sécurité259
9.14. Plan d'assurance qualité du logiciel (PAQL)261
9.15. Gestion des anomalies263
9.16. Maintenance d'une application logicielle266
9.17. Conclusion266
9.18. Annexe : structure d'un plan d'assurance qualité logiciel267
9.19. Glossaire268
9.20. Bibliographie269
Chapitre 10. Management des exigences
271
10.1. Introduction271
10.2. Phase d'acquisition des exigences272
10.2.1. Introduction272
10.2.2. Elucidation des exigences273
10.2.3. Processus d'analyse et de documentation280
10.2.4. Vérification et validation des exigences287
10.3. Spécification des exigences290
10.3.1. Caractérisation des exigences290
10.3.2. Caractérisation de la spécification des exigences295
10.3.3. Expression des exigences295
10.3.4. Validation des exigences300
10.4. Réalisation des exigences300
10.4.1. Processus300
10.4.2. Vérification301
10.4.3. Traçabilité302
10.4.4. Gestion des changements306
10.5. Gestion des exigences309
10.5.1. Activités309
10.5.2. Deux approches310
10.5.3. Mise en place d'outils311
10.6. Conclusion313
10.7. Glossaire313
10.8. Bibliographie314
Conclusion
317
Index
319