Coverity Static Analysis

[English]

Coverity Prevent ™ C/C++: Automatische Analyse und Fehleraufdeckung für die Garantie hochqualitativer Software

Coverity Prevent ™ ist das führende statische Code-Analysetool für die automatische Aufdeckung von kritischen Problemen in C, C++ und Java-Quellcode.
Das Tool nutzt unter anderem das mathematische Verfahren der sogenannten "Boole´schen Satisfiability" und liefert damit eine bisher unerreichte Genauigkeit bei der statischen Code-Analyse.
Coverity Prevent ™ beschränkt sich nicht auf jeweils separate Analyse einzelner Dateien, sondern überwacht den gesamten Build-Vorgang. Für jeden Compiler-Aufruf wird ein interner -Compiler aufgerufen, der den Quellcode in eine eigene Repräsenation (analog zum menschlichen Genom "Software-DNA" genannt) übersetzt, die erst in einem zweiten Schritt durch den Coverity-Parser übersetzt wird. Hierdurch wird sichergestellt, daß Coverity Prevent Aufbau und Zusammenhänge des Quellcodes "versteht".
Durch die Coverity Prevent ™-Benutzeroberfläche wird die Fehlerbehandlung für den User wesentlich vereinfacht.

Prevent for C/C++ eignet sich besonders für große Softwaresysteme und deckt kritische "Must-Fix-Defekte" auf, die zu Systemabstürzen, Speicher- und Sicherheitsproblemen, unvorhergesehenem Verhalten und Performance-Einbrüchen führen können.


Coverity Prevent wird weltweit bereits von zahlreichen wichtigen Softwareentwicklungsfirmen unter anderem in den Bereichen Medizintechnik, Automation, Automotive und Telekommunikation eingesetzt.

Prevent bietet:

  • 100% Pfadabdeckung: Prevent for C/C++ analysiert alle ausführbaren Pfade Ihres Quellcodes. Damit eine zügige Analyse gewährleistet werden kann, werden nicht ausführbare Pfade bei der Analyse nicht berücksichtigt.
  • geringe "False-Positive-Rate": Prevent for C/C++ liefert die geringste "False-Positive-Rate" aller auf dem Markt verfügbaren statischen Analysetools. Coverity Prevent stellt damit sicher, daß die für die Code-Analyse aufgewendete Zeit zu entscheidenden Qualitätsverbesserungen im Quellcode führt und nicht für das Überprüfen von "falschen Meldungen" verschwendet wird.
  • Fähigkeit zur schnellen Analyse großer Softwareprojekte: Prevent for C/C++ analysiert Millionen von Codezeilen in nur wenigen Stunden. Das Tool integriert sich in Ihren normalen Build-Prozeß und benötigt in der Regel keine zusätzliche Hardware.
Entgegen vieler anderer statischer Analysetools, die Programmstil- und syntax-basierte Prüfungen durchführen, liefert Prevent for C/C++ eine tiefe, interprozedurale Analyse zur Aufdeckung kritischer "must-fix" Defekte, die sonst nur sehr schwierig zu finden sind. Prevent for C/C++ nutzt dabei zahlreiche Analyse-Engines, wie zum Beispiel:
  • "Path Flow Engine": "versteht" den Kontrollfluß jeder Funktion der Software und garantiert die 100%-ige Analyse aller Pfade des Quellcodes
  • "Statistical Engine": analysiert bestimmte "Verhaltensmuster" in der Software um abweichendes Verhalten anzuzeigen
  • "Interprocedural Summary Engine" setzt Prevent in die Lage eine komplette Analyse von komplexen Call-Chains entsprechend der späteren Quellcode-Execution auszuführen und garantiert damit genaueste Ergebnisse
  • "False Path Engine": untersucht jede Verzweigungsbedinung auf "wahr", "falsch" oder unbekannt wodurch "False-Positives" beim Reporting effizient reduziert werden
Coverity Prevent Defect Manager   Coverity Prevent Defect Status
Die Prevent-Analyse-Ergebnisse werden in einem zentralen Defektmanager ausgegeben, der die automatische Zuweisung von Defekten an User inklusive Email-Benachrichtigung ermöglicht.   Prevent liefert grafische Berichte mit Informationen über den aktuellen Fehlerstatus des Projektes und dessen Veränderung über die Zeit. Hierdurch wird die Entwicklung der Projektqualität sichtbar.

 

Coverity Extend™ C/C++ paßt die statische Code-Analyse an Ihre Bedürfnisse an

Coverity Extend ist ein benutzerfreundliches Software Developoment Kit (SDK), daß Entwicklern erlaubt, neben den "Out-of-the-Box-Checkern" von Coverity Prevent auch eigene, zusätzliche Fehlerkategorien und Regeln abprüfen zu lassen.

Coverity Extend kann für folgende Aufgaben genutzt werden:

  • Aufdecken spezifischer Defekte in Ihrem Code
  • Abprüfen von Firmen- oder Industriestandards, wie MISRA
  • Automatisieren von Teilen manueller Code-Reviews
Coverity Extend verfügt über ein einfach zu nutzendes leistungsfähiges SDK um Checker in C++ zu schreiben. Mit diesen Checkern analysiert Coverity Extend dann den Quellcode auf die benutzerdefinierten Defekte hin. Alle aufgedeckten Fehler werden im Coverity Prevent™-Code-Browser zusammen mit den "Standard-Defekten" angezeigt. Die durch den Nutzer definierten Erweiterungen werden in einer Custom Checker Library abgespeichert. Die Anzahl der Checker ist unbegrenzt.

Zum Schreiben von Coverity-Extend-Checkern sind außer C++ Programmierkenntnissen keine besonderen Fähigkeiten erforderlich. Sobald der Entwickler eine Erweiterung geschrieben hat, wird diese über die Coverity-Analysis-Engine für die gesamte Codebasis abgeprüft.

weitere Dokumente:

[PDF]  Coverity Prevent ™ (304 KB)
[PDF]  Coverity Extend™ (84 KB)
Coverity Home page
Coverity Mainpage
Free trial Next
Next page

last updated: 13.01.2009

© 2008-2009 Coverity Inc., San Francisco
Coverity Prevent, coverity Extend, Coverity Architecture Analyzer for C/C++ and Coverity Architecture Analyzer for Java are products and trademarks of Coverity, San Francisco (USA)
all other trademarks of this site are the property of their respective owners.