PRQA Programming Research, spécialiste des technologies d’analyse statique de code, fait évoluer ses outils QA·C et QA·C++ pour environnements C et C++ en y intégrant des avancées dont l’objectif est de rendre plus accessible ...aux développeurs cette approche du test logiciel, qui intervient avant la phase de compilation. Au menu de cette version, on trouve en particulier un moteur d’analyse de flux de données intégré qui permet de modéliser la définition d’un pointeur sur les membres d’un pointeur de classe et de structure.
Pour ce faire, la représentation interne des membres de classe/structure adopte désormais une forme spécifique permettant un traitement plus efficace par le solveur de problèmes de type SMT (Satisfiability Modulo Theories). Conséquence : la vitesse, la profondeur et la précision de l’analyse en est améliorée. Au-delà, une mise à jour de l’interface graphique et des lignes de commande assure une intégration plus aisée de l’outil au sein des environnements de développement classiquement utilisés par les développeurs, comme MS Visual Studio de Microsoft ou la plate-forme Eclipse. L'amélioration de l’intégration de composants tiers pour étoffer la liste des langages logiciels supportés, ainsi que la compatibilité IPv6 et multilangage sont aussi au programme de cette mouture de QA·C++.
Enfin, cette version assure une compatibilité accrue avec les standards Misra C++ (qui définit des règles de programmation très utilisées dans des applications à haut niveau de sûreté de fonctionnement dans l’automobile) et HIC++ (qui stipule un ensemble de règles de codage développées par PRQA Programming Research et utilisées par d’autres sociétés). Le niveau de couverture des règles de codage applicables dans le domaine de l’analyse statique sont respectivement de 92% et de 87 % pour les deux standards.
Rappelons que QA·C++ est un outil d’analyse statique qui permet d’assurer une transition de codes existants vers le standard C++ (C++ 2011 et C++ 2014) grâce notamment à une couverture des principales nouvelles pratiques de codage, comme, entre autres, les références rvalue, les templates variadiques, les littéraux définis par l’utilisateur et l’opérateur noexcept. De plus, via les ajouts récents du template extern, des arguments par défaut et de l’extension au pointeur this, QA·C++ prend désormais en charge plus de 60 % des fonctions récentes du langage.