ping karlsruhe Mining Software Call Graphs Frank Eichinger

ping karlsruhe Motivation Gliederung Einleitung Software Mining Call-Graphen Mining Software Call Graphs Graph Mining Transformationen Ausblick Fr...
Author: Jörn Schmid
4 downloads 0 Views 281KB Size
ping karlsruhe Motivation Gliederung Einleitung Software Mining Call-Graphen

Mining Software Call Graphs

Graph Mining

Transformationen Ausblick

Frank Eichinger Lehrstuhl Prof. Böhm Institut für Programmstrukturen und Datenorganisation (IPD) Universität Karlsruhe (TH)

2007-03-16

Frank Eichinger

Mining Software Call Graphs

2007-03-16

1 / 17

Motivation Motivation Gliederung Einleitung Software Mining Call-Graphen Graph Mining

Transformationen Ausblick

Software wird selten fehlerfrei ausgeliefert, auch wenn ausgiebig getestet wurde. Besonders anspruchsvoll zu finden sind Noncrashing-Bugs, da kein Stack-Trace vorliegt. Es stehen begrenzte Ressourcen zum Code-Review zur Verfügung, Software-Projekte sind allerdings meist zu groß für ein vollständiges Review. Idee: Lokalisierung von Noncrashing-Bugs durch Data Mining.

Frank Eichinger

Mining Software Call Graphs

2007-03-16

2 / 17

Gliederung Motivation Gliederung Einleitung Software Mining Call-Graphen

1

Einleitung Data Mining in der Softwaretechnik Call-Graphen Graph Mining

2

Transformationen von Call-Graphen

3

Ausblick

Graph Mining

Transformationen Ausblick

Frank Eichinger

Mining Software Call Graphs

2007-03-16

3 / 17

Data Mining in der Softwaretechnik (1) Motivation Gliederung Einleitung Software Mining Call-Graphen Graph Mining

Transformationen

Traditionelles Data Mining arbeitet mit Feature-Vektoren von numerischen und kategorischen Werten. In der Softwaretechnik können dies z.B. verschiedene Code-Metriken sein.

Ausblick M ETRIK 1

M ETRIK 2

M ETRIK 3

...

Software-Artefakt 1

123

5

12

...

Software-Artefakt 2

222

8

12

...

...

...

...

...

...

Es werden Muster oder Eigenschaften gesucht, die in fehlerhafter Software auftreten, nicht aber in korrekter. Dazu muss Software von Benutzern als korrekt oder fehlerhaft klassifiziert werden.

Frank Eichinger

Mining Software Call Graphs

2007-03-16

4 / 17

Data Mining in der Softwaretechnik (2) Motivation Gliederung Einleitung Software Mining Call-Graphen Graph Mining

Probleme mit Feature-Vektoren von Code-Metriken:

Transformationen

Auch viele Metriken beschreiben ein Programm nur unzureichend. Code-Metriken helfen nur wenig bei der Lokalisierung von Fehlern.

Ausblick

Idee: Stelle Programmausführungen als Call-Graph dar und analysiere die Graph-Struktur.

Frank Eichinger

Mining Software Call Graphs

2007-03-16

5 / 17

Call-Graphen Motivation Gliederung Einleitung Software Mining

Programmausführungen lassen sich wie folgt auf Graphen abbilden:

a

Call-Graphen Graph Mining

Transformationen Ausblick

c

b

b

c

Es entsteht ein Wurzelbaum mit der Main-Methode als Wurzelknoten.

d

Frank Eichinger

Methoden stellen Knoten dar, Methodenaufrufe Kanten.

Mining Software Call Graphs

2007-03-16

6 / 17

Frequent Subgraph Mining (1) Motivation Gliederung

Graph-Datenbank D:

Einleitung Software Mining

b

Call-Graphen

a

Graph Mining

Transformationen

c

a

b

a

a

a

c

b

a

Ausblick

a c

c

b

Teilgraphen (Auswahl): c

a b c b

Support: Frank Eichinger

1

b

c

a

2 Mining Software Call Graphs

a

3 2007-03-16

7 / 17

Frequent Subgraph Mining (2) Motivation Gliederung Einleitung

Gegeben: Graph-Datenbank D Support-Schwellwert minSup

Software Mining Call-Graphen Graph Mining

Transformationen

Gesucht: Alle Teilgraphen, die in mindestens minSup Graphen aus D vorkommen.

Ausblick

Algorithmen: AGM, FSG gSpan, CloseGraph MoFa, FFSN, Gaston ...

