Nous utilisons des cookies pour améliorer votre expérience de navigation. En savoir plus
Accepter
to the top
close form

Remplissez le formulaire ci‑dessous en 2 étapes simples :

Vos coordonnées :

Étape 1
Félicitations ! Voici votre code promo !

Type de licence souhaité :

Étape 2
Team license
Enterprise licence
** En cliquant sur ce bouton, vous déclarez accepter notre politique de confidentialité
close form
Demandez des tarifs
Nouvelle licence
Renouvellement de licence
--Sélectionnez la devise--
USD
EUR
* En cliquant sur ce bouton, vous déclarez accepter notre politique de confidentialité

close form
La licence PVS‑Studio gratuit pour les spécialistes Microsoft MVP
close form
Pour obtenir la licence de votre projet open source, s’il vous plait rempliez ce formulaire
* En cliquant sur ce bouton, vous déclarez accepter notre politique de confidentialité

close form
I am interested to try it on the platforms:
* En cliquant sur ce bouton, vous déclarez accepter notre politique de confidentialité

close form

Votre demande est en cours de traitement

Nous enverrons une clé d'essai à votre e-mail .

Si l'e-mail n'apparaît pas dans votre boîte de réception, recherchez-le dans l'un des dossiers suivants.

  • Promotion
  • Notifications
  • Spam

Webinar: Evaluation - 05.12

L'analyse statique dans le génie mécanique

L'analyseur statique PVS‑Studio détecte les erreurs dans le code écrit en C, C++, C# et Java. L'analyseur est plus efficace pour rechercher de problèmes dans les systèmes incorporés et autres projets d'ingénierie.

Simplifiez et réduisez le prix de la correction des erreurs

Plus tôt détection d'erreur sera le moins cher pour corriger. L'analyseur statique détecte les erreurs au stade de l'écriture du code ou, du moins, lors des tests nocturnes (night tests) sur le serveur. En conséquence : détection et correction des erreurs deviennent plus économiques.

Graph with cost to fix

L'analyse statique peut être particulièrement utile pour débogage des systèmes embarqués.

Dans de tels projets, les développeurs peuvent rencontrer des erreurs dans le logiciel et l'appareil, ou une mauvaise qualité de la conception de la mise en page (mauvais contacts, etc.).

Par conséquent, le processus de trouver d'erreurs peut prendre beaucoup de temps, puisqu'il n'est pas toujours évident où chercher une.

Si un développeur pense que le code est correct, cela peut créer les concepteurs de circuits et d'autres collègues à passer du temps à trouver une erreur dans le matériel.

Plus il sera désagréable de revenir plus tard sur le code du programme et de finalement trouver une faute de frappe.

L'utilisation inefficace du temps et de l'énergie de l'équipe. C'est formidable si un analyseur statique trouve une telle erreur.

Voici la description un cas similaire par développer :

Quand j'ai été master, j'ai commencé à travailler pour une entreprise spécialisée dans la production de divers appareils personnalisés. Par exemple, l'automation des serres ou collection d'information à partir de capteurs dans l'entreprise. Cela signifie qu'il n'y a eu ni fuite ni ne surchauffe nulle part.

J'ai été attribué une autre tâche typique, que j'ai terminée en quelques heures. Je l'ai ensuite donné à mes collègues pour qu'ils le microprogramme dans l'appareil. Ils ont été surpris par ma rapidité et j'ai répondu : " Je suis pro, c'est simple comme bonjour ". Ils ont pris la clé USB avec un fichier binaire pour le microprogramme et sont partis.

J'ai immédiatement effacé cela de ma mémoire. C'étaient des tâches plus grandes et plus intéressantes pour faire. De plus, comme mes collègues ne sont pas revenus, tout allait bien.

Ils sont revenus. Mais seulement une semaine après cela. Ils ont dit : " Nous sommes confus. Nous ne comprenons rien. Notre appareil ne fonctionne pas. Ou, plutôt, cela fonctionne, mais pas exactement comme prévu. Nous l'avons déjà ressoudé et remplacé les détails électromécaniques activés. Ça ne fonctionnera pas... Voulez-vous jeter un coup d'œil ? Il y a peut-être un problème avec le programme... " J'ai regardé le code et j'ai vu l'erreur suivante :

uchar A[3];
....
for (uchar i = 0; i != 4; i++)
  average += A[i];
average /= 3;

