BIEN ÉVITER LES BUGS INFORMATIQUES SELON LA NASA

Jul 7, 2024

BIEN ÉVITER LES BUGS INFORMATIQUES SELON LA NASA

Introduction

  • Impact des bugs informatiques
    • Incidents mineurs vs incidents majeurs
    • Exemple : Ariane 5 (500 millions de dollars perdus à cause d'un bug informatique)
  • Importance de ne pas réinventer la roue en informatique
    • Utilisation du code existant
    • Exemple : le logiciel de guidage d’Ariane 4

Les Causes des Bugs

  • Variables et overflow
    • Problèmes d'allocation incorrecte de variables
    • Overflow et ses conséquences
  • Complexité des programmes
    • Probabilités d'erreurs qui augmentent avec la complexité
    • Analyse de Dijkstra sur la probabilité des erreurs
    • Utilisation de unit tests pour chaque fonction du programme

Théorème de Rice

  • Impossible de prouver l'absence de bugs

Les 10 Règles de la NASA pour un Code Fiable

  1. Éviter les structures de codes complexes
    • Ex : goto, setjmp, longjmp, récursivité
  2. Limiter les boucles
    • Les boucles doivent toujours avoir une limite fixe
  3. Éviter d'allouer de la mémoire sur le heap
    • Préférer l'utilisation de la stack
  4. Fonctions courtes
    • Chaque fonction doit faire moins de 60 lignes
  5. Assertions minimales
    • Utiliser au moins deux assertions par fonction
  6. Variables dans le plus petit scope possible
    • Limiter l'accès des variables
  7. Vérifier les valeurs de retour et les paramètres des fonctions
  8. Utiliser le préprocesseur avec parcimonie
    • Éviter les compilations conditionnelles complexes
  9. Éviter les pointeurs
    • Problèmes de gestion automatique difficiles
  10. Compiler avec tous les warnings activés

Conclusion

  • Bonne pratique avec des unit tests et les 10 règles
  • Conseils de la NASA applicables même dans des situations moins critiques

Publicité

  • Utilisation de Hostinger pour éviter des erreurs sur un site web