Polyspace für C/C++-Codeverifikation
Programm ansehen und anmeldenKursbeschreibung
- 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, 中文, 日本語, 한국어