Seminararbeit, 2010
8 Seiten, Note: 1.0
Dieses Paper bietet einen Überblick über die statische Codeanalyse und die Werkzeuge, die dafür eingesetzt werden können. Es beleuchtet die verschiedenen Analysetypen, die Anforderungen an geeignete Werkzeuge und vergleicht schließlich verschiedene am Markt erhältliche Tools.
Einleitung: Die Einleitung betont die unvermeidbaren Fehler im Quellcode und deren besondere Bedeutung in sicherheitskritischen Systemen. Sie führt die statische Codeanalyse als Methode zur frühzeitigen Fehlererkennung ein, die auch schwer auffindbare Laufzeitfehler aufdecken kann.
Einordnung: Dieses Kapitel differenziert zwischen dynamischen und statischen Testverfahren. Während dynamische Tests die Funktionalität durch Codeausführung prüfen, arbeitet die statische Codeanalyse rein quelltextbasiert und wird als White-Box-Testverfahren eingeordnet. Der prinzipielle Ablauf der statischen Codeanalyse wird grafisch veranschaulicht.
Analysetypen: Hier werden verschiedene Analysetypen im Detail beschrieben: die Syntaxanalyse (Prüfung auf Syntax- und Grammatikfehler), die Stilanalyse (Prüfung des Programmierstils gemäß Richtlinien wie Misra C oder JSF C++), die Kontrollflussanalyse (Analyse des Programmablaufs zur Erkennung unerreichbaren Codes) und die Datenflussanalyse (Untersuchung des Variablenzustands entlang verschiedener Ausführungspfade zur Identifizierung von Fehlern wie undefinierter Variablenverwendung).
Anforderungen an Werkzeuge: Dieses Kapitel listet die wichtigen Anforderungen an Werkzeuge für die statische Codeanalyse auf. Dazu gehören der Umfang der Analyse (möglichst viele effektive Analysen), die Zuverlässigkeit (geringe False-Positives und False-Negatives), die Qualität der Reports (Übersichtlichkeit, Filterfunktionen, Exportmöglichkeiten) und die Performanz (schnelle Analyse, auch bei großen Codebasen).
Vergleich verschiedener Werkzeuge: Der letzte Abschnitt bietet einen Überblick über verschiedene Tools (Coverity, Polyspace, CodeSonar, Klocwork, QA-C/C++) und vergleicht sie hinsichtlich des Umfangs der durchgeführten Analysen und ihrer Zuverlässigkeit (False-Positive-Rate). Es werden die Stärken und Schwächen der einzelnen Tools in Bezug auf die zuvor definierten Anforderungen herausgestellt.
Statische Codeanalyse, dynamische Codeanalyse, White-Box-Test, Syntaxanalyse, Stilanalyse, Kontrollflussanalyse, Datenflussanalyse, Werkzeuge, Coverity, Polyspace, CodeSonar, Klocwork, QA-C/C++, False Positives, False Negatives, Misra C, JSF C++, Softwarequalität, Sicherheit, eingebettete Systeme.
Dieses Dokument bietet einen umfassenden Überblick über die statische Codeanalyse. Es beinhaltet ein Inhaltsverzeichnis, die Zielsetzung und Themenschwerpunkte, Zusammenfassungen der einzelnen Kapitel und eine Liste der Schlüsselwörter. Der Fokus liegt auf den verschiedenen Arten der statischen Codeanalyse, den Anforderungen an geeignete Werkzeuge und einem Vergleich verschiedener am Markt erhältlicher Tools.
Das Dokument beschreibt detailliert vier Analysetypen: die Syntaxanalyse (Prüfung auf Syntax- und Grammatikfehler), die Stilanalyse (Prüfung des Programmierstils gemäß Richtlinien wie Misra C oder JSF C++), die Kontrollflussanalyse (Analyse des Programmablaufs zur Erkennung unerreichbaren Codes) und die Datenflussanalyse (Untersuchung des Variablenzustands zur Identifizierung von Fehlern wie undefinierter Variablenverwendung).
Wichtige Anforderungen an Werkzeuge sind: der Umfang der Analyse (möglichst viele effektive Analysen), die Zuverlässigkeit (geringe False-Positives und False-Negatives), die Qualität der Reports (Übersichtlichkeit, Filterfunktionen, Exportmöglichkeiten) und die Performanz (schnelle Analyse, auch bei großen Codebasen).
Der Vergleich umfasst verschiedene Tools wie Coverity, Polyspace, CodeSonar, Klocwork und QA-C/C++. Der Vergleich konzentriert sich auf den Umfang der durchgeführten Analysen und deren Zuverlässigkeit (False-Positive-Rate). Stärken und Schwächen der einzelnen Tools im Hinblick auf die zuvor definierten Anforderungen werden hervorgehoben.
Das Dokument differenziert zwischen dynamischen und statischen Testverfahren. Dynamische Tests prüfen die Funktionalität durch Codeausführung, während die statische Codeanalyse rein quelltextbasiert arbeitet und als White-Box-Testverfahren eingeordnet wird. Der prinzipielle Ablauf der statischen Codeanalyse wird veranschaulicht.
Die Einleitung betont die unvermeidbaren Fehler im Quellcode und deren besondere Bedeutung in sicherheitskritischen Systemen. Die statische Codeanalyse wird als Methode zur frühzeitigen Fehlererkennung eingeführt, die auch schwer auffindbare Laufzeitfehler aufdecken kann. Der Einfluss der statischen Codeanalyse auf die Softwarequalität wird ebenfalls angesprochen.
Schlüsselwörter sind: Statische Codeanalyse, dynamische Codeanalyse, White-Box-Test, Syntaxanalyse, Stilanalyse, Kontrollflussanalyse, Datenflussanalyse, Werkzeuge, Coverity, Polyspace, CodeSonar, Klocwork, QA-C/C++, False Positives, False Negatives, Misra C, JSF C++, Softwarequalität, Sicherheit, eingebettete Systeme.
Der GRIN Verlag hat sich seit 1998 auf die Veröffentlichung akademischer eBooks und Bücher spezialisiert. Der GRIN Verlag steht damit als erstes Unternehmen für User Generated Quality Content. Die Verlagsseiten GRIN.com, Hausarbeiten.de und Diplomarbeiten24 bieten für Hochschullehrer, Absolventen und Studenten die ideale Plattform, wissenschaftliche Texte wie Hausarbeiten, Referate, Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Dissertationen und wissenschaftliche Aufsätze einem breiten Publikum zu präsentieren.
Kostenfreie Veröffentlichung: Hausarbeit, Bachelorarbeit, Diplomarbeit, Dissertation, Masterarbeit, Interpretation oder Referat jetzt veröffentlichen!
Kommentare