Grin logo
de en es fr
Shop
GRIN Website
Publish your texts - enjoy our full service for authors
Go to shop › Computer Science - Applied

Statische Codeanalyse und Werkzeuge

Title: Statische Codeanalyse und Werkzeuge

Seminar Paper , 2010 , 8 Pages , Grade: 1.0

Autor:in: Stefan Wrobel (Author)

Computer Science - Applied
Excerpt & Details   Look inside the ebook
Summary Excerpt Details

Statische Codeanalyse ist ein Testverfahren, das
vor allem in sicherheitskritischen Bereichen, aber
auch bei weniger kritischen Anwendungen eingesetzt wird. Dieses Paper ist in zwei Teile gegliedert.
Der Erste Teil (Abschnitt 2-3) befasst sich mit
statischer Codeanalyse im Allgemeinen. Nach
einer Einordnung und Abgrenzung zu anderen
Testverfahren werden verschiedene Analysetypen
vorgestellt. Der zweite Teil (Abschnitt 4-5) befasst
sich mit Werkzeugen, die eingesetzt werden können, um eine statische Codeanalyse durchzuführen.
Nachdem in Abschnitt 4 verschiedene Anforderungen an Tools festgelegt werden, findet in Abschnitt
5 ein Vergleich mehrerer Tools statt.

Excerpt


Inhaltsverzeichnis

1. Einleitung

2. Einordnung

3. Analysetypen

3.1 Syntaxanalyse

3.2 Stilanalyse

3.3 Kontrollflussanalyse

3.4 Datenflussanalyse

4. Anforderungen an Werkzeuge

4.1 Umfang der Analyse

4.2 Zuverlässigkeit

4.3 Reports

4.4 Performanz

5. Vergleich verschiedener Werkzeuge

5.1 Überblick

5.2 Umfang der Analyse

5.3 Zuverlässigkeit

5.4 Reports

5.5 Performanz

6. Fazit

Zielsetzung & Themen

Die Arbeit untersucht die Bedeutung, Methoden und Werkzeuge der statischen Codeanalyse zur frühzeitigen Fehlererkennung in Softwareprojekten, insbesondere in sicherheitskritischen Bereichen. Es wird analysiert, wie diese automatisierten Verfahren die Stabilität von Programmen erhöhen und als Ergänzung zu dynamischen Testverfahren dienen.

  • Grundlagen und Einordnung der statischen Codeanalyse
  • Methodische Analysetypen (Syntax, Stil, Kontrollfluss, Datenfluss)
  • Anforderungskriterien für Analyse-Werkzeuge
  • Vergleich marktführender Tools (Coverity, PolySpace, CodeSonar, etc.)
  • Effizienz der Fehlererkennung und Performanzbetrachtung

Auszug aus dem Buch

3.4 Datenflussanalyse

Bei der Datenflussanalyse wird der Zustand einer Variablen entlang eines Pfades betrachtet. Dazu wird zunächst ein Graph des Programms (bzw. einer Funktion) gebildet, der sämtliche Pfade beinhaltet. Anschließend wird festgehalten, welche Aktionen entlang jedes Pfades mit dieser Variablen durchgeführt werden. Dabei kann man zwischen vier verschiedenen Aktionen unterscheiden (vgl. [Lig09], S.293ff):

• d: Definition (Wertzuweisung) der Variablen

• r: referenzieren (lesen) der Variablen

• u: undefinieren der Variablen (beispielsweise beim Verlassen einer Funktion bei einer lokalen Variablen, oder nach der Deklaration, wenn noch keine Wertzuweisung stattgefunden hat)

• -: es findet keine Aktion statt

In den dadurch entstandenen Zugriffssequenzen können verschiedene Muster auftauchen, die auf Fehler hinweisen:

• dd: es finden unmittelbar hintereinander zwei Zuweisungen einer Variablen statt

• du: nach einer Zuweisung wird die Variable undefiniert

• ur: eine Variable, die nicht definiert ist, wird verwendet

Die ersten beiden Muster müssen nicht zwangsweise Fehler sein, sondern können auch Absicht gewesen sein. Ein ur-Fehler dagegen ist fast immer ein Fehler und führt bei Programmausführung unter Umständen sogar zum Absturz. (vgl. [Hof08], S.315ff)

Zusammenfassung der Kapitel

1. Einleitung: Beschreibt die Notwendigkeit der Fehlervermeidung in sicherheitskritischen Softwaresystemen und führt in das Prinzip der statischen Codeanalyse ein.

2. Einordnung: Differenziert zwischen statischen und dynamischen Testverfahren und erläutert die Grunddefinition der statischen Codeanalyse.

