]> git.uio.no Git - ifi-stolz-refaktor.git/commitdiff
added master presentation
authorAnna <anna@158-37-206-32.hib.no>
Wed, 28 Sep 2016 12:42:02 +0000 (14:42 +0200)
committerAnna <anna@158-37-206-32.hib.no>
Wed, 28 Sep 2016 12:42:02 +0000 (14:42 +0200)
37 files changed:
eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.aux [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.nav [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.out [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.snm [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.synctex.gz [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.toc [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.vrb [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/ErbSurvey2010Fig21.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/Java_logo.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/compileerror.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/computing.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/dogproblem.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/eclipse.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/eclipseok.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/errormessage.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/fowler.jpg [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/intellij.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/junit.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/kimfig.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/movemethod.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/netbeans.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/programmer.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/programmers.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/refactoringtooluse.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/refactoringtooluse_old.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/refactormenu.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/steinmann.jpeg [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/testerror.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/testfailure.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/testsuccess.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/topatterns.jpg [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/twitter.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/volker_example.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/warningmessage.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/images/warningsymbol.png [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/masterpresentation.pdf [new file with mode: 0644]
eilertsen/tex/masterpresentation_finished/masterpresentation.tex [new file with mode: 0644]

diff --git a/eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.aux b/eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.aux
new file mode 100644 (file)
index 0000000..4b3695a
--- /dev/null
@@ -0,0 +1,75 @@
+\relax 
+\providecommand\hyper@newdestlabel[2]{}
+\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
+\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
+\global\let\oldcontentsline\contentsline
+\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global\let\oldnewlabel\newlabel
+\gdef\newlabel#1#2{\newlabelxx{#1}#2}
+\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\ifx\hyper@anchor\@undefined
+\let\contentsline\oldcontentsline
+\let\newlabel\oldnewlabel
+\fi}
+\fi}
+\global\let\hyper@last\relax 
+\gdef\HyperFirstAtBeginDocument#1{#1}
+\providecommand\HyField@AuxAddToFields[1]{}
+\providecommand\HyField@AuxAddToCoFields[2]{}
+\@writefile{toc}{\beamer@endinputifotherversion {3.36pt}}
+\@writefile{nav}{\beamer@endinputifotherversion {3.36pt}}
+\pgfsyspdfmark {pgfid1}{717621}{2898359}
+\@writefile{nav}{\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {1}{1}}}
+\@writefile{toc}{\beamer@sectionintoc {1}{Introduction}{2}{0}{1}}
+\@writefile{nav}{\headcommand {\sectionentry {1}{Introduction}{2}{Introduction}{0}}}
+\@writefile{nav}{\headcommand {\beamer@sectionpages {1}{1}}}
+\@writefile{nav}{\headcommand {\beamer@subsectionpages {1}{1}}}
+\@writefile{toc}{\beamer@subsectionintoc {1}{1}{Motivation}{2}{0}{1}}
+\@writefile{nav}{\headcommand {\beamer@subsectionentry {0}{1}{1}{2}{Motivation}}\headcommand {\beamer@subsectionpages {2}{1}}}
+\pgfsyspdfmark {pgfid8}{717621}{13740287}
+\@writefile{nav}{\headcommand {\slideentry {1}{1}{1}{2/2}{Motivation}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {2}{2}}}
+\pgfsyspdfmark {pgfid15}{717621}{9994929}
+\pgfsyspdfmark {pgfid16}{956827}{9994929}
+\pgfsyspdfmark {pgfid17}{1196033}{9994929}
+\pgfsyspdfmark {pgfid18}{1435239}{9994929}
+\pgfsyspdfmark {pgfid19}{717621}{9103639}
+\@writefile{nav}{\headcommand {\slideentry {1}{1}{2}{3/3}{Motivation}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {3}{3}}}
+\pgfsyspdfmark {pgfid26}{717621}{14110916}
+\pgfsyspdfmark {pgfid27}{15537922}{2929659}
+\@writefile{nav}{\headcommand {\slideentry {1}{1}{3}{4/4}{Motivation}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {4}{4}}}
+\@writefile{nav}{\headcommand {\slideentry {1}{1}{4}{5/5}{Motivation}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {5}{5}}}
+\pgfsyspdfmark {pgfid40}{717621}{7431381}
+\pgfsyspdfmark {pgfid41}{956827}{7431381}
+\@writefile{nav}{\headcommand {\slideentry {1}{1}{5}{6/6}{Motivation}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {6}{6}}}
+\@writefile{nav}{\headcommand {\slideentry {1}{1}{6}{7/7}{Motivation}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {7}{7}}}
+\@writefile{nav}{\headcommand {\slideentry {1}{1}{7}{8/8}{Motivation}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {8}{8}}}
+\@writefile{nav}{\headcommand {\slideentry {1}{1}{8}{9/9}{Motivation}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {9}{9}}}
+\@writefile{nav}{\headcommand {\slideentry {1}{1}{9}{10/10}{Motivation}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {10}{10}}}
+\pgfsyspdfmark {pgfid73}{12256183}{14032857}
+\pgfsyspdfmark {pgfid74}{12495389}{14032857}
+\pgfsyspdfmark {pgfid75}{12734595}{14032857}
+\pgfsyspdfmark {pgfid76}{12973801}{14032857}
+\@writefile{nav}{\headcommand {\slideentry {1}{1}{10}{11/11}{Motivation}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {11}{11}}}
+\@writefile{nav}{\headcommand {\slideentry {1}{1}{11}{12/12}{Motivation}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {12}{12}}}
+\pgfsyspdfmark {pgfid89}{717621}{10889960}
+\@writefile{nav}{\headcommand {\slideentry {1}{1}{12}{13/13}{Motivation}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {13}{13}}}
+\@writefile{nav}{\headcommand {\slideentry {1}{1}{13}{14/14}{Motivation}{0}}}
+\@writefile{nav}{\headcommand {\beamer@framepages {14}{14}}}
+\@writefile{nav}{\headcommand {\beamer@partpages {1}{14}}}
+\@writefile{nav}{\headcommand {\beamer@subsectionpages {2}{14}}}
+\@writefile{nav}{\headcommand {\beamer@sectionpages {2}{14}}}
+\@writefile{nav}{\headcommand {\beamer@documentpages {14}}}
+\@writefile{nav}{\headcommand {\def \inserttotalframenumber {14}}}
diff --git a/eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.nav b/eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.nav
new file mode 100644 (file)
index 0000000..d1668ea
--- /dev/null
@@ -0,0 +1,38 @@
+\beamer@endinputifotherversion {3.36pt}
+\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}}
+\headcommand {\beamer@framepages {1}{1}}
+\headcommand {\sectionentry {1}{Introduction}{2}{Introduction}{0}}
+\headcommand {\beamer@sectionpages {1}{1}}
+\headcommand {\beamer@subsectionpages {1}{1}}
+\headcommand {\beamer@subsectionentry {0}{1}{1}{2}{Motivation}}\headcommand {\beamer@subsectionpages {2}{1}}
+\headcommand {\slideentry {1}{1}{1}{2/2}{Motivation}{0}}
+\headcommand {\beamer@framepages {2}{2}}
+\headcommand {\slideentry {1}{1}{2}{3/3}{Motivation}{0}}
+\headcommand {\beamer@framepages {3}{3}}
+\headcommand {\slideentry {1}{1}{3}{4/4}{Motivation}{0}}
+\headcommand {\beamer@framepages {4}{4}}
+\headcommand {\slideentry {1}{1}{4}{5/5}{Motivation}{0}}
+\headcommand {\beamer@framepages {5}{5}}
+\headcommand {\slideentry {1}{1}{5}{6/6}{Motivation}{0}}
+\headcommand {\beamer@framepages {6}{6}}
+\headcommand {\slideentry {1}{1}{6}{7/7}{Motivation}{0}}
+\headcommand {\beamer@framepages {7}{7}}
+\headcommand {\slideentry {1}{1}{7}{8/8}{Motivation}{0}}
+\headcommand {\beamer@framepages {8}{8}}
+\headcommand {\slideentry {1}{1}{8}{9/9}{Motivation}{0}}
+\headcommand {\beamer@framepages {9}{9}}
+\headcommand {\slideentry {1}{1}{9}{10/10}{Motivation}{0}}
+\headcommand {\beamer@framepages {10}{10}}
+\headcommand {\slideentry {1}{1}{10}{11/11}{Motivation}{0}}
+\headcommand {\beamer@framepages {11}{11}}
+\headcommand {\slideentry {1}{1}{11}{12/12}{Motivation}{0}}
+\headcommand {\beamer@framepages {12}{12}}
+\headcommand {\slideentry {1}{1}{12}{13/13}{Motivation}{0}}
+\headcommand {\beamer@framepages {13}{13}}
+\headcommand {\slideentry {1}{1}{13}{14/14}{Motivation}{0}}
+\headcommand {\beamer@framepages {14}{14}}
+\headcommand {\beamer@partpages {1}{14}}
+\headcommand {\beamer@subsectionpages {2}{14}}
+\headcommand {\beamer@sectionpages {2}{14}}
+\headcommand {\beamer@documentpages {14}}
+\headcommand {\def \inserttotalframenumber {14}}
diff --git a/eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.out b/eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.out
new file mode 100644 (file)
index 0000000..b248c3e
--- /dev/null
@@ -0,0 +1,2 @@
+\BOOKMARK [2][]{Outline0.1}{Introduction}{}% 1
+\BOOKMARK [3][]{Outline0.1.1.2}{Motivation}{Outline0.1}% 2
diff --git a/eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.snm b/eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.snm
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.synctex.gz b/eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.synctex.gz
new file mode 100644 (file)
index 0000000..144257a
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.synctex.gz differ
diff --git a/eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.toc b/eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.toc
new file mode 100644 (file)
index 0000000..d9842b4
--- /dev/null
@@ -0,0 +1,3 @@
+\beamer@endinputifotherversion {3.36pt}
+\beamer@sectionintoc {1}{Introduction}{2}{0}{1}
+\beamer@subsectionintoc {1}{1}{Motivation}{2}{0}{1}
diff --git a/eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.vrb b/eilertsen/tex/masterpresentation_finished/.texpadtmp/masterpresentation.vrb
new file mode 100644 (file)
index 0000000..e37dc6b
--- /dev/null
@@ -0,0 +1,35 @@
+\frametitle{Extract And Move Method}
+A similar problem:
+
+\noindent\begin{minipage}[t]{.45\textwidth}
+\begin{lstlisting}[numbers=left, firstnumber=1]
+public class C {
+    public X x = new X();
+    {//initializer
+       x.myC = this;
+    }
+    public void f(){
+        x.bar(this);
+    }
+}
+\end{lstlisting}
+\end{minipage}\hfill
+\begin{minipage}[t]{.45\textwidth}
+\begin{lstlisting}[numbers=left, firstnumber=1]
+public class X{
+       ...
+    void bar(C c){
+        this.n();
+        assert this == c.x;
+        this.m();
+        assert this == c.x;
+        this.n();
+    }
+}
+\end{lstlisting}
+\end{minipage}
+
+Similar how?\\
+Evaluate \texttt{x} once.\\
+Refer to that value by \texttt{this}\\
+Substitute every occurrence of \texttt{x} with \texttt{this}
diff --git a/eilertsen/tex/masterpresentation_finished/images/ErbSurvey2010Fig21.png b/eilertsen/tex/masterpresentation_finished/images/ErbSurvey2010Fig21.png
new file mode 100644 (file)
index 0000000..aaf59cb
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/ErbSurvey2010Fig21.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/Java_logo.png b/eilertsen/tex/masterpresentation_finished/images/Java_logo.png
new file mode 100644 (file)
index 0000000..75bb9f9
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/Java_logo.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/compileerror.png b/eilertsen/tex/masterpresentation_finished/images/compileerror.png
new file mode 100644 (file)
index 0000000..f8fe660
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/compileerror.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/computing.png b/eilertsen/tex/masterpresentation_finished/images/computing.png
new file mode 100644 (file)
index 0000000..a1eb3f5
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/computing.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/dogproblem.png b/eilertsen/tex/masterpresentation_finished/images/dogproblem.png
new file mode 100644 (file)
index 0000000..151e8b5
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/dogproblem.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/eclipse.png b/eilertsen/tex/masterpresentation_finished/images/eclipse.png
new file mode 100644 (file)
index 0000000..d895a9b
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/eclipse.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/eclipseok.png b/eilertsen/tex/masterpresentation_finished/images/eclipseok.png
new file mode 100644 (file)
index 0000000..e9a4aab
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/eclipseok.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/errormessage.png b/eilertsen/tex/masterpresentation_finished/images/errormessage.png
new file mode 100644 (file)
index 0000000..c464f9e
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/errormessage.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/fowler.jpg b/eilertsen/tex/masterpresentation_finished/images/fowler.jpg
new file mode 100644 (file)
index 0000000..d404bc8
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/fowler.jpg differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/intellij.png b/eilertsen/tex/masterpresentation_finished/images/intellij.png
new file mode 100644 (file)
index 0000000..6f2d9e3
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/intellij.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/junit.png b/eilertsen/tex/masterpresentation_finished/images/junit.png
new file mode 100644 (file)
index 0000000..9b514f3
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/junit.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/kimfig.png b/eilertsen/tex/masterpresentation_finished/images/kimfig.png
new file mode 100644 (file)
index 0000000..4b187fb
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/kimfig.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/movemethod.png b/eilertsen/tex/masterpresentation_finished/images/movemethod.png
new file mode 100644 (file)
index 0000000..3070f2f
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/movemethod.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/netbeans.png b/eilertsen/tex/masterpresentation_finished/images/netbeans.png
new file mode 100644 (file)
index 0000000..858cce9
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/netbeans.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/programmer.png b/eilertsen/tex/masterpresentation_finished/images/programmer.png
new file mode 100644 (file)
index 0000000..b8d95d9
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/programmer.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/programmers.png b/eilertsen/tex/masterpresentation_finished/images/programmers.png
new file mode 100644 (file)
index 0000000..62eb9d9
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/programmers.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/refactoringtooluse.png b/eilertsen/tex/masterpresentation_finished/images/refactoringtooluse.png
new file mode 100644 (file)
index 0000000..588ddbe
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/refactoringtooluse.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/refactoringtooluse_old.png b/eilertsen/tex/masterpresentation_finished/images/refactoringtooluse_old.png
new file mode 100644 (file)
index 0000000..773197f
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/refactoringtooluse_old.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/refactormenu.png b/eilertsen/tex/masterpresentation_finished/images/refactormenu.png
new file mode 100644 (file)
index 0000000..2dc883a
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/refactormenu.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/steinmann.jpeg b/eilertsen/tex/masterpresentation_finished/images/steinmann.jpeg
new file mode 100644 (file)
index 0000000..c9fd8f2
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/steinmann.jpeg differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/testerror.png b/eilertsen/tex/masterpresentation_finished/images/testerror.png
new file mode 100644 (file)
index 0000000..a9f67f9
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/testerror.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/testfailure.png b/eilertsen/tex/masterpresentation_finished/images/testfailure.png
new file mode 100644 (file)
index 0000000..9fe7a1c
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/testfailure.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/testsuccess.png b/eilertsen/tex/masterpresentation_finished/images/testsuccess.png
new file mode 100644 (file)
index 0000000..18b0be2
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/testsuccess.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/topatterns.jpg b/eilertsen/tex/masterpresentation_finished/images/topatterns.jpg
new file mode 100644 (file)
index 0000000..7c81cae
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/topatterns.jpg differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/twitter.png b/eilertsen/tex/masterpresentation_finished/images/twitter.png
new file mode 100644 (file)
index 0000000..213c3c1
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/twitter.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/volker_example.png b/eilertsen/tex/masterpresentation_finished/images/volker_example.png
new file mode 100644 (file)
index 0000000..c0135f6
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/volker_example.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/warningmessage.png b/eilertsen/tex/masterpresentation_finished/images/warningmessage.png
new file mode 100644 (file)
index 0000000..9d7c7dd
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/warningmessage.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/images/warningsymbol.png b/eilertsen/tex/masterpresentation_finished/images/warningsymbol.png
new file mode 100644 (file)
index 0000000..7ae6482
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/images/warningsymbol.png differ
diff --git a/eilertsen/tex/masterpresentation_finished/masterpresentation.pdf b/eilertsen/tex/masterpresentation_finished/masterpresentation.pdf
new file mode 100644 (file)
index 0000000..eb739c4
Binary files /dev/null and b/eilertsen/tex/masterpresentation_finished/masterpresentation.pdf differ
diff --git a/eilertsen/tex/masterpresentation_finished/masterpresentation.tex b/eilertsen/tex/masterpresentation_finished/masterpresentation.tex
new file mode 100644 (file)
index 0000000..ec5c594
--- /dev/null
@@ -0,0 +1,554 @@
+\documentclass{beamer}
+\usetheme{Boadilla}
+\usepackage[normalem]{ulem}
+\usepackage{multicol}
+\usepackage{tikz}
+\usepackage{listings}
+\lstset{
+  frame=tlrb,
+  language=Java,
+  aboveskip=3mm,
+  belowskip=3mm,
+  showstringspaces=false,
+  columns=flexible,
+  basicstyle={\small\ttfamily},
+%  numbers=none,
+  numberstyle=\tiny\color{gray},
+  keywordstyle=\color{blue},
+  commentstyle=\color{gray},
+  stringstyle=\color{mauve},
+  breaklines=true,
+  breakatwhitespace=true,        
+  tabsize=3
+}
+
+
+\begin{document}
+
+%------------- Titlepage -------------%
+\title{Making Software Refactorings Safer}
+%\subtitle{{\small accepted at ISOLA\\builds on Kristiansen's thesis}}
+\author[Anna Maria Eilertsen \hspace{1cm} @sowhow \hspace{3cm}]{Anna Maria Eilertsen\\
+@Sowhow\\
+\vspace{2mm}
+{\small Supervised by: Anya Bagge\inst{1} \and Volker Stolz \inst{2}}}
+\institute{%
+  \inst{1}Inst.\ for Informatikk, Universitetet i Bergen \and
+\inst{2} Inst.\ for Data- og Realfag, H\o gskolen i Bergen
+\\Norway}
+
+\date{\today}
+
+\begin{frame}
+\titlepage
+\tikz [remember picture,overlay]
+    \node at
+        ([yshift=1.5cm, xshift=1.2cm]current page.center) 
+        {\includegraphics[width=0.04\textwidth]{images/twitter}};
+
+%\tikz [remember picture,overlay]
+%    \node at
+%        ([yshift=2cm, xshift=5cm]current page.south) 
+%        %or: (current page.center)
+%        {\includegraphics[width=0.1\textwidth]{images/programmer}};
+
+{\small The results of this thesis has been accepted to the ISOLA\footnote{http://www.isola-conference.org/isola2016/} conference as a paper.}
+
+\end{frame}
+
+
+%\begin{frame}
+%\frametitle{Outline}
+%\tableofcontents
+%\end{frame}
+
+
+\section{Introduction}
+\subsection{Motivation}
+
+%------------- Fowler -------------%
+\begin{frame}
+
+\frametitle{Software Refactorings}
+\begin{minipage}[t]{.45\textwidth}
+\tikz [remember picture,overlay]
+    \node at
+        ([yshift=0cm,xshift=-3.5cm]current page.center)
+        {\includegraphics[width=0.6\textwidth]{images/fowler}};
+\end{minipage}
+\begin{minipage}[t]{.45\textwidth}
+\vspace{1cm}
+\begin{center}``Behaviour preserving program transformation''\end{center}
+\vspace{1cm}
+%\tikz [remember picture,overlay]
+%    \node at
+%        ([yshift=3cm,xshift=2cm]current page.south)
+%        {
+        \includegraphics[width=\textwidth]{images/movemethod}
+%        };
+
+\end{minipage}
+\end{frame}
+
+
+\begin{frame}\frametitle{Software Refactoring Tools}
+\tikz [remember picture,overlay]
+    \node at
+        ([yshift=-2.5cm,xshift=-2.3cm]current page.north) 
+        {\includegraphics[width=0.6\textwidth]{images/errormessage}};
+\tikz [remember picture,overlay]
+    \node at
+        ([yshift=-5cm,xshift=-4.5cm]current page.north) 
+        {\includegraphics[width=0.2\textwidth]{images/eclipse}};        
+\tikz [remember picture,overlay]
+    \node at
+        ([yshift=-5.5cm,xshift=-1.5cm]current page.north) 
+        {\includegraphics[width=0.2\textwidth]{images/netbeans}};        
+\tikz [remember picture,overlay]
+    \node at
+        ([yshift=-7.5cm,xshift=-3.5cm]current page.north) 
+        {\includegraphics[width=0.16\textwidth]{images/intellij}};        
+
+\begin{minipage}[t]{.45\textwidth}
+\tikz [remember picture,overlay]
+    \node at
+        %([yshift=2cm, xshift=5cm]current page.south) 
+        %(current page.center)
+        ([xshift=3cm]current page.center)
+        {\includegraphics[width=\textwidth]{images/refactoringtooluse}};
+        
+\end{minipage}
+
+
+\end{frame}
+
+
+\begin{frame}\frametitle{Unsafe Refactorings}
+\tikz [remember picture,overlay]
+    \node at
+        ([xshift=-2.5cm,yshift=2cm]current page.center) 
+        {\includegraphics[width=0.35\textwidth]{images/computing}};
+\vspace{3cm}
+
+\begin{minipage}[b]{.65\textwidth}
+\begin{quote}
+``\textit{\small
+The primary risk is regression, mostly from misunderstanding subtle corner cases in the original code and not accounting for them in the refactored code.}''\begin{center}{\small-- interviewee, Microsoft developer,\\Kim et al., 2012
+%\footnote{Kim, Miryung, Zimmermann, and Nachiappan Nagappan. ``A field study of refactoring challenges and benefits.'' 2012.}
+}
+\end{center}
+\end{quote}
+\end{minipage}
+\tikz [remember picture,overlay]
+    \node at
+        ([xshift=-2.5cm]current page.east) 
+        {\includegraphics[width=0.3\textwidth]{images/kimfig}};
+\end{frame}
+
+
+
+
+
+
+
+\begin{frame}[fragile]\frametitle{Unsafe Refactoring Example}
+\textbf{Extract Local Variable}
+
+\vspace{1.5cm}
+
+In Java/Eclipse:
+
+
+\noindent\begin{minipage}[t]{.45\textwidth}
+\begin{lstlisting}[numbers=left, firstnumber=1, title={Before}, 
+       linewidth=.8\textwidth]
+public void f() {\r    x.n();\r    setX();\r    x.n();\r}
+\end{lstlisting}
+\end{minipage}\hfill
+\begin{minipage}[t]{.45\textwidth}
+\begin{lstlisting}[numbers=left, firstnumber=1, title=After, 
+       linewidth=.8\textwidth]
+public void f() {\r    X temp = x;
+    temp.n();\r    setX();\r    temp.n();\r}
+\end{lstlisting}
+\end{minipage}
+
+
+\end{frame}
+
+
+%------------- Discussion: solution -------------%
+\begin{frame}[fragile]\frametitle{An analysing problem}
+\texttt{x = new X();} \hspace{2.3cm} \includegraphics{images/warningsymbol}
+
+\texttt{setX(); // x = new X();} \hspace{2mm} \includegraphics{images/testsuccess}
+
+\vspace{3cm}
+
+\tikz [remember picture,overlay]
+    \node at
+        ([yshift=0cm,xshift=2.5cm]current page.center)
+        {\includegraphics[width=0.5\textwidth]{images/dogproblem}      };
+\tikz [remember picture,overlay]
+    \node at
+        ([yshift=-1.5cm,xshift=4.5cm]current page.north)
+        {\begin{lstlisting}[numbers=left, firstnumber=1, 
+       linewidth=.2\textwidth, basicstyle={\tiny\ttfamily}]
+public void f() {\r    X temp = x;
+    temp.n();\r    setX();\r    temp.n();\r}
+\end{lstlisting}
+};
+\textbf{Solution:}\\
+\texttt{assert temp == x;}
+
+\vspace{1.5cm}
+\hrulefill\\
+{\tiny $^\ast$Dog art from Hyperbole and a Half}
+\end{frame}
+
+
+%------------- The problem -------------%
+\begin{frame}[fragile]\frametitle{Extract Local Variable}
+Simplified example:
+
+
+\noindent\begin{minipage}[t]{.45\textwidth}
+\begin{lstlisting}[numbers=left, firstnumber=1]
+public class C {
+    public X x = new X();
+    {//initializer
+           x.myC = this;
+    }
+    
+    public void f(){
+        x.n();
+        x.m();
+        x.n();
+    }
+}
+\end{lstlisting}
+\end{minipage}\hfill
+\begin{minipage}[t]{.45\textwidth}
+\begin{lstlisting}[numbers=left, firstnumber=1]
+public class X{
+    public C myC;
+    public void m(){
+        myC.x = new X();
+    }
+    
+    public void n(){
+        System.out.println(
+               this.hashCode());
+    }
+}
+\end{lstlisting}
+\end{minipage}
+
+Output:\\
+1735600054\\
+21685669 \hspace{8.5cm} \hyperlink{frame:exp}{\beamerbutton{skip example}}
+\end{frame}
+
+
+
+
+
+%------------- The problem: refactored -------------%
+\begin{frame}[fragile]\frametitle{Extract Local Variable}
+Refactored:
+
+\noindent\begin{minipage}[t]{.45\textwidth}
+\begin{lstlisting}[numbers=left, firstnumber=1]
+public class C {
+    public X x = new X();
+    {//initializer
+       x.myC = this;
+    }
+    
+    public void f(){
+        X temp = x;
+        temp.n();
+        temp.m();
+        temp.n();
+    }
+}
+\end{lstlisting}
+\end{minipage}\hfill
+\begin{minipage}[t]{.45\textwidth}
+\begin{lstlisting}[numbers=left, firstnumber=1]
+public class X{
+    public C myC;
+    public void m(){
+        myC.x = new X();
+    }
+    
+    public void n(){
+        System.out.println(
+               this.hashCode());
+    }
+}
+\end{lstlisting}
+\end{minipage}
+Output:\\
+1735600054\\
+1735600054
+\end{frame}
+
+%------------- Code: solution -------------%
+\begin{frame}[fragile]\frametitle{Extract Local Variable}
+With dynamic checks:
+
+\noindent\begin{minipage}[t]{.45\textwidth}
+\begin{lstlisting}[numbers=left, firstnumber=1]
+public class C {
+    public X x = new X();
+    {//initializer
+       x.myC = this;
+    }
+    public void f(){
+        X temp = x;
+        assert temp == x;
+        temp.n();
+        assert temp == x;
+        temp.m();
+        assert temp == x;
+        temp.n();
+\end{lstlisting}
+\end{minipage}\hfill
+\begin{minipage}[t]{.45\textwidth}
+\begin{lstlisting}[numbers=left, firstnumber=1]
+public class X{
+    public C myC;
+    public void m(){
+        myC.x = new X();
+    }
+    
+    public void n(){
+        System.out.println(
+               this.hashCode());
+    }
+}
+\end{lstlisting}
+\end{minipage}
+Output:\\
+1735600054\\
+Exception in thread "main" java.lang.AssertionError
+\end{frame}
+
+
+
+
+
+
+
+
+%------------- Extract And Move: solution -------------%
+\begin{frame}[fragile]\frametitle{Extract And Move Method}
+A similar problem:
+
+\noindent\begin{minipage}[t]{.45\textwidth}
+\begin{lstlisting}[numbers=left, firstnumber=1]
+public class C {
+    public X x = new X();
+    {//initializer
+       x.myC = this;
+    }
+    public void f(){
+        x.bar(this);
+    }
+}
+\end{lstlisting}
+\end{minipage}\hfill
+\begin{minipage}[t]{.45\textwidth}
+\begin{lstlisting}[numbers=left, firstnumber=1]
+public class X{   
+       ...
+    void bar(C c){
+        this.n();
+        assert this == c.x;
+        this.m();
+        assert this == c.x;
+        this.n();
+    }
+}
+\end{lstlisting}
+\end{minipage}
+
+Similar how?\\
+Evaluate \texttt{x} once.\\
+Refer to that value by \texttt{this}\\
+Substitute every occurrence of \texttt{x} with \texttt{this}
+\end{frame}
+
+
+
+%------------- Experiment:case study -------------%
+\begin{frame}\frametitle{Experiment: Case study}
+\hypertarget{frame:exp}{}
+\textbf{Case: Eclipse JDT UI source code}
+%\begin{itemize}
+%      \item Java Programming Language
+%      \item Open Source
+%      \item 300.000 lines of code
+%      \item 25.000 methods
+%      \item Automated test suite
+%\end{itemize}
+\tikz [remember picture,overlay]
+    \node at
+        ([yshift=1.5cm,xshift=-2cm]current page.center)
+        {\includegraphics[width=0.1\textwidth]{images/java_logo}};
+\tikz [remember picture,overlay]
+    \node at
+        ([yshift=1.5cm,xshift=-4cm]current page.center)
+        {\includegraphics[width=0.1\textwidth]{images/eclipse}};
+\tikz [remember picture,overlay]
+    \node at
+        ([yshift=1.5cm,xshift=3cm]current page.center)
+        {\includegraphics[width=0.3\textwidth]{images/programmers}};
+\tikz [remember picture,overlay]
+    \node at
+        ([yshift=1.5cm,xshift=0cm]current page.center)
+        {\includegraphics[width=0.15\textwidth]{images/junit}};
+
+\vspace{2cm}
+
+\textbf{Experiment:}
+\begin{itemize}        
+       \item Execute our modified refactorings on Eclipse JDT UI project
+       \item Run Eclipse test suite
+       \item Look for triggered asserts
+       \item Profit!!
+\end{itemize}
+
+\bigskip 
+
+Need custom automated refactoring tool.
+
+\end{frame}
+
+%------------- Experiment:results -------------%
+\begin{frame}\frametitle{Experiment: Results}
+
+\begin{tabular}{|r|r|r|r|}
+\hline
+ &  Extract Local & Extract and\\
+ &  Variable & Move Method \\
+\hline
+Executed refactorings & 4538 & 755 \\
+\hline 
+Total number of asserts & 7665 & 610 \\
+\hline
+Resulting compile errors \includegraphics[width=2.5mm]{images/compileerror}& 0 & 14\\
+\hline
+Successful Tests \includegraphics{images/testsuccess} & 2392 & 2151 \\
+\hline
+Unsuccessful Tests \includegraphics{images/testfailure}\includegraphics{images/testerror}& 4 & 245 \\
+\hline
+Asserts triggered & 2 / 136$^\ast$ & 0 \\
+\hline
+\end{tabular}
+
+\bigskip 
+
+$^\ast$ 136 instances of the same 2 assert statements
+\end{frame}
+
+
+%------------- Experiment:discussion -------------%
+\begin{frame}\frametitle{Discussion}
+\vspace{2cm}
+
+\textbf{Take-away and questions:} 
+
+\tikz [remember picture,overlay]
+    \node at
+        ([yshift=-1.7cm,xshift=2.5cm]current page.north)
+        {
+{\tiny
+\begin{tabular}{|r|r|r|r|}
+\hline
+ &  Extract Local & Extract and\\
+ &  Variable & Move Method \\
+\hline
+Executed refactorings & 4538 & 755 \\
+\hline 
+Total number of asserts & 7665 & 610 \\
+\hline
+Resulting compile errors \includegraphics[width=2mm]{images/compileerror}& 0 & 14\\
+\hline
+Successful Tests \includegraphics[width=1.5mm]{images/testsuccess} & 2392 & 2151 \\
+\hline
+Unsuccessful Tests \includegraphics[width=1.5mm]{images/testfailure}\includegraphics[width=1.5mm]{images/testerror}& 4 & 245 \\
+\hline
+Asserts triggered & 2 / 136 & 0 \\
+\hline
+\end{tabular}
+}
+};
+
+
+
+
+
+
+
+\begin{itemize}
+       \item Dynamic preconditions can be useful!
+%      \item Extract And Move Method is complicated
+%      \begin{itemize}
+%              \item Can use Extract Local Variable as a precondition
+%      \end{itemize}
+       \item Assert statements are incomplete.
+%      \begin{itemize}
+%              \item assignment and reassignment in one statement
+%              \item Solution: wrapper methods 
+%      \end{itemize}
+%      \item Can we conclude that this bug would not appear?
+%      \begin{itemize}
+%              \item Look at code during development
+%      \end{itemize}
+       \item Show or hide the asserts from the programmer?
+%      \begin{itemize}
+%              \item Hide assert statements from the source code
+%              \item Show them and let the programmer decide
+%      \end{itemize}
+       \item Is reference equivalence too strict?
+\end{itemize}
+
+%\hrulefill
+\vspace{1cm}
+
+\begin{center}
+Thank you!
+\end{center}
+\hrulefill\\
+{\tiny $^\ast$Art with face is from Hyperbole and a Half}
+\end{frame}
+
+%------------- Experiment:development -------------%
+\begin{frame}\frametitle{Experiment: Development}
+\textbf{Eclipse refactoring plug-in}
+
+\bigskip 
+
+\begin{itemize}
+       \item Modify Eclipse's refactorings to introduce asserts
+       \begin{itemize}
+       \item Extract Local Variable
+       \item Extract And Move Method
+       \end{itemize}   
+       \item Automate refactoring process
+       \begin{itemize}
+               \item Execute on Java project
+               \item One refactoring per method
+       \end{itemize}
+       \item Custom heuristic for finding refactoring targets
+\end{itemize}
+\end{frame}
+
+
+
+\end{document}
\ No newline at end of file