augmenting static source views in ides with dynamic metrics
Post on 19-Dec-2015
225 views
TRANSCRIPT
Augmenting
Static Source Views
in IDEs with Dynamic Metrics
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();}
Static Source Views
no runtime information
execution path?
polymorphism?
runtime metrics?
?
Augmenting
Static Source Views
in IDEs with Dynamic Metrics
Dynamic Metrics
message sending
invocations
created objects
allocated memory
collecting 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); } ...}
MAJOR
Senseo
Augmenting
Static Source Views
in IDEs with Dynamic Metrics
IDE
eclipse plugin
hoverhover
ruler columns
tree view
DEMO
Senseo enriches JDT withdynamic runtime information
future workvisual enrichments
usability
July / August case study /paper
September
writing thesisNovember / December
questions?