Skip to content

Commit

Permalink
Merge branch 'sprint6/217-report' of github.com:FACT-Team/FactDev int…
Browse files Browse the repository at this point in the history
…o sprint6/217-report

Conflicts:
	documents/LaTexTemplate
	documents/final-report/final-report.pdf
	fact-team.github.io
  • Loading branch information
manantsoa committed Apr 20, 2015
2 parents 4d40f82 + 0250bab commit da6f23c
Show file tree
Hide file tree
Showing 7 changed files with 124 additions and 5 deletions.
5 changes: 3 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ install:
- sudo apt-get install libmysqld-dev libmysqlclient-dev libqt5sql5-mysql libqt4-sql-mysql
- sudo apt-get install mlocate
- sudo apt-get install xvfb
- wget -O Qt5.2.0.tar.xz https://www.dropbox.com/s/mkqtb8teeydsmrk/Qt5.2.0.tar.xz?dl=0
- wget -O Qt5.2.0.tar.xz https://www.dropbox.com/s/vkqlecsep2mqp22/Qt5.2.0.tar.xz?dl=0
- mkdir ~/Qt5.2.0
- tar -xJf Qt5.2.0.tar.xz -C ~/Qt5.2.0
- sudo chmod -R 777 ~/Qt5.2.0/
Expand All @@ -39,9 +39,10 @@ script:
- ./createDatabase.sh FactDev FactDev FactDev
- ./tests.sh
- ./coverage.sh
- ./doxygen.sh
- ./doxygen.sh >> /dev/null 2> /dev/null
- cd ../

after_success:
- cd fact-team.github.io/
- git push https://${TOK}@github.com/FACT-Team/fact-team.github.io.git master

