Schulungen zu MATLAB und Simulink

Polyspace für C/C++-Codeverifikation

Programm ansehen und anmelden

Kursbeschreibung

In diesem Kurs ermitteln und verbessern Sie die Qualität von eingebetteter Software mittels Polyspace Bug Finder™ und Polyspace Code Prover™. An unterschiedlichen Punkten des Entwicklungsprozesses spüren Sie potentielle Defekte in C-Code auf und überprüfen den Code auf Richtlinienkonformität. Schließlich weisen Sie nach, dass der Code frei von Laufzeitfehlern ist. Themen sind unter anderem:
 
  • Erstellen eines Verifikationsprojekts
  • Verstehen und Bewerten von Verifikationsresultaten
  • Nachbilden des Ausführungskontexts für die Codeverifikation
  • Umgang mit fehlenden Funktionen und Daten
  • Handhaben von nicht-bewiesenem Code (durch Polyspace®-Produkte orange markiert)
  • Überprüfen von MISRA C®-Konformität
  • Dokumentieren von Ergebnissen

Tag 1 von 3


Überblick über Polyspace-Prozesse

Ziel: Verstehen an welcher Stelle im Softwareentwicklungsprozess Polyspace Bug Finder und Polyspace Code Prover richtigerweise eingesetzt werden. Vertraut machen mit den Produkten anhand der Analyse eines einfachen C-Programms.

  • Codeverifikationsprozesse
  • Ausführen einer Codeanalyse mit Bug Finder
  • Ausführen einer Codeverifikation mit Code Prover
  • Analysieren und Beheben von Softwareproblemen

Codeanalyse mit Polyspace Bug Finder

Ziel: Analysieren von Code, der nicht ANSI-C konform ist. Berücksichtigen der Laufzeitumgebung und des Ausführungskontexts und korrigieren von Defekten und Verletzungen von Code-Regeln mit Polyspace Bug Finder.

  • Erstellen eines Polyspace-Projekts
  • Typische Artefakte einer Laufzeitumgebung
  • Verifizieren von prozessorspezifischem Code
  • Definieren der Informationen zur Zielhardware
  • Analysieren und Handhaben von Defekten in Polyspace Bug Finder
  • Aufspüren von MISRA C-Richtlinienverletzungen
  • Erfassen von Codemetriken
  • Projektvorlagen

Analysieren von Polyspace Code Prover-Ergebnissen

Ziel: Nutzen verschiedener Werkzeuge des Polyspace Code Prover, um durch die Ergebnisse des Polyspace Code Prover zu navigieren, und um diese zu interpretieren.

  • Überblick über die abstrakte Interpretation
  • Analysieren des Aufrufbaums
  • Navigieren durch den Quellcode
  • Interpretieren der Polyspace Code Prover-Ergebnisse
  • Analysieren der Zugriffe auf globale Variablen

Checks zur Codeverifikation

Ziel: Untersuchen von Verifikationsergebnissen, um das Verhalten der unterschiedlichen Checks kennenzulernen, und um Polyspace Code Prover zu Ihrem Entwicklungsprojekt passend zu konfigurieren.

  • Überblick über C-Quellcode-Checks
  • Polyspace Code Prover-Checks auf Laufzeitfehler
  • Einstellen relevanter Optionen

Tag 2 von 3


Organisieren von Polyspace Code Prover-Verifikationen und ihrer Ergebnisse

Ziel: Handhaben von Ergebnissen mit zahlreichen unbewiesenen Checks.

  • Verifikationsprozesse mit Code Prover
  • Steuern der Programmausführungsreihenfolge
  • Priorisieren orange markierter Laufzeitfehler-Checks

Präzisieren von Verifikation mit Polyspace Code Prover

Ziel: Anpassen der Art und Weise mit der Polyspace Code Prover fehlenden Code behandelt, um die Verifikation eines Softwaremoduls sinnvoll zu präzisieren.

  • Einfluss von fehlendem Aufrufkontext auf die Verifikation
  • Automatisches Stubben von Funktionen
  • Einschränken von Wertebereichen
  • Schreiben manueller Funktionsstubs

Integrationsanalyse mit Polyspace Access

Ziel: Verifizierungsergebnisse mit zunehmender Codekomplexität mithilfe von Polyspace Access™ verwalten. Integriertionsanalysen interpretieren und mit Robustheitsanalysen verglichen.

  • Post-Submit-Workflows mit Polyspace Access
  • Kontextabhängige Verifikation
  • Analysieren von sich bei der Integration ergebenden Defekten und Richtlinienverletzungen

Analyse einer kompletten Applikation

Ziel: Anwenden verschiedener Verfahren und Optionseinstellungen, um den kompletten Code einer Applikation zu analysieren.

  • Aufsetzen einer Applikationsverifikation
  • Aufspüren von sich aus Nebenläufigkeit ergebenden Problemen
  • Ersetzen von Assembly- oder Hardwarefunktionen
  • Umgang mit Code von Drittparteien in Polyspace
  • Dokumentieren von Ergebnissen

Tag 3 von 3


Hands-On Übungen (nur bei Vor-Ort-Schulungen)

Ziel: Anwenden des Gelernten auf den eigenen Code und integrieren von Polyspace Bug Finder und Polyspace Code Prover in einen Entwicklungsprozess. Mögliche Themen sind:

  • Polyspace Bug Finder-Checks
  • Verifikation von C++-Code
  • Nebenläufigkeit und Analyse gemeinsam genutzter Variablen
  • Verifikation automatisch generierten Codes
  • Review des Entwicklungsprozesses
  • Prozessintegration
  • Client/Server-Installation
  • Polyspace für ein Projekt konfigurieren
  • Interpretation der Ergebnisse

Anhang F: Integrationsanalyse mit Polyspace Desktop

Ziel: Verifikationen mit zunehmender Codekomplexität verwalten. Integrationsanalysen interpretiert und mit Robustheitsanalysen vergleichen.

  • Kontextabhängige Verifikation
  • Erstellen neuer Module
  • Analysieren von sich bei der Integration ergebenden Defekten und Richtlinienverletzungen

Stufe: Aufbaukurse

Voraussetzungen:

  • Solide Kenntnisse in C oder C++

Dauer: 2 Tage

Sprachen: English, 中文, 日本語

Programm ansehen und anmelden