Skip to content

Commit

Permalink
insertion des nouveaux diagrammes de classe
Browse files Browse the repository at this point in the history
  • Loading branch information
Adrien Jacquet committed Jun 12, 2016
1 parent d79cefa commit 3234cd7
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 19 deletions.
36 changes: 17 additions & 19 deletions rapport/NF28.tex
Original file line number Diff line number Diff line change
Expand Up @@ -279,33 +279,17 @@ \subsubsection{Structure de données}
Ce polymorphisme induit un couplage plus léger et permet donc une plus grande souplesse du contrôleur.
Certaines méthodes telles que \lstinline$isTouch(PointF indexUser)$ qui permet de savoir si un élément a été touché par l'index de l'utilisateur ou \lstinline$draw()$ qui permet de dessiner l'élément.
En surchargeant ces différentes méthodes chaque forme peut proposer un comportement différent.
Les éléments se distinguent entre eux par le stockage d'un identifiant \lstinline$UUID$ qui est unique, ce qui permet de sérialiser/dé-sérialiser sous format JSON les objets puis retrouver leurs références.
Les éléments se distinguent entre eux par le stockage d'un identifiant \lstinline$UUID$ qui est unique, ce qui permet de sérialiser/dé-sérialiser sous format JSON les objets puis retrouver leurs références.

\vspace*{\fill}
\begin{figure}[!h]
\centering
\includegraphics[width=\textwidth]{img/UmlArchiStructureData}
\caption{Colladia - Structure de données simplifiée}
\end{figure}
\vspace*{\fill}

Chaque élément possède 4 ancres (Top, Bottom, Left, Right) qui permettent de lier les éléments entre eux.
Pour ce faire chaque ancre possède l'UUID de son parent ainsi que celui de l'ancre auquel il est associé.
Lors de la sérialisation/dé-sérialisation des éléments il est possible de retrouver l'ancre associée sans pour autant avoir une référence sur l'objet constamment.
\vspace*{\fill}

\newpage
\subsubsection{Gestion des données}
Le singleton \lstinline$Manager$ propose des méthodes telles que \lstinline$changeText(Element elmnt, Text text)$ qui permet dans un premier temps de changer le texte l'élément, puis demande au \lstinline$Requestator$ d'envoyer une requête au serveur pour y mettre à jour l'élément.
Le singleton \lstinline$Requestator$ s'occupe de réaliser les requêtes au serveur en utilisant le framework android Volley.
Le modèle possède le diagramme couramment modifié ainsi que l'horloge logique utilisé par le serveur pour renvoyer les dernières modifications effectuées.

\begin{figure}[!h]
\centering
\includegraphics[width=\textwidth]{img/UmlArchiGeneral}
\caption{Colladia - Gestion des données simplifiée}
\end{figure}

La classe \lstinline$ElementFactory$ permet de générer les éléments spécifiques tels un Cercle ou un Rectangle pour les proposer au Manager qui via le polymorphisme traitera l'objet comme un simple \lstinline$Element$.

\subsubsection{Différentes vues}
Expand All @@ -314,7 +298,21 @@ \subsubsection{Différentes vues}
% \paragraph{Édition d'un diagramme}
Concernant la zone de dessin il a fallu mettre en place une sorte de machine à états qui changerait de "mode" selon les interactions de l'utilisateur. Il existe différents modes (\lstinline$ZOOM$, \lstinline$SCROLL$, \lstinline$INSERT$, ...), ce qui permet de déterminer le comportement à adopter selon la situation rencontrée.

La méthode \lstinline$onTouchEvent()$ réagit aux différentes interactions de l'utilisateur, puis appelle la méthode adéquate comme par exemple \lstinline$moveTouch()$ qui correspond au déplacement du doigt de l'utilisateur sur l'écran.
La méthode \lstinline$onTouchEvent()$ réagit aux différentes interactions de l'utilisateur, puis appelle la méthode adéquate comme par exemple \lstinline$moveTouch()$ qui correspond au déplacement du doigt de l'utilisateur sur l'écran.

\newpage
\begin{figure}[!h]
\centering
\includegraphics[width=\textwidth]{img/UmlArchiStructureData}
\caption{Colladia - Structure de données simplifiée}
\end{figure}

\newpage
\begin{figure}[!h]
\centering
\includegraphics[width=.9\textwidth]{img/UmlArchiGeneral}
\caption{Colladia - Gestion des données simplifiée}
\end{figure}

\newpage
\begin{figure}[!h]
Expand All @@ -327,4 +325,4 @@ \subsection{Limites et améliorations}
L'application possède une base intéressante et fonctionnelle, cependant on peut citer quelques limites principales.
La première limite étant le nombre restreint d'éléments différents qui sont actuellement proposés.
Un travail important été réalisé pour factoriser un maximum de code des éléments au niveau de la classe \lstinline$Element$, ce qui permet de créer assez facilement des formes diverses et variés.
Une des fonctionnalités supplémentaires qui pourrait aider l'utilisateur serait de permettre une sélection groupée, en plus des différentes fonctionnalités optionnelles décrites auparavant.
Une des fonctionnalités supplémentaires qui pourrait aider l'utilisateur serait de permettre une sélection groupée, en plus des différentes fonctionnalités optionnelles décrites auparavant.
Binary file modified rapport/img/UmlArchiGeneral.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added rapport/img/UmlArchiGeneral.png.old
Binary file not shown.
Binary file modified rapport/img/UmlArchiStructureData.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added rapport/img/UmlArchiStructureData.png.old
Binary file not shown.
Binary file modified rapport/main.pdf
Binary file not shown.

0 comments on commit 3234cd7

Please sign in to comment.