Ablaufüberwachung objektorientierter Programme - Graphentheoretische Algorithmen für die Ablaufanalyse

Ablaufüberwachung objektorientierter Programme - Graphentheoretische Algorithmen für die Ablaufanalyse

von: Sergej Alekseev

VDM Verlag Dr. Mueller e.K., 2007

ISBN: 9783836416191 , 172 Seiten

Format: PDF, OL

Kopierschutz: DRM

Windows PC,Mac OSX Apple iPad, Android Tablet PC's Online-Lesen für: Windows PC,Mac OSX,Linux

Preis: 49,00 EUR

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