The Power of 10: Rules for Developing Safety-Critical Code
Les règles de puissance de 10 ont été créées en 2006 par Gerard Holzmann du laboratoire NASA / JPL pour un logiciel fiable[1]. Les règles visent à éliminer certaines pratiques de programmation en C qui rendent le code difficile à relire ou à analyser statiquement. Ces règles complètent la norme de programmation MISRA C et ont été intégrées au plus grand ensemble de normes de codage JPL[2].
Règles
Les dix règles sont les suivantes[1] :
- Éviter les constructions de flux complexes, telles que goto et récursivité .
- Toutes les boucles doivent avoir des limites fixes. Cela évite de créer involontairement des boucles infinis.
- Éviter d'allouer de la mémoire sur la heap.
- Limiter les fonctions Ă une seule page affichable sur un Ă©cran.
- Utiliser un minimum de deux assertions par fonction.
- Limiter la portée des variables au plus petit possible.
- VĂ©rifier la valeur de retour de toutes les fonctions non-void ou transformer en void pour indiquer que la valeur de retour est inutile.
- Utiliser le préprocesseur avec parcimonie.
- Limiter l'utilisation du pointeur à un seul déréférencement et ne pas utiliser de pointeur de fonction.
- Compiler avec tous les avertissements possibles actifs ; tous les avertissements doivent alors ĂŞtre pris en compte avant la publication du logiciel.
Usages
L'étude de la NASA sur le firmware de commande électronique des gaz de Toyota a révélé au moins 243 violations de ces règles[3] - [4].
Voir Ă©galement
Lectures complémentaires
- G.J. Holzmann, « The Power of 10: Rules for Developing Safety-Critical Code », IEEE Computer, vol. 39, no 6,‎ , p. 95–99 (DOI 10.1109/MC.2006.212, lire en ligne)
Références
- The Power of 10: Rules for Developing Safety-Critical Code
- JPL C Coding Standard - JPL Laboratory for Reliable Software
- Unintended Acceleration and Other Embedded Software Bugs, March 1st, 2011, by Michael Barr, Embedded Gurus
- NASA Engineering and Safety Center Technical Assessment Report, National Highway Traffic Safety Administration Toyota Unintended Acceleration Investigation, Appendix A
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.