Hinweis für Professoren: Verwenden Sie PVS-Studio, um die Schüler mit den Tools zur Codeanalyse vertraut zu machen

Bild 1

Unsere Support-Chats und einige andere indirekte Anzeichen zeigten, dass viele Studenten unter unseren kostenlosen Nutzern sind. Hier ist der Grund: PVS-Studio wird heute häufiger von Professoren in Kursen zur Softwareentwicklung eingesetzt. Wir sind sehr zufrieden damit und haben beschlossen, diesen kleinen Artikel zu schreiben, um von anderen Lehrern bemerkt zu werden. Wir freuen uns, dass die Schüler die Methodik der statischen Code-Analyse im Allgemeinen und das PVS-Studio-Tool im Besonderen kennenlernen. Unser Team wird versuchen, zu diesem Trend beizutragen.

Die Entwicklung moderner Software ist ohne einen integrierten Ansatz zur Gewährleistung der Softwarequalität und -zuverlässigkeit nicht möglich. Der Grund ist, dass die Größe der Codebasis heutiger Anwendungen schnell wächst. Lass Zahlen für sich selbst sprechen. Nehmen wir zum Beispiel Betriebssysteme:

  • MS DOS 1.0: 4.000 Codezeilen. Eine Person könnte diesen Code vollständig lesen, ihn aussortieren und Fehler finden.
  • Linux 1.0.0-Kernel: 176.000 Codezeilen. Ein Team könnte den Code noch gründlich überprüfen, obwohl dies viel Zeit und Mühe kosten würde.
  • Linux 5.0-Kernel: mehr als 26.000.000 Codezeilen. Man kann solch ein grenzenloses Projekt einfach nicht annehmen.

Das Linux-Kernel-Beispiel zeigt, dass die Codebasisgröße in 25 Jahren um das 150-fache gestiegen ist. Jetzt ist es für einen Programmierer unmöglich, den Code der gesamten Anwendung in einer Sitzung zu überprüfen, dh zu verstehen, Fehler zu finden und Architekturlösungen zu verbessern. Das Innenleben moderner Programme könnte für eine Person zu überwältigend sein. Gegenwärtig gibt es keine Spezialisten mehr, die Fragen zu den Interna des Projekts beantworten können.

Die Unfähigkeit, das Projekt zu erfassen, ist nur die halbe Miete. Mit zunehmender Größe eines Projekts wächst auch die Fehlerdichte. Ich möchte betonen, dass es nicht nur um die Zunahme der Fehleranzahl geht, sondern auch um deren Dichte! In einem Kursprogramm können Sie 1.000 Codezeilen schreiben und einen einzelnen Fehler vermeiden. Während es in einer großen Anwendung keine Möglichkeit gibt, 1000 Codezeilen hinzuzufügen und einige Fehler zu vermeiden. Zur Erklärung werden wir noch einmal auf die Zahlen zurückgreifen:

Abbildung 1. Typische Fehlerdichte in Projekten unterschiedlicher Größe. Die Daten stammen aus Steve McConnells Buch "Code complete".

Abbildung 1. Typische Fehlerdichte in Projekten unterschiedlicher Größe. Die Daten stammen aus Steve McConnells Buch "Code complete".

Es ist daher unmöglich, zuverlässige Programme mit denselben Ansätzen wie vor 20 bis 30 Jahren zu schreiben. Sie müssen eine Reihe von Methoden verwenden, um die wachsende Komplexität eines Softwareprojekts zu kontrollieren und die erforderliche Codequalität sicherzustellen:

  • Codierungsstandards
  • Code-Bewertungen
  • Unit-Tests
  • Regressionstests
  • Lasttest
  • Manuelle Prüfung
  • ....
  • Dynamische Analyse
  • Statische Analyse

