Suchen und Finden
Mehr zum Inhalt
Ablaufüberwachung objektorientierter Programme - Graphentheoretische Algorithmen für die Ablaufanalyse
Inhaltsverzeichnis
10
Definitionsverzeichnis
14
Algorithmenverzeichnis
16
Abbildungsverzeichnis
18
Tabellenverzeichnis
22
Kapitel 1 Einleitung
24
Kapitel 2 Aktueller Stand der Software-Fehleranalyse
28
2.1 Fehler
28
2.2 Existierende Techniken
29
2.3 Beispiel einer Fehleranalyse
30
2.4 Problembeschreibung
32
2.5 Verwandte Arbeiten
34
2.5.1 Program-Profiling
34
2.5.2 Program-Tracing
37
2.5.3 Werkzeuge für die Fehlersuche
38
2.6 Zusammenfassung
39
Kapitel 3 Graphentheoretische Grundlagen
42
3.1 Grundbegriffe
42
3.1.1 Allgemeine Graphen
42
3.1.2 Wege: Definitionen und elementare Eigenschaften
43
3.1.3 Erreichbarkeit und Zusammenhang
45
3.1.4 Klassifizierung von Zusammenhangskomponenten
46
3.1.5 Abgeleitete Graphen
47
3.2 Die Standard-a-Zerlegung
49
3.2.1 Klassen geschlossener a-Wege und Kantenzerlegungen
49
3.2.2 Die Standard-a-Zerlegung allgemeiner Graphen
50
Kapitel 4 Ablaufgraphen von Programmen
54
4.1 Überblick
54
4.2 Ablaufgraphen prozeduraler Sprachen
54
4.3 Ablaufgraphen objektorientierter Sprachen
56
4.4 Fehlerbehandlung mit Ausnahmen in objektorientierten Sprachen
56
4.5 Definitionen
58
4.6 Format einer Java-Class-Datei
59
4.7 Java-Bytecode
62
4.8 Instrumentierung des Codes
66
Kapitel 5 Rekonstruieren von Abläufen in einem Ablaufgraphen
68
5.1 Algorithmus zum Auffinden der Ereignisknoten SETEVENTS
68
5.2 Markieren der Bögen
71
5.3 Rekonstruieren von Abläufen (Algorithmus RECONSTRUCTFLOW)
73
5.4 Beweis des Rekonstruierungsverfahrens
74
5.5 Verheftungsknoten als Ereignisknoten
76
5.6 Modifizierung des SETEVENTS Algorithmus
81
5.7 Beispiel einer Ablaufrekonstruktion
84
5.7.1 Auffinden der Ereignisknoten
84
5.7.2 Markieren der Bögen
89
5.7.3 Rekonstruieren der Abläufe
89
5.8 Effizienzbetrachtungen des Algorithmus SETEVENTS
90
5.9 Effizienzbetrachtungen des Algorithmus RECONSTRUCTFLOW
91
Kapitel 6 Analyse der Optimalität der Menge von Ereignisknoten
94
6.1 Formalisierung der Minimalitäts- und Optimalitätskriterien
94
6.2 Vergleich des SETEVENTS Algorithmus mit dem Knuth-Stevenson Algorithmus
97
6.3 Kombinieren des Algorithmus mit dem Knuth-Stevenson Algorithmus
99
6.4 Zerlegen der starken Zusammenhangskomponenten
104
6.5 Hierarchie der Algorithmen zum Finden der Überwachungsmenge der Knoten
110
6.6 Häufigkeitsanalyse und Wahrscheinlichkeitsanalyse
112
Kapitel 7 Ablaufrekonstruktion objektorientierter Programme
120
7.1 Auffinden und Platzieren von Überwachungspunkten in einem Programm
120
7.2 Protokollierung eines Ablaufes
121
7.3 Rekonstruieren eines Ablaufes in einem objektorientierten Programm
122
7.3.1 Ablauf innerhalb einer Methode
122
7.3.2 Algorithmus zur Rekonstruktion eines Ablaufs im kompletten Programm
122
7.3.3 Beispiel einer Rekonstruktion eines Objektorientierten Programms
128
7.3.4 Erweiterungen des Algorithmus zum Rekonstruieren eines Ablaufes im kompletten Programm
134
Kapitel 8 Überwachungsagent für Java-basierte Anwendungen
146
8.1 Beschreibung
146
8.1.1 Phase 1: Bestimmen von Überwachungspunkten eines Programms
147
8.1.2 Phase 2: Aktivieren der Überwachungspunkte und Protokollieren der Ereignisse
147
8.1.3 Phase 3: Rekonstruieren der Abläufe
149
8.2 Beispiele
149
8.3 Verifikation der Algorthmen
151
Kapitel 9 Zusammenfassung und Ausblick
156
A Abgeleitete Graphen
158
B gprof -Beispiel
160
C strace-Beispiel
161
D Byte-Code der main-Methode
162
Literatur
164
Index
168
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.