diff --git a/report.pdf b/report.pdf index 4e256f1..54d31db 100644 Binary files a/report.pdf and b/report.pdf differ diff --git a/report.tex b/report.tex index d3ee703..a19b55e 100644 --- a/report.tex +++ b/report.tex @@ -45,6 +45,7 @@ \maketitle \pagenumbering{roman} \tableofcontents +\listoffigures \lstlistoflistings \end{titlepage} @@ -127,7 +128,7 @@ code by using the cloc tool, which provided the following output shown in Figure project contains 58.787 lines of Java code and this satisfies all the requirements. -\begin{figure}[H] +\begin{figure}[h] \centering \begin{tabular}{lrrrr} \toprule @@ -182,7 +183,7 @@ when referring to a class by its fully-qualified domain name the prefix \textit{com.fasterxml.jackson.core} is omitted as all classes in the Jackson core project reside in this package or in a sub-package of this package. -\section{\textit{Pattern4J} accuracy} +\section{\textit{Pattern4J} Accuracy and Quantitative Analysis} As it would be very hard to check each class in the Jackson project for design patterns manually to get a true number of false positives and false negatives, @@ -282,7 +283,6 @@ false negative rate of 17.2\%, and an accuracy of 75.0\%. x y C 0 0 3 1 0 2.5 - 0 1 2.5 1 1 12 }; @@ -299,6 +299,30 @@ false negative rate of 17.2\%, and an accuracy of 75.0\%. \label{fig:conf} \end{figure} +Moreover, based on \textit{Pattern4J} complete analysis output, we are able to +report the overall findings, shown in Figure \ref{fig:ana}. + +\begin{figure}[H] + \centering + \begin{tabular}{lrr} + \toprule + Design Pattern & Pattern Applications & Classes Covered \\ + \midrule + Factory Method & 2 & 2 \\ + Singleton & 13 & 13 \\ + Adapter & 8 & 6 \\ + Decorator & 2 & 2 \\ + State & 5 & 3 \\ + Bridge & 1 & 1 \\ + Template Method & 7 & 7 \\ + \midrule + Total & 38 & 34 \\ + \bottomrule +\end{tabular} + \caption{Quantitative summary of \textit{Pattern4J} complete analysis output + for the Jackson core project.} + \label{fig:ana} +\end{figure} \section{Structural Patterns} @@ -440,7 +464,7 @@ pattern). A manual search in the source code produced the following results: \subsection{Adapter Pattern} \textit{Pattern4J} found many instances of the adapter pattern, however all but -one wVere shown to be false positives by checking the documentation and the code +one were shown to be false positives by checking the documentation and the code using each allegied adaptee. The matches found are reported and commented below. Matches are shown in the \textit{[Adapter] $\leftarrow$ [Adaptee]} format. @@ -484,7 +508,7 @@ time by wrapping them in an object of a decorator class. \end{description} Only in Pattern4J -\subsection{Bridge Pattern} +\subsection{TBD Bridge Pattern} TBD \section{Behavioral Patterns} @@ -576,5 +600,13 @@ Here the pattern is slightly modified by providing a default implementation of override the method with a body first calling \textit{super()} and then adding additional buffer release code after. +\section{TBD Conclusions} + +TBD + +\textit{a brief (possibly speculative) discussion about whether your findings +are likely to be applicable to other projects or, conversely, they are probably +unique to the project you selected – and why you think this to be the case.} + \end{document}