Methoden von oben auf der Liste sind Programmierern vertraut und werden seit langem von fast allen Teams erfolgreich angewendet. Die letzten beiden Methoden sind jedoch noch viel seltener, wenn auch nicht neu. Daher sollten Professoren im Verlauf der Ausbildung von Studenten dem Studium der statischen und dynamischen Analysewerkzeuge besondere Aufmerksamkeit widmen.

Ich werde jetzt nichts über dynamische Analysen sagen, obwohl sie nicht weniger wichtig als statische sind.

Die statische Analyse ist unser Ding und ich lade Professoren ein, auf unser PVS-Studio-Softwareprodukt zu achten.

PVS-Studio ist ein Tool zum Erkennen von Fehlern und potenziellen Schwachstellen im Quellcode von Programmen, die in C, C ++, C # und Java geschrieben wurden. Funktioniert in 64-Bit-Systemen unter Windows, Linux und MacOS und kann Code für 32-Bit-, 64-Bit- und eingebettete ARM-Plattformen analysieren.

Der PVS-Studio-Analysator kann als gutes Beispiel für ein modernes statisches Code-Analyse-Tool angesehen werden. Erstens ist es ein gutes Beispiel, um die Fähigkeiten statischer Analysewerkzeuge bei der Erkennung von Fehlern und Sicherheitsmängeln ( SAST ) zu demonstrieren . Zweitens können Sie die Integration in den Softwareentwicklungszyklus demonstrieren, um eine kontinuierliche Codesteuerung zu ermöglichen. In diesem Beispiel können Sie die Integration mit Systemen wie Jenkins , TeamCity , Azure DevOps , SonarQube , Travis CI und anderen zeigen.

Um PVS-Studio als Teil des Trainings zu verwenden, müssen Sie nichts Besonderes tun.

Wir bieten verschiedene Optionen für die kostenlose PVS-Studio-Lizenzierung an, einschließlich der für offene Projekte. Speziell für Bildungszwecke ist es für den Fall, dass die Werke der Schüler nicht geöffnet sind, die beste Option, dem Code den folgenden Kommentar hinzuzufügen:

// 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

Sie müssen zwei Schritte ausführen, um den PVS-Studio Code Analyzer kostenlos zu verwenden:

Schritt eins

Wenn Sie PVS-Studio als Visual Studio-Plugin verwenden, geben Sie den folgenden Lizenzschlüssel ein:

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

Wenn Sie PVS-Studio für Linux verwenden, fahren Sie mit dem zweiten Schritt fort. Sie benötigen keine Lizenzdatei.

Schritt zwei

Sie müssen am Anfang jeder Datei zwei Kommentarzeilen schreiben. Nehmen Sie Änderungen in allen kompilierbaren Dateien Ihres Projekts vor. Wir meinen Dateien mit den Erweiterungen c, cc, cpp, cs, java und anderen. Sie müssen keine h-Dateien ändern.

Sie können Kommentare sowohl manuell hinzufügen als auch ein Hilfsdienstprogramm verwenden. Sie können das Dienstprogramm (zusammen mit dem Quellcode) hier herunterladen: How-to-Use-pvs-studio-free .

Details finden Sie im Artikel: " So nutzen Sie PVS-Studio kostenlos ." Bitten Sie die Schüler, es sich anzusehen. Insbesondere sollten wir berücksichtigen, dass wir kostenlose Benutzer auf der StackOverflow-Website unterstützen. Verwechseln Sie jedoch nicht den Support und die Benachrichtigungen über Fehler. Dies sind die Punkte, die der obige Artikel beschreibt.

Vielen Dank für Ihre Aufmerksamkeit. Bei Fragen stehen wir Ihnen gerne zur Verfügung. Zögern Sie nicht, uns zu schreiben .

Zusätzliche Links:

  1. Führen Sie die statische Analyse in den Prozess ein und suchen Sie damit nicht nur nach Fehlern
  2. Möglichkeiten, eine kostenlose PVS-Studio-Lizenz zu erhalten
  3. PVS-Studio-Dokumentation

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


All Articles