
Wie funktioniert statische Codeanalyse?
CodeSonar 4 gewährleistet genaueste statische CodeanalyseCodeSonar arbeitet wie ein Compiler auf der bereits vorhandenen Entwicklungsumgebung. Anstatt einen Objektcode zu generieren, erstellt CodeSonar jedoch eine abstrakte Version Ihres gesamten Programmes. Im nächsten Schritt analysiert CodeSonars Symbolic-Execution-Engine die Programmpfade und Programmvariablen, sowie deren Verknüpfungen untereinander. Anschließend werden irrelevante Programmpfade mittels Theorem-Proving-Technologie entfernt um sie von der Analyse auszunehmen.
Das folgende Diagramm erklärt die Vorgehensweise von CodeSonar 4
Zum Vergrößern bitte auf die Darstellung klicken.
Checker suchen im Programm-Code nach oft auftretenden Fehlern und Verletzungen von Richtlinien. Sie durchsuchen das Programm nach Auffälligkeiten oder nach Mustern,
die auf Fehler hindeuten. Zusätzlich analysiert die Symbolic-Execution-Technik Programmpfade anhand eines Datenflussdiagramms. In dieser Datenstruktur werden Pfade des
Programmes dargestellt, die möglicherweise relevant für dessen korrekten Ablauf sind.
Sobald bei der Analyse der Programmpfade eine Anomalität festgestellt wird, erhält der Entwickler eine Warnmeldung. Es muss eine astronomische Anzahl von möglichen
Fehlerkombinationen visualisiert und analysiert werden, um die Sicherheit des Programms zu gewährleisten. Für eine maximale Effektivität greift CodeSonar 4 deshalb auf
verschiedene Vorgehensweisen zurück. Beispielsweise werden Prozeduren während der Analyse zusammengefasst und komprimiert sowie Programmpfade in einer Abfolge untersucht,
die ein Paging minimiert.
Erweiterbare, anspruchsvolle Codeanalyse
Codes, mit weit über 10 Millionen Programm-Zeilen, können von CodeSonar 4 analysiert werden. Um die Effektivität mittels Nebenläufigkeit zu erhöhen, kann sich CodeSonar 4 die Vorteile von Mehrkernprozessoren nutzbar machen. Bei Änderungen am Programm überprüft CodeSonar 4 nicht nochmal den gesamten Code. Wurde dessen Grundgerüst einmal analysiert, überprüft CodeSonar 4 mittels inkrementeller Analyse nur noch die Änderungen.CodeSonar 4 bietet eine umfassende Analyse der Datenflüsse und Symbolic Execution, um den Ablauf des gesamten Programmes zu überprüfen. Dabei belässt es das Analysetool
nicht bei der bloßen Erkennung von Fehlermustern oder entsprechenden Approximationen. Die ganzheitliche Betrachtung des zu untersuchenden Programmes sorgt hingegen dafür,
dass CodeSonar 4 auch bisher unbekannte Fehlermuster aufdeckt.
Automatisierter Workflow
Mit zusätzlichen Automatisierungsfunktionen kann die Zusammenarbeit auch in großen Teams effektiv koordiniert werden. CodeSonar 4 erlaubt den projekt- und abteilungsübergreifenden Austausch von Fehler- und Warnhinweisen. Das Programm kann dank einer Programmierschnittstelle angepasst oder um zusätzliche Tools erweitert werden.Anpassungsmöglichkeiten
Die Architektur von CodeSonar 4 ist offen und flexibel. CodeSonar 4 kann Analysebefunde mit anderen Programmen austauschen. Das bedeutet, dass Untersuchungsergebnisse von CodeSonar exportiert und Ergebnisse von anderen Analysetools importiert werden können. Eine Programmierschnittstelle ermöglicht es, die bereitgestellten Checker um benutzerdefinierte Checker und Code-Metrics zu erweitern.


CodeSonar 4 für Embedded Systeme
![[PDF]](icon-pdf-15x16.gif)
![[PDF]](icon-pdf-15x16.gif)
Development Testing
Defect Detection
Concurrency Checks
Security Checks
Software-Metriken
Automatisierung der Quellcodeverifikation
CodeSonar for Java
Erfüllung von Normen
DO-178
ISO 26262
FDA-Normen
MISRA
CWE- und BSI-Regeln
"Power of Ten" und JPL-Regeln
IEC 62443
Wie Statische Codeanalyse funktioniert
Workflow-Features
Binary-Analyse
Visual-Taint-Analyse
Whitepapers
Referenzen
Hochschulprogramm
Fallstudien
![[PDF]](icon-pdf-15x16.gif)