Upcoming SlideShare
×

# Dynamic Analysis (EVO 2008)

638 views
566 views

Published on

I used this set of slides for a lecture I gave at the University of Bern.

0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

Views
Total views
638
On SlideShare
0
From Embeds
0
Number of Embeds
41
Actions
Shares
0
25
0
Likes
0
Embeds 0
No embeds

No notes for slide

### Dynamic Analysis (EVO 2008)

1. 1. Dynamic Analysis Tudor Gîrba www.tudorgirba.com
2. 2. Dynamic analysis is the analysis of the properties of a running program 9 Ball 199
3. 3. Dynamic analysis is the analysis of the properties of a running program prope rties? W hat 9 Ball 199
4. 4. main()
5. 5. method()
6. 6. method2(param)
7. 7. e infor mation offers precis ic an alysis Dynam
8. 8. ment instru and why H ow to t to c apture Wha odel Ho w to m cute What to exe
9. 9. How to instrument
10. 10. … public class BankAccount { private Money balance; public void deposit(Money amount) { System.out.println(“deposit“); this.balance += money; } }
11. 11. import org.apache.log4j.Logger; … public class BankAccount { private Money balance; public void deposit(Money amount) { logger.info(“deposit“); this.balance += money; } }
12. 12. Method Wrappers and Aspects intervene before and after each interesting method
13. 13. Proﬁlers probe the system
14. 14. 3+4 pushConstant: 3 pushConstant: 4 popIntoTemp: 0 “put argument in temp 0” popIntoTemp: 1 “put receiver in temp 1” send: + “perform addition” returnTop
15. 15. 3+4 … insertBefore: 'Transcript show: <meta: #receiver>' pushConstant: 3 pushConstant: 4 popIntoTemp: 0 quot;put argument in temp 0quot; popIntoTemp: 1 quot;put receiver in temp 1quot; pushLit: ##Transcript quot;start of inserted codequot; pushTemp: 1 quot;push receiver for printingquot; send: asString send: show: pop quot;end of inserted codequot; pushTemp: 1 quot;rebuild the stackquot; pushTemp: 0 send: + returnTop 8 Den ker 200
16. 16. 3+4 Message (+) Receiver (3) Arguments (4) 00 7 Denke r etal 2
17. 17. 3+4 … insertBefore: 'Transcript show: <meta: #receiver>' before Transcript show: <meta: #receiver> Message (+) Receiver (3) Arguments (4) 00 7 Denke r etal 2
18. 18. How to instrument
19. 19. How to instrument What to capture and why
20. 20. Collecting Garbage is a Dynamic Analysis
21. 21. The Control Flow is the most common focus
22. 22. 8 Pauw etal 199 De
23. 23. 8 Pauw etal 199 De
24. 24. 8 Pauw etal 199 De
25. 25. Trace Signals reveal similar execution traces eevy 2006 Kuhn, Gr
26. 26. Inter Class Call Matrix shows how classes collaborate at runtime 3 Pauw etal 199 De
27. 27. Communication Interaction shows how classes collaborate at runtime 4 casse etal 200 Du
28. 28. How to instrument What to capture and why
29. 29. How to instrument What to capture and why How to model
30. 30. sender 0..1 * Activation
31. 31. Class sender 1 0..1 * * Activation * 1 Method
32. 32. A feature is an observable unit of behavior of a system triggered by the user arth e tal 2003 Eisenb
33. 33. Feature 1 Feature 2 ... Feature n
34. 34. Class sender 1 0..1 * * Activation * 1 Method
35. 35. Class sender 1 0..1 * * Activation * 1 Method * Feature
36. 36. 5 ilde, Sc ully 199 W
37. 37. 5 ilde, Sc ully 199 W
38. 38. 5 ilde, Sc ully 199 W
39. 39. Software Reconnaissance identiﬁes where features are implemented 5 ilde, Sc ully 199 W
40. 40. er 2004 n , Demey Zaidma
41. 41. Feature Views show how features cover classes e tal 2006 addFolder addPage Greevy
43. 43. Team Collaboration shows how authors develop features e tal 2007 Greevy
44. 44. How to instrument What to capture and why How to model
45. 45. How to instrument What to capture and why How to model activations metho d more than e runt ime is Th
46. 46. return
49. 49. return ﬁeld-write ﬁeld-read return