Grundlage aller Algorithmen: Subgraphisomorphie-Problem (NP-Vollständig)

Frank Eichinger

Mining Software Call Graphs

2007-03-16

8 / 17

Graph Mining mit Call-Graphen Motivation Gliederung Einleitung Software Mining

1

Voraussetzung:

Call-Graphen

Datenbank mit als korrekt oder fehlerhaft klassifizierten Programmläufen. Diese Klassifikation von Programmläufen wird manuell von Benutzern bzw. durch automatisierte Tests vorgenommen.

Graph Mining

Transformationen Ausblick

2

Finde häufige Teilgraphen.

3

Identifiziere Teilgraphen, die in der Menge fehlerhaft, nicht aber in der Menge korrekt vorkommen. → Die Methoden dieser Teilgraphen sind mit erhöhter Wahrscheinlichkeit für Fehler verantwortlich.

Frank Eichinger

Mining Software Call Graphs

2007-03-16

9 / 17

Herausforderung: Größe von Call-Graphen Motivation Gliederung

Call-Graphen können sehr groß werden...

Einleitung Software Mining

0

Call-Graphen Graph Mining

1

Transformationen

2

2

3

4

8

5

Ausblick

7

9

11

9

10

12

17

18

19

20

21

13

14

16

13

14

16

4

4

6

15

15

5

28

6

29

5

30

22

6

31

24

25

4

26

54

5

35

6

36

27

37

32

34

58

59

55

55

41

38

33

23

57

56

42

6

14

57

46

15

47

49

50

39

43

48

51

40

44

44

52

14

45

45

45

53

2

15

. 0

1

2

2

4

5

3

8

6

7

9

9

11

13

10

12

14

16

17

18

13

15

19

14

15

28

20

16

5

29

22

24

4

6

35

5

36

25

26

6

37

38

34

23

4

5

31

32

33

21

4

6

30

58

54

27

41

55

55

42

59

57

56

46

60

6

14

57

47

61

15

49

50

39

43

48

51

40

44

44

52

14

45

45

45

2

53

2

63

62

64

65

66

70

67

68

69

68

45

78

80

81

82

83

71

85

72

87

73

88

74

75

76

77

78

79

84

86

89

90

93

94

95

100

101

102

91

92

68

96

98

99

103

104

97

106

107

57

111

105

68

107

112

113

56

57

114

76

88

17

79

108

109

110

80

110

68

127

115

116

117

125

136

118

119

127

6

128

126

128

129

130

131

121

129

132

133

135

58

125

71

72

76

137

126

138

139

81

142

143

144

79

130

131

41

132

133

140

145

146

148

80

148

151

152

57

151

145

153

134

41

141

131

147

149

150

155

156

157

120

57

154

114

158

115

76

88

79

116

117

80

122

159

118

78

78

160

57

57

120

119

164

152

161

151

157

68

88

68

29

123

54

151

79

124

165

145

116

36

163

171

88

197

155

198

156

199

194

200

148

167

169

41

175

176

177

188

181

202

211

200

183

187

187

201

210

212

182

175

175

200

208

210

143

176

176

167

207

199

179

55

56

212

206

198

170

30

55

209

205

197

168

186

56

165

204

196

115

164

199

203

194

152

174

167

198

202

166

147

173

165

195

201

146

29

172

76

189

196

29

37

153

117

114

168

194

121

153

80

76

156

157

162

72

145

68

15

178

180

181

116

88

163

185

215

191

181

154

184

30

190

190

154

189

88

155

76

203

176

175

205

202

203

204

205

206

168

201

192

187

55

148

216

231

232

233

217

55

9

218

29

226

227

80

219

79

228

208

196

197

187

57

88

207

230

8

207

193

181

189

289

182

56

220

228

116

154

57

155

208

156

157

165

54

37

166

323

36

234

235

117

236

4

187

176

175

181

154

229

222

224

189

88

117

17

2

223

225

190

114

213

204

214

76

88

210

297

38

148

39

190

298

299

41

57

243

245

80

224

225

244

246

17

222

223

300

72

239

242

241

220

221

168

238

240

156

206

167

115

237

155

29

301

288

249

247

177

303

57

250

45

304

5

251

302

305

6

2

78

2

157

181

308

116

254

285

256

279

280

257

259

278

259

261

277

277

311

310

117

286

273

283

116

179

57

287

291

282

281

258

260

274

312

189

88

186

313

314

315

316

293

80

223

225

294

68

296

222

224

57

290

14

292

68

15

284

15

