Hausarbeiten logo
Shop
Shop
Tutorials
De En
Shop
Tutorials
  • How to find your topic
  • How to research effectively
  • How to structure an academic paper
  • How to cite correctly
  • How to format in Word
Trends
FAQ
Go to shop › Computer Science - Programming

Vergleich von Fagan-Inspektionen und werkzeuggestützter statischer Codeanalyse

Comparison of Fagan inspections and static code-analysis tools

Title: Vergleich von Fagan-Inspektionen und werkzeuggestützter statischer Codeanalyse

Diploma Thesis , 2009 , 71 Pages , Grade: 1,3

Autor:in: Tobias Riegg (Author)

Computer Science - Programming

Excerpt & Details   Look inside the ebook
Summary Excerpt Details

In einem Softwareunternehmen wurde im Rahmen dieser Arbeit eine retrospektive Fallstudie über den Einsatz von statischer Codeanalyse und Fagan Inspektionen durchgeführt. Betrachtet wurde eine ältere Codebasis, bei der Änderungshistorie und gefunde Bugs bekannt war. Es wurden die Ergebnisse mehrere stat. Analysewerkzeuge mit denen formaler Reviews und den zum Entstehungszeitpunkt der Arbeit behobenen Fehlern verglichen.

Gliederung:
-Grundlagen der statischen Analyse
-Fagan-Inspektionen / Codereviews
-Beschreibung der Fallstudie
-Analyse der Ergebnisse

Excerpt


Inhaltsverzeichnis

1. Einleitung

2. Grundlagen

2.1. Qualitätsmanagement

2.2. Fehler

2.2.1. Definition Fehlerbegriff

2.2.2. Fehlerklassifikation nach Schwere

2.2.3. Fehlerklassifikation nach Typ

2.3. Metriken

2.4. Programmierstandards

3. Grundlagen der statischen Analyse

3.1. Automatisierte statische Analyse

3.1.1. Token- und Bug-Pattern-Analyse

3.1.2. Programm-, Kontroll- und Datenflussanalyse

3.1.3. Abstrakte Interpretation

3.2. Fagan-Inspektionen

3.2.1. Inspektionsanfrage

3.2.2. Planung

3.2.3. Kickoff-Meeting

3.2.4. Individuelle Prüfung

3.2.5. Logging-Meeting

3.2.6. Edit

3.2.7. Follow up

3.2.8. Exit

4. Studienbeschreibung

4.1. Forschungsfragen

4.2. Studiendesign und -implementierung

4.2.1. Das Unternehmen TomTec

4.2.2. Arbeitsumgebung

4.2.3. Akquise der Analysewerkzeuge

4.2.4. Studienimplementierung

4.3. Studienobjekte

4.3.1. Statische Analysewerkzeuge für C++

4.3.2. Das Softwareprodukt „Quonos“

5. Fallstudie

5.1. Vorbereitungen

5.2. Studie 1: Analyse des Gesamtprojektes

5.2.1. Vorbemerkung

5.2.2. Ergebnisse

5.3. Studie 2: Fagan-Inspektion

5.3.1. Bericht der Inspektion

5.3.2. Ergebnisse

5.4. Studie 3: Vergleich der Ergebnisse im Detail

5.4.1. Vorbemerkung

5.4.2. Ergebnisse

5.5. Validitätsrisiken

5.5.1. Designfehler

5.5.2. Interne Fehler

5.5.3. Externe Fehler

6. Integration von automatischer Codeanalyse in Fagan-Inspektionen

6.1. Integrationsvorschläge

6.2. Bewertung der Vorschläge

7. Zusammenfassung und Ausblick

8. Anhang

8.1. Weitere Werkzeuge

8.2. Checklisten der Inspektion

8.3. Meinungen von Entwicklern

8.3.1. Von den Inspektoren

8.3.2. TomTec Developer Days

9. Literatur

Zielsetzung & Themen

Die Arbeit untersucht das Potenzial und die Effizienz von zwei zentralen Methoden der Software-Qualitätssicherung: der automatisierten, werkzeuggestützten statischen Codeanalyse und der formalen Fagan-Inspektion. Ziel ist es, deren Leistungsfähigkeit bei der Fehlersuche im realen industriellen Kontext (anhand der Software Quonos der Firma TomTec) zu bewerten, ihre Ergebnisse empirisch zu vergleichen und zu prüfen, wie sich diese Methoden sinnvoll in bestehende Entwicklungsprozesse integrieren lassen.

  • Vergleich automatisierter statischer Analysewerkzeuge mit Fagan-Inspektionen
  • Empirische Analyse der Fehlererkennungsrate und Fehlertypen
  • Bewertung der Korrelation zwischen Codemetriken und tatsächlichen Softwarefehlern
  • Untersuchung der Synergieeffekte bei Kombination beider Verfahren
  • Integration von Werkzeugunterstützung in den formalen Fagan-Inspektionsprozess

