Pour les professeurs: utilisez PVS-Studio pour familiariser les étudiants avec les outils d'analyse de code

Image 1

Nos chats de support et quelques autres signes indirects ont montré qu'il y a beaucoup d'étudiants parmi nos utilisateurs gratuits. Voici la raison: PVS-Studio est maintenant plus souvent utilisé par les professeurs dans les cours liés au développement de logiciels. Nous en sommes très satisfaits et nous avons décidé d'écrire ce petit article pour tomber sous le coup des autres professeurs. Nous sommes heureux que les étudiants se familiarisent avec la méthodologie de l'analyse de code statique en général et l'outil PVS-Studio en particulier. Notre équipe tentera de contribuer à cette tendance.

Le développement de logiciels modernes est impossible sans une approche intégrée pour garantir la qualité et la fiabilité des logiciels. La raison en est que la taille de la base de code des applications d'aujourd'hui augmente rapidement. Laissez les chiffres parler d'eux-mêmes. Par exemple, prenons les systèmes d'exploitation:

  • MS DOS 1.0: 4 000 lignes de code. Une personne a pu lire l'intégralité de ce code, le trier, trouver des bogues.
  • Noyau Linux 1.0.0: 176 000 lignes de code. Une équipe pourrait toujours revoir le code en profondeur, même si cela prendrait beaucoup de temps et d'efforts.
  • Noyau Linux 5.0: plus de 26 000 000 lignes de code. On ne peut tout simplement pas embrasser un projet aussi illimité.

L'exemple du noyau Linux montre que la taille de la base de code a augmenté de 150 fois en 25 ans. Il est maintenant impossible pour un programmeur de revoir le code de l'application entière en une seule séance, c'est-à-dire de le comprendre, de trouver des erreurs, d'améliorer des solutions architecturales. Le fonctionnement interne des programmes modernes peut être trop écrasant pour une seule personne. À l'heure actuelle, il n'y a plus de spécialistes capables de répondre à toute question concernant les éléments internes du projet.

L'incapacité à saisir le projet n'est que la moitié du problème. À mesure que la taille d'un projet augmente, la densité d'erreur augmente également. Je voudrais souligner qu'il ne s'agit pas seulement de l'augmentation du nombre d'erreurs, mais de leur densité! Dans un programme de cours, vous pouvez écrire 1 000 lignes de code et éviter une seule erreur. Alors qu'il n'y a aucun moyen d'ajouter 1000 lignes de code dans une grande application et d'éviter quelques erreurs. Pour expliquer, nous recourrons à nouveau aux chiffres:

Figure 1. Densité d'erreur typique dans des projets de différentes tailles. Les données sont extraites du livre de Steve McConnell "Code complet".

Figure 1. Densité d'erreur typique dans des projets de différentes tailles. Les données sont extraites du livre de Steve McConnell "Code complete".

Il est donc impossible d'écrire des programmes fiables en utilisant les mêmes approches qu'il y a 20-30 ans. Vous devez utiliser un ensemble de méthodologies pour aider à contrôler la complexité croissante d'un projet logiciel et garantir la qualité de code nécessaire:

  • Normes de codage
  • Revues de code
  • Tests unitaires
  • Test de régression
  • Test de charge
  • Test manuel
  • ....
  • Analyse dynamique
  • Analyse statique

Les méthodologies figurant en tête de liste sont bien connues des programmeurs et ont longtemps été appliquées avec succès par presque toutes les équipes. Mais les deux dernières méthodologies sont encore beaucoup moins courantes, bien qu'elles ne soient pas nouvelles. Par conséquent, maintenant dans le cadre de la formation des étudiants, les professeurs devraient accorder une attention particulière à l'étude des outils d'analyse statique et dynamique.

Je ne dirai rien sur l'analyse dynamique maintenant, bien qu'elle ne soit pas moins importante que statique.

Quant à l'analyse statique, c'est notre truc et j'invite les professeurs à faire attention à notre produit logiciel PVS-Studio.

PVS-Studio est un outil conçu pour détecter les erreurs et les vulnérabilités potentielles dans le code source des programmes, écrit en C, C ++, C # et Java. Fonctionne dans les systèmes 64 bits sur Windows, Linux et macOS et peut analyser le code des plates-formes ARM 32 bits, 64 bits et intégrées.

L'analyseur PVS-Studio peut être considéré comme un bel exemple d'un outil d'analyse de code statique moderne. Tout d'abord, c'est un excellent exemple pour montrer les capacités des outils d'analyse statique à détecter les erreurs et les défauts de sécurité ( SAST ). Deuxièmement, vous pouvez démontrer son intégration dans le cycle de développement logiciel pour permettre un contrôle continu du code. Dans son exemple, vous pouvez montrer l'intégration avec des systèmes tels que Jenkins , TeamCity , Azure DevOps , SonarQube , Travis CI et autres.

Pour commencer à utiliser PVS-Studio dans le cadre de la formation, vous n'avez rien à faire de spécial.

Nous proposons plusieurs options pour la licence PVS-Studio gratuite, y compris celles pour les projets ouverts. Spécifiquement à des fins éducatives, dans le cas où les travaux des étudiants ne sont pas ouverts, la meilleure option est d'ajouter le commentaire suivant au code:

// This is a personal academic project. Dear PVS-Studio, please check it.
// PVS-Studio Static Code Analyzer for C, C++, C#, and Java: http://www.viva64.com

Vous devez suivre deux étapes pour commencer à utiliser l'analyseur de code PVS-Studio gratuitement:

Première étape

Si vous utilisez PVS-Studio en tant que plug-in Visual Studio, entrez la clé de licence suivante:

Name: PVS-Studio Free
Key: FREE-FREE-FREE-FREE

Si vous utilisez PVS-Studio pour Linux, passez à la deuxième étape, vous n'aurez pas besoin d'un fichier de licence.

Deuxième étape

Vous devez écrire deux lignes de commentaires au début de chaque fichier. Apportez des modifications dans tous les fichiers compilables de votre projet. Nous voulons dire les fichiers avec les extensions c, cc, cpp, cs, java et autres. Vous n'avez pas à modifier les fichiers h.

Vous pouvez à la fois ajouter des commentaires manuellement et utiliser un utilitaire auxiliaire pour ce faire. Vous pouvez télécharger l'utilitaire (avec le code source) ici: comment-utiliser-pvs-studio-free .

Vous pouvez trouver les détails dans l'article: " Comment utiliser PVS-Studio gratuitement ." Demandez aux élèves de le vérifier. En particulier, nous devons tenir compte du fait que nous fournissons une assistance aux utilisateurs gratuits sur le site Web StackOverflow. Mais ne confondez pas le support et les notifications concernant les bugs. Ce sont les points que l'article ci-dessus décrit.

Merci de votre attention. En cas de questions, nous sommes prêts à fournir une assistance et des consultations. N'hésitez pas à écrire à notre support.

Liens supplémentaires:

  1. Introduisez l'analyse statique dans le processus, ne vous contentez pas de rechercher des bogues
  2. Comment obtenir une licence PVS-Studio gratuite
  3. Documentation PVS-Studio

Source: https://habr.com/ru/post/fr470069/


All Articles