]> git.uio.no Git - ifi-stolz-refaktor.git/commitdiff
Thesis
authorErlend Kristiansen <erlenkr@ifi.uio.no>
Wed, 12 Feb 2014 11:42:57 +0000 (12:42 +0100)
committerErlend Kristiansen <erlenkr@ifi.uio.no>
Wed, 12 Feb 2014 11:42:57 +0000 (12:42 +0100)
thesis/master-thesis-erlenkr.pdf
thesis/master-thesis-erlenkr.tex

index 7dc68649ebf193becd75554f43e85e26e4644338..e1d49be1549c3cce8f9a990c41b53c98b33135a5 100644 (file)
Binary files a/thesis/master-thesis-erlenkr.pdf and b/thesis/master-thesis-erlenkr.pdf differ
index 65618d6ce09a12380e359f7c00981e90145a9978..c309b664660976d1e86f6c63ed2f8beebadafc5f 100644 (file)
@@ -46,7 +46,7 @@
 \begin{minipage}{\textwidth-4pt}#2\end{minipage}}}
 
 \title{Refactoring}
-\subtitle{An unfinished essay}
+\subtitle{An essay}
 \author{Erlend Kristiansen}
 
 \bibliography{bibliography/master-thesis-erlenkr-bibliography}
@@ -85,10 +85,10 @@ Martin Fowler, in his masterpiece on refactoring \cite{refactoring}, defines a
 refactoring like this:
 
 \begin{quote}
-  \emph{Refactoring} (noun): a change made to the \todo{what does he mean by 
-  internal?} internal structure of software to make it easier to understand and 
-  cheaper to modify without changing its observable 
-  behavior.~\cite[p.~53]{refactoring}
+  \emph{Refactoring} (noun): a change made to the internal 
+  structure\footnote{The structure observable by the programmer.} of software to 
+  make it easier to understand and cheaper to modify without changing its 
+  observable behavior.~\cite[p.~53]{refactoring}
 \end{quote}
 
 \noindent This definition assign additional meaning to the word 
@@ -883,10 +883,11 @@ object instances (see line 5 and 6 of the original class \type{C}). After, they
 are called on the same object, and the statement on line 3 of class \type{X} 
 (the version after the refactoring) no longer have any effect in our example.
 
-The bug introduced in the previous example is of such a nature that it is very 
-difficult to spot if the refactored code is not covered by tests. It does not 
-generate compilation errors, and will thus only result in a runtime error or 
-corrupted data, which might be hard to detect.
+The bug introduced in the previous example is of such a nature\footnote{Caused 
+  by aliasing. See \url{https://en.wikipedia.org/wiki/Aliasing_(computing)}} 
+  that it is very difficult to spot if the refactored code is not covered by 
+  tests.  It does not generate compilation errors, and will thus only result in 
+  a runtime error or corrupted data, which might be hard to detect.
 
 \section{Refactoring and testing}\label{testing}
 \begin{quote}
@@ -964,11 +965,10 @@ free, open source and community driven, while the IntelliJ IDEA has an open
 sourced community edition that is free of charge, but also offer an 
 \emph{Ultimate Edition} with an extended set of features, at additional cost.  
 All three IDEs supports adding plugins to extend their functionality and tools 
-that can be used to parse and analyze Java source code. \todo{investigate if 
-this is true} But one of the IDEs stand out as a favorite, and that is the 
-\emph{Eclipse IDE}. This is the most popular\citing{javaReport2011} among them 
-and seems to be de facto standard IDE for Java development regardless of 
-platform.
+that can be used to parse and analyze Java source code. But one of the IDEs 
+stand out as a favorite, and that is the \emph{Eclipse IDE}. This is the most 
+popular\citing{javaReport2011} among them and seems to be de facto standard IDE 
+for Java development regardless of platform.
 
 
 \chapter{Refactorings in Eclipse JDT: Design, Shortcomings and Wishful 
@@ -1089,7 +1089,6 @@ sequence. This problem is not trivial to handle in Eclipse. (See section
 \section{Wishful Thinking}
 
 
-
 \chapter{Composite Refactorings in Eclipse}
 
 \section{A Simple Ad Hoc Model}