Auszug aus dem Buch

3.1.3. Abstrakte Interpretation

Um dem eingänglich erwähnten Dilemma des Halteproblems zu entgehen, muss die Menge oder der Detailgrad der zu verarbeitenden Informationen reduziert werden [16, 21]. Abstrakte Interpretation nutzt die Technik der Abstraktion, um den Detailgrad zu reduzieren, ganz im Gegensatz zu den zuvor vorgestellten Techniken, die vornehmlich die Datenmenge durch Pfadreduktion etc. einschränken, wie der französische Informatikprofessor Patrick Cousot, der als Pionier der abstrakten Interpretation gilt, seine Idee beschrieb [76, 77].

Erst durch die zunehmende Rechenleistung in den vergangenen Jahren wurde dieser Ansatz der formalen Analyse praktisch realisierbar. Grundgedanke ist der, die Vorgänge in einem Programm abstrahiert zu betrachten, ähnlich wie es durch einen Stadtplan mit einer realen Stadt möglich ist. Eine Multiplikation zweier konkreter Zahlen wird nur noch als die Multiplikation zweier Datentypen betrachtet, wodurch sich dennoch Rückschlüsse auf Eigenschaften des Ergebnisses ziehen lassen, beispielsweise auf das Vorzeichen oder eventuell mögliche Überläufe. Abstrakte Interpretation ermöglicht auf diese Weise, formal zu entscheiden, ob Anweisungen in einem Programm korrekt oder inkorrekt sind oder ob eine solche Entscheidung nicht möglich ist, in Teilen des Codes kann also formal die Abwesenheit von (Programmier-)Fehlern nachgewiesen werden. [47, 76, 77] In engen Grenzen ist es durch abstrakte Interpretation sogar möglich, mit statischer Analyse dynamische Fehler aufzuzeigen, wie beispielsweise mögliche Divisionen durch Null. Leider haben Analysewerkzeuge, die mit dieser Technik die formale Korrektheit beweisen wollen, in der Praxis Probleme mit großen Programmen aufgrund ihrer langen Laufzeit.

Zusammenfassung der Kapitel

1. Einleitung: Motivation durch prominente Beispiele von Softwarefehlern und Einführung in die Bedeutung der statischen Codeanalyse sowie der Fagan-Inspektion als Qualitätssicherungsmaßnahmen.

2. Grundlagen: Definition von Qualitätsmanagement, Fehlerbegriffen nach IEEE/DIN sowie Einführung in Metriken und Programmierstandards für C++.

3. Grundlagen der statischen Analyse: Erläuterung technischer Verfahren wie Token-Analyse, Kontroll- und Datenflussanalyse sowie die detaillierte Beschreibung des Fagan-Inspektionsprozesses.

4. Studienbeschreibung: Definition der Forschungsfragen und Vorstellung des Studiendesigns, der eingesetzten Werkzeuge (Klocwork, Polyspace, PreFast, Coverity, Fortify) und des Testobjekts Quonos.

5. Fallstudie: Empirische Auswertung der Analysewerkzeuge und der durchgeführten Fagan-Inspektion inklusive Vergleich der Ergebnisse und Validitätsrisiken.

6. Integration von automatischer Codeanalyse in Fagan-Inspektionen: Entwicklung und Bewertung von Vorschlägen zur Verzahnung beider Methoden, insbesondere der Nutzung der Analyse als Eingangskriterium.

7. Zusammenfassung und Ausblick: Fazit der Untersuchung, dass keine Methode allein ausreicht, und Empfehlung zur komplementären Nutzung von Werkzeugen und Inspektionen.

8. Anhang: Auflistung weiterer Werkzeuge, verwendete Inspektions-Checklisten und Zusammenfassung der Meinungen beteiligter Entwickler.

9. Literatur: Verzeichnis der zitierten wissenschaftlichen Quellen.

Schlüsselwörter

Statische Codeanalyse, Fagan-Inspektion, Software-Qualitätssicherung, Fehlererkennung, C++, Bug-Pattern, Datenflussanalyse, Software-Metriken, Fehlerklassifikation, Industrieprojekt, Qualitätssicherung, Code-Reviews, Fehlerprävention, Software-Wartbarkeit, Testautomatisierung.

Häufig gestellte Fragen

Worum geht es in dieser Arbeit grundsätzlich?

Die Diplomarbeit befasst sich mit einem direkten Vergleich von zwei unterschiedlichen Strategien der Qualitätssicherung in der Softwareentwicklung: der automatisierten, werkzeuggestützten statischen Codeanalyse und der manuellen, formalen Fagan-Inspektion.

