\include{macroTL}
\title{Génie logiciel \\ -- \\TD4}
\author{\bsc{Pietri} Yoann (A11)\\\bsc{Levy--Falk} Hugo (A11)}
\date{Mars 2018}
\usepackage{mathrsfs}
\usepackage{MyPack2}
\usepackage{pdftexcmds}
\usepackage{minted}
\begin{document}
	\maketitle
	\initPage{TL de Génie Logiciel}{\today}{\bsc{Pietri} Yoann, \bsc{Levy--Falk} Hugo}
	\tableofcontents
	\newpage
	\section{Lecture d'une chaîne de caractères dans un fichier}
	Le mot clé \mintinline{java}{static} permet d'appeler la méthode \mintinline{java}{lireTexte} sans avoir besoin d'instancier d'objet de la classe \mintinline{java}{Utilitaire}.
	
	Code source de la classe Comparateur :
	
	\inputminted{java}{td4/question1/comparateur.java}
	
	\section{Implémentation de l'architecture logicielle}
	
	\subsection{Code source de la classe \mintinline{java}{Comparateur}}
	\inputminted{java}{td4/question2/Comparateur.java}
	
	\subsection{Code source de la classe \mintinline{java}{AlgoCodage}}
	\inputminted{java}{td4/question2/AlgoCodage.java}
	
	\subsection{Code source de la classe \mintinline{java}{Cesar}}
	\inputminted{java}{td4/question2/Cesar.java}
	
	\section{Utilisation d'un patron pour ajouter un algorithme existant}
	Les classe \mintinline{java}{EncodeurAClef} ne possède pas les méthodes \mintinline{java}{encode} et \mintinline{java}{décode}, mais possède des méthodes \mintinline{java}{chiffre} et \mintinline{java}{déchiffre}. De plus il n'hérite pas de \mintinline{java}{AlgoCodage}. La solution est d'utiliser le patron adaptateur.
	
	La figure \ref{fig:rationalrose} montre le diagramme \bsc{UML} de l'application.
	
	\begin{figure}[h!]
		\centering
		\includegraphics[width=0.7\linewidth]{td4/question3/rational_rose}
		\caption{Diagramme UML}
		\label{fig:rationalrose}
	\end{figure}
	
	Le code à ajouter dans la classe comparateur est alors:
	\begin{minted}{java}
	algoAComparer.add(new AdapteEncodeurAClef("mon secret"));
	algoAComparer.add(new AdapteEncodeurAClef(""));
	\end{minted}
	
	\section{Tests unitaires pour codage d'Huffman}
	Code source de la classe \mintinline{java}{ArbreTest} :
	\inputminted{java}{td4/question4/ArbreTest.java}
	
	\section{Documentation}
	Code source de la classe Feuille :
	\inputminted{java}{td4/question5/Feuille.java}
	
	\clearpage
	\listoffigures
\end{document}