2 changes: 1 addition & 1 deletion documents/beamer-theme
Binary file added documents/beamer/logos/mysql.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1 +1,10 @@
\section{L'intégration continue}
\section{L'intégration continue}\label{integration-continue}
\subsection{L'utilisation d'un logiciel de versionnement}
% La fusion automatique
% Github pour la communication, Issues, TODO/Done/current

\subsection{Le Branching Workflow}
% Schéma

\subsection{L'intégration continue avec Travis}
% Schéma
2 changes: 1 addition & 1 deletion documents/final-report/contents/projet/logiciel.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
\section{Le logiciel FactDev}
\section{Le logiciel FactDev}\label{logiciel}
Le logiciel FactDev a pour but de faciliter la création de devis et la conversion de ces devis en factures. \\
Il répond aux exigences définies lors de l'introduction en permettant l'enregistrement d'un nouveau client dans la base de données et de projets associés à ce clients. Par exemple, un client X peut demander la réalisation d'un logiciel pour le management de son entreprise et un site web pour promouvoir son activité. On a donc deux projets distincts qui peuvent cependant faire l'objet d'une seule facture. De plus, une facture est fréquemment précédé d'un devis, c'est pourquoi il doit être facile de transformer un devis en facture. Enfin le logiciel devra tenir de certaine réglementation «légale » tel que l'impossibilité de modifier une facture ayant été payée.

Expand Down
107 changes: 107 additions & 0 deletions documents/final-report/contents/projet/outils.tex
Original file line number Diff line number Diff line change
@@ -1 +1,108 @@
\section{Les outils}
Afin de respecter les attentes du client, et de développer correctement le logiciel présenté section \ref{logiciel}, nous avons utilisés un
certain nombres d'outils, dans divers domaines.

\subsection{Outils de développement}
Afin de développer à proprement parler le logiciel, nous avons utilisés plusieurs technologies.

\begin{wrapfigure}{r}{0.4\textwidth}
\begin{center}
\includegraphics[width=0.38\textwidth]{../beamer/logos/qt.png}
\end{center}
\caption{Le développement -- Qt}
\end{wrapfigure}
Proposé par le client, il a été choisi de développer le logiciel en C++, en utilisant le framework Qt.
En effet, ce langage permet d'avoir un logiciel qui soit rapide, et peu gourmand en mémoire. Cependant, il était nécessaire d'utiliser un
framework de développement, et ce pour plusieurs raisons :
\begin{itemize}
\item Développer rapidement une interface claire, uniforme
\item Avoir un logiciel Multi-Plateforme, executable sous Windows, Linux et Mac OS
\item Faciliter les lectures et écritures à une base de données
\end{itemize}
En plus de ces avantages certains, Qt améliore le langage C++ afin de garder la même rapidité d'exécution tout en simplifiant l'écriture de
certains concepts\footnote{Simplification de la gestion de la mémoire, Ajout du \textit{foreach}, redéfinition de tous les types de bases, …}.

\newpage
\begin{wrapfigure}{l}{0.3\textwidth}
\begin{center}
\Huge \LaTeX
\end{center}
\caption{La mise en formex -- \LaTeX}
\end{wrapfigure}
Un des besoins du client, était la génération des factures et des devis au format PDF. Avant le développement du logiciel, ce besoin était
fait << à la main >>, en \LaTeX{}, avec un \textit{template} rédigé. Afin de regarder la même mise en forme des devis et des factures, nous
devions générer du \LaTeX{} en réutilisant ce template.\\ Une fois ce fichier \texttt{.tex} généré, nous faisons appel à un compilateur \LaTeX{} afin d'en sortir un fichier PDF.

\begin{wrapfigure}{r}{0.4\textwidth}
\begin{center}
\includegraphics[width=0.18\textwidth]{../beamer/logos/sqlite.png}~
\includegraphics[width=0.18\textwidth]{../beamer/logos/mysql.png}
\end{center}
\caption{Bases de données}
\end{wrapfigure}
Le logiciel utilise une base de données pour sauvegarder les différents clients, devis, factures etc… Le besoin initial était de pouvoir
sauvegarder ça sur un ordinateur : le système de SQLite permet cela très simplement, tout est sauvegardé dans un fichier binaire.\\ Une fois
avancé dans le projet, une autre solution est apparu : posséder un serveur de base de données afin d'utiliser le logiciel avec plusieurs
postes clients. Ce besoin a été couvert à l'aide de MySQL, ainsi le logiciel permet de choisir l'une ou l'autre des manières de procéder.


\subsection{Versionnement}
\begin{wrapfigure}{l}{0.4\textwidth}
\begin{center}
\includegraphics[width=0.28\textwidth]{../beamer/logos/git.png}\\~\\
\includegraphics[width=0.32\textwidth]{../beamer/logos/github.png}
\end{center}
\caption{Versionnement -- Git et Github}
\end{wrapfigure}
%% TODO replace … by references (section, subsection, …)
Étant 4 développeurs au sein de ce projet, il était indispensable de choisir un moyen de pouvoir travailler ensemble, simplement, mais
également de pouvoir annuler une erreur. Pour cela, nous avons choisi d'utiliser le système développé par Linus \bsc{Torvalds}, Git\footnote{Git
est le Système de Versionnement présenté dans l'UE DCLL}.\\
Le choix de Git s'est fait d'une part, car c'est un système de version distribué, et possédant un excellent système de branche, nous ayant
permis de mettre en place notre système de branche présenté section \ref{integration-continue}.\\
D'autre part, plusieurs plateformes
permettant de travailler avec Git existent sur Internet, l'une d'entre elle ayant particulièrement retenue notre attention: Github.\\
Github nous a ainsi permis de stocker notre code, noter les exigences à l'aide des issues, faire de la revue de code à l'aide des Pull
Requests(…), lier nos builds Travis(…) et la couverture de code à une pull requests, et plus simplement : communiquer entre nous.

\subsection{Qualité du code}
\subsubsection{Coveralls: Couverture de code}
Notre souhait était d'avoir un logiciel possédant 90\% de couverture de code par les tests. Afin de nous aider dans cet objectif, coveralls
nous indiquait le pourcentage, mais aussi les lignes testées ou non testées, tout en gardant un historique afin de savoir si nous
augmentions ou diminuions cette couverture.

\subsubsection{Travis: Intégration continue}
Lorsqu'un développeur envoie des données au serveur, Travis effectue automatiquement des actions afin de signaler si le build << passe >>,
ou échoue. Plus d'informations sur son fonctionnement section TODO \ldots

\subsubsection{Doxygen: Documentation technique}
La documentation technique s'est fait au moyen de Doxygen, outils très connu dans le monde C++ et permettant de générer cette documentation
en de nombreux formats différents, notamment HTML, XML, RTF, \LaTeX{}, \ldots

\begin{figure}[H]
\centering
\includegraphics[height=1.9cm]{../beamer/logos/travis.png}~~
\includegraphics[height=0.8cm]{../beamer/logos/doxygen.png}~~
\includegraphics[height=1.9cm]{../beamer/logos/coveralls.png}
\caption{Outils pour la qualité du code : Travis, Doxygen et Coveralls}
\end{figure}
\subsection{Organisation}
\subsubsection{IRC : les réunions}
Étant dans différents groupes de TP, et n'habitant pas au même endroit, il était difficile de se rencontrer régulièrement pour effectuer des
réunions d'avancements régulières\footnote{Notamment les « Mêlées » Scrum, pour plus d'information section TODO blalba}. La solution a été
d'utiliser un canal IRC, en cas de problème, nous pouvions demander de l'aide à quelqu'un du groupe de connecté, et si nous fixions une
réunions nous étions tous présents afin de discuter de nos avancées, problèmes et de ce qu'il restait à faire.

\subsubsection{Google Drive : Le backlog et l'organisation générale}
Nous avons utilisé Google Drive pour stocker plusieurs documents, notamment le \textit{Product Backlog}\footnote{Pour plus d'informations
section todo bla bla bla} qui était alimenté par le \textit{product owner}. Nous nous sommes également servit de Google Drive afin de rédiger les
rapports mensuels, mais aussi pour créer les diagrammes d'avancée d'un sprint.

\begin{figure}[H]
\centering
\includegraphics[height=0.12\textwidth]{../beamer/logos/irc.png}~~
\includegraphics[height=0.12\textwidth]{../beamer/logos/drive.png}
\caption{Outils pour l'organisation avec IRC et Google Drive}
\end{figure}


2 changes: 2 additions & 0 deletions documents/final-report/final-report.tex
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
\usepackage{lscape}
\usepackage{rotating}
\usepackage{epstopdf}
\usepackage{lipsum}
\usepackage{wrapfig}


\newcommand{\titre}{Bilan du Projet}
Expand Down

0 comments on commit da6f23c

Please sign in to comment.