Was sind die zentralen Themenfelder?

Die zentralen Themen sind die theoretischen Grundlagen der statischen Analyse, die Methodik formaler Software-Inspektionen sowie die empirische Untersuchung dieser Verfahren an einem realen Softwareprojekt der Firma TomTec Imaging Systems.

Was ist das primäre Ziel oder die Forschungsfrage?

Das Ziel ist es, die Effektivität und Effizienz beider Ansätze zu bewerten, herauszufinden, welche Art von Fehlern sie jeweils aufspüren, und zu klären, ob und wie diese komplementären Methoden kombiniert werden können.

Welche wissenschaftliche Methode wird verwendet?

Es wird eine empirische Fallstudie durchgeführt, bei der ein Software-Objekt („Quonos“) sowohl automatisiert durch fünf verschiedene Werkzeuge analysiert als auch manuell durch ein Team von erfahrenen Entwicklern mittels Fagan-Inspektion geprüft wird. Die Ergebnisse werden quantitativ verglichen und statistisch ausgewertet.

Was wird im Hauptteil behandelt?

Im Hauptteil werden zunächst die theoretischen Hintergründe erläutert, dann das Studiendesign inklusive der beteiligten Werkzeuge detailliert beschrieben, die Durchführung der Fallstudien dargelegt und schließlich Integrationsmöglichkeiten der beiden Ansätze erarbeitet und bewertet.

Welche Schlüsselwörter charakterisieren die Arbeit?

Wichtige Begriffe sind Statische Codeanalyse, Fagan-Inspektion, Software-Qualitätssicherung, Fehlerklassifikation, C++, Fehlerprävention und Code-Reviews.

Wie schneiden die automatisierten Werkzeuge im Vergleich zur manuellen Inspektion ab?

Die Inspektion ist in Bezug auf die Entdeckung logischer Fehler und Diskrepanzen zur Spezifikation qualitativ und quantitativ überlegen, allerdings ist sie auch deutlich zeitaufwändiger und kostenintensiver als die automatisierte Analyse.

Was ist das Hauptergebnis zur Integration der Methoden?

Die Arbeit empfiehlt, automatisierte Werkzeuge vor der Fagan-Inspektion einzusetzen, um diese als obligatorisches Eingangskriterium zu nutzen; dies steigert die Effizienz des Inspektionsteams, da diese sich dann auf komplexere Fehler konzentrieren können.

Was sind die wichtigsten Erkenntnisse zur Fehlerklasse „Sonstige“?

Fehler in der Klasse „Sonstige“ (z. B. fehlende Prüfungen oder logische Diskrepanzen) werden von automatisierten Werkzeugen oft gar nicht oder nur schwer erkannt, während die manuelle Inspektion hier ihre Stärken ausspielen konnte.

Warum ist die „zyklomatische Komplexität“ in dieser Studie relevant?

Sie dient als Korrelationswert für die Fehlerrate; es zeigt sich, dass Menschen in komplexen Code-Abschnitten zu mehr Fehlern neigen, wobei auch diese Bereiche für automatisierte Werkzeuge aufgrund von Pfadlimitierungen eine besondere Herausforderung darstellen.

Excerpt out of 71 pages  - scroll top

Details

Title
Vergleich von Fagan-Inspektionen und werkzeuggestützter statischer Codeanalyse
Subtitle
Comparison of Fagan inspections and static code-analysis tools
College
Technical University of Munich  (Fakultät Für Informatik)
Course
Informatik
Grade
1,3
Author
Tobias Riegg (Author)
Publication Year
2009
Pages
71
Catalog Number
V206913
ISBN (eBook)
9783656338291
ISBN (Book)
9783656340669
Language
German
Tags
Codereviews Fagan-Inspektion Inspektion Statische Analyse Programmierstand Codemetriken Fehlerklassifikation HICPP JSF++ MISRA C++ Abstrakte Interpretation Klocwork Insight Mathworks Polyspace Microsoft PreFast Coverity Prevent Fortify 360
Product Safety
GRIN Publishing GmbH
Quote paper
Tobias Riegg (Author), 2009, Vergleich von Fagan-Inspektionen und werkzeuggestützter statischer Codeanalyse, Munich, GRIN Verlag, https://www.hausarbeiten.de/document/206913
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.
  • 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.
  • 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  71  pages
Hausarbeiten logo
  • Facebook
  • Instagram
  • TikTok
  • Shop
  • Tutorials
  • FAQ
  • Payment & Shipping
  • About us
  • Contact
  • Privacy
  • Terms
  • Imprint