augmenting static source views in ides with dynamic metrics

20
Augmenting Static Source Views in IDEs with Dynamic Metrics

Post on 19-Dec-2015

225 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Augmenting Static Source Views in IDEs with Dynamic Metrics

Augmenting

Static Source Views

in IDEs with Dynamic Metrics

Page 2: Augmenting Static Source Views in IDEs with Dynamic Metrics

Augmenting

Static Source Views

in IDEs with Dynamic Metrics

Page 3: Augmenting Static Source Views in IDEs with Dynamic Metrics

IJavaElement element = elements[0];if (element.getElementType() == IJavaElement.FIELD) {

IJavaProject javaProject = element.getJavaProject();} else if (element.getElementType() == IJavaElement.LOCAL_VARIABLE) {

IJavaProject javaProject = element.getParent().getJavaProject();}

Page 4: Augmenting Static Source Views in IDEs with Dynamic Metrics
Page 5: Augmenting Static Source Views in IDEs with Dynamic Metrics

Static Source Views

no runtime information

execution path?

polymorphism?

runtime metrics?

Page 6: Augmenting Static Source Views in IDEs with Dynamic Metrics

?

Page 7: Augmenting Static Source Views in IDEs with Dynamic Metrics

Augmenting

Static Source Views

in IDEs with Dynamic Metrics

Page 8: Augmenting Static Source Views in IDEs with Dynamic Metrics

Dynamic Metrics

message sending

invocations

created objects

allocated memory

Page 9: Augmenting Static Source Views in IDEs with Dynamic Metrics

collecting Dynamic Metrics

Page 10: Augmenting Static Source Views in IDEs with Dynamic Metrics

aspect CCTAspect { before() : execution(* *(..)) { CCTNode[] ss = thisStack; int sp = thisSP; ss[sp] = ss[sp-1]. profileCall( thisJoinPointStaticPart); ss[sp]. storeRcvArgsRuntimeTypes( thisJoinPoint); } after() returning(Object o) : execution(* *(..)) { CCTNode[] ss = thisStack; int sp = thisSP; ss[sp].storeRetRuntimeType(o); ss[sp] = null; }

Simplified excerptof the CCTAspect

after() returning( Object o): call(*.new(..)) { CCTNode[] ss = thisStack; int sp = thisSP; ss[sp].storeObjAlloc(o); } ...}

Page 11: Augmenting Static Source Views in IDEs with Dynamic Metrics
Page 12: Augmenting Static Source Views in IDEs with Dynamic Metrics

MAJOR

Page 13: Augmenting Static Source Views in IDEs with Dynamic Metrics

Senseo

Page 14: Augmenting Static Source Views in IDEs with Dynamic Metrics
Page 15: Augmenting Static Source Views in IDEs with Dynamic Metrics

Augmenting

Static Source Views

in IDEs with Dynamic Metrics

Page 16: Augmenting Static Source Views in IDEs with Dynamic Metrics

IDE

eclipse plugin

hoverhover

ruler columns

tree view

Page 17: Augmenting Static Source Views in IDEs with Dynamic Metrics

DEMO

Page 18: Augmenting Static Source Views in IDEs with Dynamic Metrics

Senseo enriches JDT withdynamic runtime information

Page 19: Augmenting Static Source Views in IDEs with Dynamic Metrics

future workvisual enrichments

usability

July / August case study /paper

September

writing thesisNovember / December

Page 20: Augmenting Static Source Views in IDEs with Dynamic Metrics

questions?