3. Analysetypen: Erläutert die verschiedenen methodischen Ansätze wie Syntax-, Stil-, Kontrollfluss- und Datenflussanalyse zur Prüfung des Quellcodes.

4. Anforderungen an Werkzeuge: Definiert die notwendigen Qualitätsmerkmale für Analyse-Tools, darunter Zuverlässigkeit, Berichtswesen und Performanz.

5. Vergleich verschiedener Werkzeuge: Gegenüberstellung und Bewertung marktrelevanter Werkzeuge wie Coverity, PolySpace und CodeSonar anhand der zuvor definierten Kriterien.

6. Fazit: Resümiert die Bedeutung statischer Codeanalyse als unverzichtbare Methode für stabile Software und reflektiert über die technologischen Grenzen.

Schlüsselwörter

Statische Codeanalyse, Softwarequalität, Fehlererkennung, White-Box-Test, Datenflussanalyse, Kontrollflussanalyse, False Positives, False Negatives, Coderichtlinien, Misra C, Softwaretest, Werkzeugvergleich, Quellcode-Prüfung, Testautomatisierung, Sicherheit.

Häufig gestellte Fragen

Worum geht es in dieser Arbeit grundsätzlich?

Die Arbeit befasst sich mit dem Verfahren der statischen Codeanalyse als Mittel zur frühzeitigen Identifikation von Softwarefehlern ohne die Notwendigkeit einer Programmausführung.

Was sind die zentralen Themenfelder?

Die zentralen Themen umfassen die theoretischen Analysemethoden (z. B. Syntax-, Datenflussanalyse), die Anforderungen an professionelle Analysetools sowie deren praktische Leistungsfähigkeit im Vergleich.

Was ist das primäre Ziel der Arbeit?

Das Ziel ist es, aufzuzeigen, wie durch den Einsatz statischer Analyseverfahren die Robustheit und Qualität von Software, insbesondere in sicherheitskritischen Umgebungen, signifikant gesteigert werden kann.

Welche wissenschaftliche Methode wird verwendet?

Es wird eine deskriptive Analyse und ein systematischer Vergleich gängiger industrieller Software-Werkzeuge auf Basis von Fachliteratur und Herstellerdaten durchgeführt.

Was wird im Hauptteil behandelt?

Im Hauptteil werden zunächst die verschiedenen Arten der Codeanalyse theoretisch hergeleitet und anschließend ein Anforderungskatalog für Analysetools erstellt, welcher zur Bewertung der Werkzeuge herangezogen wird.

Welche Schlüsselwörter charakterisieren die Arbeit?

Wichtige Begriffe sind statische Codeanalyse, Softwarequalität, False Positives, Datenflussanalyse und Coderichtlinien wie Misra C.

Warum spielt die Unterscheidung zwischen "false positives" und "false negatives" eine Rolle?

Diese Kennzahlen sind entscheidend für die Effektivität eines Tools: Eine hohe Rate an "false positives" erhöht den manuellen Aufwand, während "false negatives" ein Sicherheitsrisiko darstellen, da sie tatsächliche Fehler im Code verbergen.

Welche Herausforderungen bestehen bei der Performanz von Analyse-Tools?

Die Analyse großer Codebasen mit Millionen Zeilen ist zeitintensiv; moderne Tools adressieren dies durch inkrementelle Analysen und die Beschränkung auf relevante Codeteile.

Wie unterscheidet sich die Vorgehensweise von PolySpace von anderen Werkzeugen?

PolySpace nutzt eine formale Methode, um für Codeabschnitte zu beweisen, ob sie fehlerfrei oder fehlerbehaftet sind, was zu einer spezifischen farblichen Kategorisierung (grün/rot/orange) der Ergebnisse führt.

Excerpt out of 8 pages  - scroll top

Details

Title
Statische Codeanalyse und Werkzeuge
College
University of Applied Sciences Offenburg
Course
IT-Anwendungen
Grade
1.0
Author
Stefan Wrobel (Author)
Publication Year
2010
Pages
8
Catalog Number
V195625
ISBN (eBook)
9783656218968
ISBN (Book)
9783656928263
Language
German
Tags
Codeanalyse Testverfahren Whitebox Blackbox Codesonar Klocwork Polyspace Coverity QA-C Misra Kontrollussanalyse Syntaxanalyse Stilanalyse Datenflussanalyse statischer Test Unittest Funktionstest
Product Safety
GRIN Publishing GmbH
Quote paper
Stefan Wrobel (Author), 2010, Statische Codeanalyse und Werkzeuge, Munich, GRIN Verlag, https://www.grin.com/document/195625
Look inside the ebook
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
Excerpt from  8  pages
Grin logo
  • Grin.com
  • Shipping
  • Contact
  • Privacy
  • Terms
  • Imprint