Atelier CAP’TRONIC : Fiabilité et qualité logicielle - des outils et des méthodes pour détecter les défauts de conception
Pour connaitre les prochaines sessions de formation sur Logiciel embarque et programmation cliquez ici.
Le principe de cette formation, est de présenter et d’utiliser un ensemble d’outils d’analyse de code source, permettant de capturer un maximum d’erreurs de conception, pour certains avant même la compilation.
Des outils gratuits seront présentés et utilisés. En fin de formation, le stagiaire emportera l’ensemble des travaux, exemples et exercices réalisés pendant les 2 jours.
Les défauts logiciels (bugs) lorsqu’ils arrivent lors de la phase de production, ou pire, chez un client, sont un vrai problème pour les entreprises qui développent des programmes informatiques.
Plus les défauts sont trouvés tôt dans la chaîne de conception logicielle, moins leur correction coûte cher. A l’inverse, des défauts logiciels découverts et corrigés chez le Client peuvent avoir des effets économiques et d’image désastreux.
Il existe des normes, des méthodes et des outils qui permettent de ne pas produire ou de capturer les bugs.
« Le bug le moins cher à corriger est celui qu’on ne produit pas »
Objectifs :
Cet atelier vise à donner, aux PME, les bases pour appliquer, de manière pragmatique, des méthodes issues de groupes industriels, afin d’augmenter la qualité du logiciel.
Programme :
Jour 1 : Qualité logicielle du code C
Introduction
• Sources courantes de défauts
• Utilité de la qualité illustrée par des cas d’usage
• Présentation générale des méthodes de qualité logicielle
Le langage C
• Conception modulaire et qualité logicielle
• Pièges et ambiguïtés du C
• Règles MISRA C
• Considérations sur le C++ et d’autres langages
• Pratique : interprétation des messages du compilateur
Écriture du code
• Bonnes pratiques et normes d’écriture
• Outil d’indentation automatique
Documentation intégrée
• Principe, méthode et utilité
• Exemple avec Doxygen
Pratique : Projet avec Code::Blocks
• Écriture modulaire
• Indentation automatique avec Astyle
• Documentation intégrée avec Doxygen
Jour 2 : Méthodes et outils complémentaires pour la qualité logicielle
Analyse statique du code
• Exemples avec CPPCheck et Frama-C
Analyse dynamique et profilers
• Exemples avec Valgrind
Gestion de version et traçabilité des défauts
• Exemples avec Mercurial et Redmine
Test et automatisation
• Tests unitaires, fonctionnels et de non-régression
• Intégration continue et tests automatisés : Exemples avec Sonar et Jenkins
Méthodes complémentaires de qualité logicielle
Synthèse et conclusion
Public visé et pré-requis :
Entreprises, PMEs, startups ou bureaux d’études qui envisagent de développer des applications informatiques ou qui souhaitent se perfectionner.
Une connaissance du langage C est nécessaire.