Senseo Wir erweitern die statischen Informationen mit Hilfe von Laufzeitinformationen. Einbindung in IDE resp. JDT.

Slides:



Advertisements
Ähnliche Präsentationen
Die deutsche Satzstellung
Advertisements

Art der Arbeit (Projekt-/Studien-/Diplomarbeit/
Verbs Used Impersonally With Dative Deutsch I/II Fr. Spampinato.
Can you think of some KEY phrases which would be useful in multiple contexts? Take 2 minutes with a partner and come up with as many as you can!
Don`t make me think! A Common Sense Approach to Web Usability
The word,,aber in German is most often used as a coordinating conjunction. Ich wollte nach Bremen fahren aber Mein Auto ist kaputt. Ich mag English aber.
The most obvious or direct use of auch is to mean also. Ich möchte auch Gitarre lernen. Auch ich möchte Gitarre lernen. I would like to learn Guitar. Someone.
Niklas: Was möchte ___________ (your) Schwester denn zum Geburtstag?
Coordinating Conjunctions Why we need them & how to use them deutschdrang.com.
Institut für Angewandte Mikroelektronik und Datentechnik Phase 5 Architectural impact on ASIC and FPGA Nils Büscher Selected Topics in VLSI Design (Module.
Die Fragen Wörter Wer? Was? Wann?.
Literary Machines, zusammengestellt für ::COLLABOR:: von H. Mittendorfer Literary MACHINES 1980 bis 1987, by Theodor Holm NELSON ISBN
What is a “CASE”? in English: pronouns, certain interrogatives
What is a “CASE”? in English: pronouns, certain interrogatives
Need: paper, coloured pens, glue, dwarf templates, dictionaries, adjective handout, judges hand out, blue tack For gallery – give students blue tack and.
Predicate nominative/noun This house is his official residence. We remain friends. He became an old man overnight.
GERMAN 1013 Kapitel 5 Review. terminology Word types: –nouns, pronouns, verbs, adjectives, prepositions … Functions: –subject, predicate, object … Form.
type / function / form type of words:
QUIZZ to keep to receive to need to buy to give (present) to sell
E STUNDE Deutsch AP. Dienstag, der 23. April 2013 Deutsch AP (E Stunde)Heute ist ein B Tag Goal: to understand authentic written text, audio material.
DATIVE has the following forms:
Predicate nominative This house is his official residence. We remain friends. He became an old man overnight.
E STUNDE Deutsch AP. Dienstag, der 28. Mai 2013 Deutsch AP (E Stunde)Heute ist ein E Tag Goal: to understand authentic written text, audio material and.
© Crown copyright 2011, Department for Education These materials have been designed to be reproduced for internal circulation, research and teaching or.
Kapitel 4 Grammar INDEX 1.Ordinal Numbers 2.Relative Pronouns and Relative Clauses 3.Conditional Sentences 4.Posessive: Genitive Case.
You need to use your mouse to see this presentation © Heidi Behrens.
EUROPÄISCHE GEMEINSCHAFT Europäischer Sozialfonds EUROPÄISCHE GEMEINSCHAFT Europäischer Fonds für Regionale Entwicklung Workpackage 5 – guidelines Tasks.
Kapitel 2 Grammar INDEX 1.Subjects & Verbs 2.Conjugation of Verbs 3.Subject Verb Agreement 4.Person and Number 5.Present Tense 6.Word Order: Position of.
Kapitel 8 Grammar INDEX 1.Command Forms: The Du-Command Form & Ihr- Command 2.Sentences & Clauses.
E STUNDE Deutsch AP. Donnerstag, der 30. Mai 2013 Deutsch AP (E Stunde)Heute ist ein G Tag Goal: to understand authentic written text, audio material.
Reflexiv-Verben Deutsch 2/AC.
Der die das ein eine ein Wie sagt man “the” auf Deutsch? Wie sagt man “a” auf Deutsch?
Kapitel 9 Grammar INDEX 1.Formal Sie- Command 2.There Is/There Are 3.Negation: Nicht/Klein.
Das Wetter Lernziele: Heute: The „Wenn“ clause! - To describe and report the weather - To discuss activities done in different types of weather - To compare.
1. Halbjahr 2016 Englisch am Abend (A2-2) A, Do, – Uhr Quiz – “The Hot Chair” Unit 7, 21 April 2016.
Die toten hosen German punk rock band since thirty years With many well known hits.
Word order: 1.In a main clause the VERB is the second idea: Helgakommteben aus der Bäckerei This may not be the second word Meiner Meinung nachsind Hobbys.
On the case of German has 4 cases NOMINATIVE ACCUSATIVE GENITIVE DATIVE.
How to play: Students are broken up into 2-3 teams (depending on class size). Students can see the game board and the categories, but not point values.
Essay structure Example: Die fetten Jahre sind vorbei: Was passiert auf der Almhütte? Welche Bedeutung hat sie für jede der vier Personen? Intro: One or.
What’s the weather like?. Look at the question above Turn it around and you have Das Wetter ist.... The phrase Das Wetter ist.... or Es ist.... can be.
Kanton Basel-Stadt Howto crash a sequencer …and a path to get a difficult package to work APP-V Swissgroup / Daniel Müller.
DAS VIERTE DEUTSCHE KASUS Genitiv. Kasus ● What is a case? A case shows the grammatical function of a word. ● There are four cases in German. Up to now.
Interrogatives and Verbs
Sentence Structure Questions
FREE ICONS POWERPOINT TEMPLATE.
Volume 1, Chapter 8.
Freizeit Thema 5 Kapitel 1 (1)
Du bist am dicksten und am dümmsten.
Azure Countdown Wenn der Freund und Helfer Freunde und Helfer braucht: Sichere Content-Upload-Plattform für Bürger.
Sentence Structure Connectives
predicate nominative This house is his official residence.
Safe but attractive. Bike accessories
I use this as a starter, often at the start of a revision lesson at the end of a topic . Students work in pairs. Give each pair a copy of the blank grid.
Cape Cod-Seminar Dr. Bernd Schmid July 2013
Get your Project started
Wohin bist du gegangen? Where did you go?
To English Translations
Wie viel Uhr ist es? Telling Time.
You need to use your mouse to see this presentation
type / function / form type of words:
Official Statistics Web Cartography in Germany − Regional Statistics, Federal and European Elections, Future Activities − Joint Working Party meeting.
THE PAST TENSE (Part 3) VERBS WHICH TAKE SEIN
Calorimetry as an efficiency factor for biogas plants?
School supplies.
- moodle – a internet based learning platform
Ich will ihn kennenlernen. He likes to read (do not use MODAL)
 Präsentation transkript:

Senseo Wir erweitern die statischen Informationen mit Hilfe von Laufzeitinformationen. Einbindung in IDE resp. JDT

in IDEs with Dynamic Information Augmenting Static Source Views in IDEs with Dynamic Information Wir erweitern die statischen Informationen mit Hilfe von Laufzeitinformationen. Einbindung in IDE resp. JDT

Static Source Views in IDEs Drawbacks of static source code analysis No runtime information leads to: No execution path Polymorphism (abstract classes, interfaces) No Runtime metrics

Static Source Views in IDEs execution path? Static Source Views in IDEs Drawbacks of static source code analysis No runtime information leads to: No execution path Polymorphism (abstract classes, interfaces) No Runtime metrics

Static Source Views in IDEs execution path? polymorphism? Static Source Views in IDEs Drawbacks of static source code analysis No runtime information leads to: No execution path Polymorphism (abstract classes, interfaces) No Runtime metrics

Static Source Views in IDEs execution path? polymorphism? Static Source Views in IDEs runtime metrics? Drawbacks of static source code analysis No runtime information leads to: No execution path Polymorphism (abstract classes, interfaces) No Runtime metrics

Static Source Views in IDEs execution path? polymorphism? Static Source Views in IDEs runtime metrics? Drawbacks of static source code analysis No runtime information leads to: No execution path Polymorphism (abstract classes, interfaces) No Runtime metrics no runtime information

? Abgrenzung zu debugger (und profiler). Beispiel im JDT (JavaModelManger) To answer these questions purely based on static information, we can use the references and declarations search tool of Eclipse. For the first question, we search for all declarations of method {\tt getJavaProject}. However, the JDT declares more than 20 methods with this name, most of which are not related to the representation of source code elements. We have to skim through this list to find out which declarations are defined in subtypes of \ije. After having found those declarations, we still cannot be sure which are actually invoked in this code. % Even when manually narrowing down the list of declarations of \emph{getJavaProject} to those actually defined in subtypes of \ije, we can neither be sure whether those really get invoked in this piece of source code nor how often and with which concrete receiver types. To address the second question, we first search for all classes implementing \ije in the list of references to this interface. This yields a list with more than 2000 elements; all are false positives as \ije is not supposed to be implemented by clients. We thus search for all sub-interfaces of \ije to see whether those have implementing classes. After locating two direct sub-interfaces ({\tt IMember} and {\tt ILocalVariable}), each of which has more than 1000 references in JDT, we give up searching for references to indirect sub-interfaces such as {\tt IField} or {\tt IType}. It is not possible to statically find all concrete implementing classes of \ije, in particular not those actually used in this code.

DEMO Show Starting of an app Collecting some data Display various enrichements public synchronized Object getInfo(IJavaElement element) { public static IJavaElement create(IResource resource, IJavaProject project) {

collecting runtime metrics Um Polymorphysmus wie im früheren Beispiel besser zu verstehen, brauchen wir Laufzeitinformationen darüber, welche wirklichen Objekte an eine Variable gebunden sind. Weiter kann es verschiedenen dynamische Informationen geben, die für uns von Interesse sind: - Anzahl allozierter Bytecode von Objekten - Anzahl allozierte Objekte - Memoryusage von Objekten Zum Sammeln von derartigen Informationen verwenden wir Aspects auf VM Level. D.h. Wir lassen unseren unveränderten Code in einer mit Aspects instrumentierten VM laufen lassen. collecting runtime metrics

Die Aspects generieren uns einen Calling Context Tree. Diese Datenstrutkur erlaubt uns den execution path zu Verfolgen und ist mit den runtime metrics annotiert.

Die Informationen aus dieser instrumentierten VM erhalten wir über ein Socket in Eclipse. Wir verarbeiten dann diese Information und reichern die Eclipse Umgebung mit den dynamischen Informationen an.

Validation Show Starting of an app Collecting some data Display various enrichements Show eclipse data

30 professional software developers

30 professional software developers Subject expertise

30 professional software developers Subject expertise Senseo vs. Eclipse

30 professional software developers Subject expertise Senseo vs. Eclipse 5 typical software maintenance tasks

30 professional software developers Subject expertise Senseo vs. Eclipse 5 typical software maintenance tasks Measure time & correctness

30 professional software developers Subject expertise Senseo vs. Eclipse 5 typical software maintenance tasks Measure time & correctness Feedback

Results

Results 17.5 % less time spent

Results 17.5 % less time spent answers 33.5 % more correct

Lessons learned

Lessons learned unique environment

time sink task is important Lessons learned unique environment time sink task is important

time sink task is important Lessons learned unique environment time sink task is important do a test run!

Feedback

integrate dynamic information! Feedback integrate dynamic information!

Feedback some visualizations are cumbersome

Feedback some visualizations are cumbersome

don't overwrite existing enrichments Feedback don't overwrite existing enrichments

don't overwrite existing enrichments Feedback don't overwrite existing enrichments

more lessons learned Show Starting of an app Collecting some data Display various enrichements Show eclipse data

more lessons learned performance / efficiency is crucial Show Starting of an app Collecting some data Display various enrichements Show eclipse data

more lessons learned performance / efficiency is crucial means to navigate are important Show Starting of an app Collecting some data Display various enrichements Show eclipse data

more lessons learned performance / efficiency is crucial means to navigate are important visualizations need to scale Show Starting of an app Collecting some data Display various enrichements Show eclipse data

more lessons learned performance / efficiency is crucial means to navigate are important visualizations need to scale Show Starting of an app Collecting some data Display various enrichements Show eclipse data extend existing views!

more lessons learned performance / efficiency is crucial means to navigate are important visualizations need to scale Show Starting of an app Collecting some data Display various enrichements Show eclipse data extend existing views! Eclipse ...

Senseo supports developers in conducting typical software maintenace tasks Summary / conclusion Limitations Advantages 1 statment was es macht, übersichts screenshot

THANK YOU! Show Starting of an app Collecting some data Display various enrichements Show eclipse data

Questions?