Beruflich Dokumente
Kultur Dokumente
Andreas Zeller
Vorbereitung
• Material prüfen
• Zentrale Beiträge und Ideen sammeln
• Vortrag strukturieren
• Detaillierte Skizze machen
Selbst-Check
• Hug0Pratt
•
Wake up!
Your Audience
Au%au des Vortrags
• Motivation
• Lösung (einschließlich Fehlschläge)
• Ergebnisse
• Schluss
Motivation
Übersicht
*+,)
!"# 7)2(/+. *+,)
*+,)
$%&%'%() $%&%'%()
rincipal
0"#1/,#,%2)34'&'/2'#5/*&-4'2#)%#.'5'()2#*+#'+)*)*'2
nsumes
ency of -.&/&0 -.&/&0 -.&/&0
st. We
are the
tion.
past: If
e other
o in the 6"#74'.*()#5/*&-4'#,4%8/8*&*)9#5%4#+':#'+)*)*'2
bases—
-.&/&0 4%/5"2)
hat one 12),/3&+2
62+'%'/5/&0
ccurate
Figure 1. After mapping historical failures to entities, we can
use their complexity metrics to predict failures of new entities.
_________________________________________________________________________________
*
Andreas Zeller was a visiting researcher with the Testing,
Verification and Measurement Group, Microsoft Research in the
Fall of 2005 when this work was carried out.
Folieninhalt
Foliengestaltung
! tε
fh,ε (x, y) = εEx,y Lx,yε (εu) ϕ(x) du
0
!
= h Lx,z ϕ(x)ρx (dz)
" # ! tε ! $
1
+h Ey Lx,yx(s) ϕ(x) ds − tε Lx,z ϕ(x)ρx (dz)
tε 0
# ! tε ! tε $%
1
+ Ey Lx,yx(s) ϕ(x) ds − Ex,y Lx,yε(εs) ϕ(x) ds
tε 0 0
&
= hLx ϕ(x) + hθε (x, y)
(64)
Formal Background
Concrete state v ∈ V with v = (x1 , x2 , . . . , xn )
xi – Return value of an inspector
Mathematik
• Kurz: Vermeiden.
• Formeln sind für Papier, nicht für Folien
• Nur wenige Menschen können komplexe
Formeln in 30 Sekunden verstehen
7%
Körpersprache
Stimme 38% 55%
Inhalt
Model Sizes
150
130
100
Classes
53
50
22
15
5 8
2 2 4 1 1 1 2 1
0
1 2 3 4 5 6 7 8 9 10 11 12 13 +
States
http://www.youtube.com/
watch?v=Rp8dugDbf4w
Death by Powerpoint
Der Gelee-Faktor
Der Gelee-Faktor
• Hände waschen
• Hinsetzen
• Durch Folien durchgehen
• Erste Sätze auswendig lernen
(kein Hirn vonnöten)
Kontakt mit Zuhörern
Everything is precisely
choreographed in here.
Steve Jobs Note the slide design,
focusing on the very
essential.
Source: Apple
Look how Lessig’s words
are in sync with his talk.
Lawrence Lessig Source: http://
www.presentationzen.com/
presentationzen/2008/03/
larry-lessigs-l.html
Der Schluss
• Auf den Anfang beziehen
…und wenn sie nicht gestorben sind, …
• Zusammenfassen
…und das wichtigste ist: …
• Offene Punkte
…aber es warten noch mehr Zipferlaken im Dunkeln
• Folgen
Wenn Sie also einen Zipferlaken sehen …
<init>
•
!exists,!isDirty,
toString!=null,getParent=FAIL, clone!=null, containsKey(),
Documentation
getName!=null size=0 get()
add() create()
put()
•“Normal
exists,isDirty, getLocation(), put(),
toString!=null,getParent=FAIL, setDerived(), clone!=null,
containsKey(),
size>0
Specification
getName!=null writeWovenBytes()
get()
getLineNumber!=null,
<init> parseStatements()
getSourceLine>0
setInstruction()
getPointcut!=null,
resolveStatements(),
makeResolvedPointcutDefinition!=null,
generateCode()
getLineNumber=FAIL, makeAttribute!=null
updateTarget()
getSourceLine>0
Building Models
!
add() add()
add() <init> add() <init> add()
Finding Violations
Can I call
<init> setDerived()
here?
!exists,!isDirty,
toString!=null,getParent=FAIL,
getName!=null
create()
exists,isDirty, getLocation(),
toString!=null,getParent=FAIL, setDerived(),
getName!=null writeWovenBytes()
Detecting Anomalies Program Comprehension
DeferredWriteFile HashTableOfObject
<init>
• Documentation
!exists,!isDirty,
toString!=null,getParent=FAIL, clone!=null, containsKey(),
getName!=null size=0 get()
add() create()
put()
•“Normal
exists,isDirty, getLocation(), put(),
toString!=null,getParent=FAIL, setDerived(), clone!=null,
containsKey(),
size>0
Specification
getName!=null writeWovenBytes()
get()
getLineNumber!=null,
<init> parseStatements()
getSourceLine>0
setInstruction()
getPointcut!=null,
resolveStatements(),
makeResolvedPointcutDefinition!=null,
generateCode()
getLineNumber=FAIL, makeAttribute!=null
updateTarget()
getSourceLine>0
Building Models
!
add() add()
add() <init> add() <init> add()
isEmpty() ¬isEmpty()
isEmpty() ¬isEmpty isEmpty() ¬isEmpty
remove() v:Vector
remove() clear()
remove() clear() clear()
create()
exists,isDirty, getLocation(),
toString!=null,getParent=FAIL, setDerived(),
getName!=null writeWovenBytes()
Noch Fragen?
Zusammenfassung