Coconote
AI notes
AI voice & video notes
Export note
Try for free
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
Éviter les structures de codes complexes
Ex : goto, setjmp, longjmp, récursivité
Limiter les boucles
Les boucles doivent toujours avoir une limite fixe
Éviter d'allouer de la mémoire sur le heap
Préférer l'utilisation de la stack
Fonctions courtes
Chaque fonction doit faire moins de 60 lignes
Assertions minimales
Utiliser au moins deux assertions par fonction
Variables dans le plus petit scope possible
Limiter l'accès des variables
Vérifier les valeurs de retour et les paramètres des fonctions
Utiliser le préprocesseur avec parcimonie
Éviter les compilations conditionnelles complexes
Éviter les pointeurs
Problèmes de gestion automatique difficiles
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
📄
Full transcript