294

295

30

114

76

88

55

230

76

165

216

190

317

231

233

167

56

55

56

8

168

57

320

44

117

325

9

318

220

57

321

319

222

224

187

181

223

225

189

88

326

45

154

45

361

324

338

41

339

327

57

328

329

330

333

334

45

335

336

337

322

57

44

331

332

44

44

45

194

196

198

45

45

190

45

211

197

199

210

212

200

340

201

202

203

204

205

206

343

345

207

208

341

352

57

342

155

57

358

359

354

77

356

45

44

57

360

350

353

355

357

45

57

45

44

45

342

156

157

343

68

344

347

344

344

346

345

348

346

350

349

351

349

278

262

263

258

266

267

273

275

262

264

265

268

247

274

276

269

Mining Software Call Graphs

178

307

79

253

68

255

2

270

Frank Eichinger

309

306

40

252

248

78

68

272

271

2007-03-16

10 / 17

63

Vollständige Reduktion Motivation Gliederung Einleitung

Call-Graphen können vollständig reduziert werden, indem man alle gleichartigen Knoten fusioniert.

Software Mining Call-Graphen

a

Graph Mining

Transformationen c

b

b

a

Ausblick

→ c

a

b

c

Beispiel-Graph: Reduktion von 743 auf 362 Knoten. Problem: Möglicher Verlust von wichtiger Information. Ansatz: Zusammenfassung von Iteration und Rekursion, Einführung von Kantengewichten. Frank Eichinger

Mining Software Call Graphs

2007-03-16

11 / 17

Zusammenfassung von Iteration Motivation Gliederung Einleitung Software Mining Call-Graphen

Teilgraphen mit gleicher Struktur werden zusammengefasst.

Graph Mining

Transformationen

Kantengewichte beschreiben die Auftrittshäufigkeit.

Ausblick

a

a 1

b



b

1

c

d

d

c

c

c

a 1

2

b

b

1

1

d

d



b

2

3 c

2

c

d

Vorgehen: Ebenenweise von Unten nach Oben.

Frank Eichinger

Mining Software Call Graphs

2007-03-16

12 / 17

Zusammenfassung von Rekursion (1) Motivation Gliederung Einleitung Software Mining Call-Graphen

Einfache Rekursionen lassen sich durch Schlingen (“self-loops”) darstellen. Kantengewichte geben hier die Rekursionstiefe an.

Graph Mining

Transformationen

a

Ausblick

b

b

b

b

a

→ 1 b

b

1 2

b

1

Anschließend kann eine Zusammenfassung der Iterationen stattfinden. Frank Eichinger

Mining Software Call Graphs

2007-03-16

13 / 17

Zusammenfassung von Rekursion (2) Motivation Gliederung Einleitung Software Mining Call-Graphen

Rekursionen über mehrere Knoten lassen sich durch Zyklen darstellen.

Graph Mining

Transformationen

a

a

Ausblick b

c

1



b

c

Frank Eichinger

Mining Software Call Graphs

b 21 c

2007-03-16

14 / 17

Zusammenfassung von Rekursion (3) Motivation Gliederung Einleitung Software Mining Call-Graphen

Offene Frage: Wann sollen Rekursionen nicht zusammengefasst werden?

Graph Mining

Transformationen

a

Ausblick

a

b

a c

a

a

Frank Eichinger

? → d

Mining Software Call Graphs

1 b

1 c

3 1 d

2007-03-16

15 / 17

Aktuelle und zukünftige Forschung Motivation Gliederung Einleitung Software Mining

Erweiterung von Graph Mining für weitere Graph-Klassen

Call-Graphen

Gerichtete Graphen Multigraphen Graphen mit Schlingen Gewichtete Graphen

Graph Mining

Transformationen Ausblick

Eventuell durch intelligente Vor- oder Nachverarbeitung, z.B. in Kombination mit anderen Data Mining Techniken.

Mining von großen Graphen Durch approximative Algorithmen

Evaluation der verschiedenen Call-Graph-Transformationen Anwendungen (nicht nur) in der Softwaretechnik Frank Eichinger

Mining Software Call Graphs

2007-03-16

16 / 17

i40fs1:˜eichi> ping karlsruhe ping: unknown host karlsruhe i40fs1:˜eichi> _ Motivation Gliederung Einleitung Software Mining Call-Graphen Graph Mining

Transformationen Ausblick

Vielen Dank für Ihre Aufmerksamkeit!

Frank Eichinger

Mining Software Call Graphs

2007-03-16

17 / 17