J'ai pris un autre projet comme base et j'ai simplement copié-collé la plupart du code. À un endroit, j'ai oublié de remplacer le nombre de capteurs : 4 par 3. J'étais tellement honteux d'avoir fait perdre deux semaines à deux personnes pour trouver mon erreur.

Détectez les erreurs dans les appareils en série avant la phase de production

Les erreurs dans les systèmes embarqués sont extrêmement désagréables. Il est presque impossible de les corriger si les appareils sont déjà en production de masse. Et si des centaines de milliers de machines à laver ont déjà été vendues et utilisées, mais qu'elles fonctionnent incorrectement dans un certain mode ? La question est rhétorique. Il n'y a que deux options :

  1. Acceptez-le, recevez des revues négatives de vos clients qui terniront votre réputation. Bien sûr, vous pouvez diffuser l'instruction supplémentaire qui dit " ne faites pas cela ", mais ce n'est pas une excellente solution non plus.
  2. Rappelez ces appareils et mettez à jour le firmware. Une solution chère.

De plus, que la circulation des appareils soit grande ou petite, la correction des erreurs peut être problématique ou retardée :

  • La fusée s'est écrasée, l'erreur a été détectée, mais trop tard ;

  • Les patients sont morts, l'erreur a été détectée, mais cela ne réanimera pas les gens ;

  • Les freins des voitures étaient cassés, l'erreur a été détectée, mais les victimes n'en ont tiré aucun avantage.

La conclusion est simple. Le code des systèmes embarqués doit être testé aussi en détail que possible. Surtout si les erreurs peuvent entraîner des pertes humaines ou de graves pertes matérielles.

L'analyse statique n'est pas garantie d'absence d'erreurs. Cependant, les développeurs doivent utiliser tous les moyens pour vérifier en plus le code pour les bugs. Les analyseurs statiques peuvent indiquer une variété d'erreurs qui diriger à se cacher dans le code même après plusieurs revues de code.

Si l'analyse statique aide à éliminer certaines erreurs dans le code, ce sera génial. Peut-être, grâce à la détection de ces erreurs, des vies humaines peuvent être sauvées et une entreprise ne perdra pas d'argent et de réputation.

Utilisiez plus de 1000 règles de diagnostic pour trouver les différentes issues dans le code

Les erreurs dans le logiciel peuvent diviser en deux types. Les développeurs savent les erreurs du premier type. Ils apparaissent dans le code par accident ou après un codage rapide. Les erreurs de second type apparaissent quand les développeurs ne savent pas qu'écrire du code de cette manière est une faute. En d'autres termes, ils peuvent examiner ce code autant de fois qu'ils le souhaitent, mais ils ne trouveront toujours pas l'erreur.

Pour détecter les problèmes dans le code, les analyseurs statiques utilisent une vaste base de connaissances avec des modèles qui, dans certaines conditions, conduisent à une erreur. Voilà, les analyseurs peuvent alerter les développeurs à propos des erreurs, dont l'existence peut ne pas être découverte en raison d'un manque de connaissances. Par exemple, l'utilisation du type time_t de 32 bit qui peut mener à un mauvais fonctionnement de l'appareil après 2038.

Un autre exemple est le comportement indéfini en raison d'une utilisation incorrecte des opérateurs de décalage <</>>. Ces opérateurs sont beaucoup utilisés dans le code des microcontrôleurs. Malheureusement, les développeurs utilisent souvent ces opérateurs de manière imprudente, rendant ainsi le logiciel peu fiable et dépendant de la version et des paramètres du compilateur. Le programme peut toujours fonctionner assez bien. Même si c'est par pur hasard et non pas grâce à la justesse du code.

En utilisant un analyseur statique, les développeurs peuvent prévenir une telle situation. De plus, l'analyseur peut être utilisé comme un outil de contrôle de la qualité du code, ce qui est important lorsque l'équipe s'agrandit ou change. En d'autres termes, l'analyse statique aide à vérifier si un nouveau développeur a commencé à écrire du mauvais code.

Vérifiez le code pour la conformité avec les standards de MISRA C, MISRA C++, AUTOSAR C++

Développement de système incorporé implique souvent l'utilisation de normes telles que MISRA C, MISRA C++, AUTOSAR C++. L'analyseur statique aide vérifie de code pour la conformité avec ces standards.

Les standards sont reliés et servent un seul but : améliorer la sécurité, la portabilité et la fiabilité des logiciels embarqués.

TÉLÉCHARGER ET ESSAYER L'ANALYSEUR PVS‑STUDIO

Unicorn with cool gift for all our awesome visitors :)