M. DAMIR Ayoub
Soutenance le 20 Juin 2015
Membres de jury
Ddicace
A ma mre, qui m'a combl de son soutien et m'a vou un amour
inconditionnel. Tu es pour moi un exemple de courage et de sacrifice
continu. Que cet humble travail tmoigne mon affection, mon ternel
attachement et qu'il appelle sur moi ta continuelle bndiction.
A mes trs chers frres, je vous remercie pour votre amour, votre
soutien et vos encouragements
A tous mes chers amis, pour le soutien que vous maviez offert, je
vous dis MERCI
Remerciement
Rsum
Ce rapport dcrit le travail que jai ralis dans le cadre de lobtention de mon
diplme dingnieur dtat en Systmes dinformations lEcole Nationale des
Sciences Appliques Ttouan, il sest droul du 3 Mars au 05 juin 2015 effectu au
sein de la socit 4D Logiciel Maroc Rabat.
Abstract
This report describes the work I've done in the context of getting my state
engineering degree in Information Systems at the National School of Applied
Sciences Tetouan, it was held from March 3 to June 15, 2015 conducted within the
company 4D Software Morocco in Rabat.
This report is to describe the various stages that the project has passed in order
to achieve the current solution.
REMERCIEMENT....................................................................................................................................... 4
RESUME.................................................................................................................................................... 5
ABSTRACT................................................................................................................................................ 6
4D 4th Dimension
RH Ressources Humaines
Introduction Gnrale
Les entreprises en dveloppement logiciel sont en croissance constante
et poursuivent le but de livrer du logiciel de qualit qui rpond au besoin de
lutilisateur, dans les temps prescrits par le client. Afin de rpondre ces
critres, les entreprises doivent utiliser des processus de dveloppements
logiciel stricts. Il y a plusieurs processus disponibles qui apportent leurs
avantages et leurs inconvnients. Depuis quelques annes, lutilisation de la
mthodologie SCRUM semble gagner en popularit, mais peu dentreprises sy
aventurent.
SCRUM prsente une solution intressante pour les grandes entreprises
qui aimeraient gagner en flexibilit. En utilisant une mthode volutive de
dveloppement qui implique une plus grande participation du client dans le
processus de dveloppement, les deux parties voient leurs chances de succs
augmentes proportionnellement la qualit de leurs communications et de
leurs relations. En utilisant la mthodologie SCRUM dans les grandes entreprises,
la qualit du logiciel est accrue et les nouveaux besoins commands par la
ralit changeante du client sont considrs tout au long du processus. Une
synergie qui gagnerait tre reconnue.
Mon projet de fin dtude consiste mettre en place une application
de gestion de projet SCRUM en utilisant la plateforme Odoo de
dveloppement.
Ce rapport est structur comme suit : Le premier chapitre prsente le
contexte gnral du projet, le produit Odoo ainsi que les objectifs gnraux de
ce projet. Nous allons consacrer la seconde prsenter le cadre de
dveloppement agile dans lequel jai pu travailler. Cette partie permettra de
se familiariser avec la mthodologie SCRUM et son vocabulaire particulier. La
troisime partie exposera le projet, enfin la dernire partie prsentera les
technologies et les logiciels dont nous avons pu nous servir durant cette mission
ainsi le travail ralis durant chacune des itrations du projet.
1. Structure et organisation de 4D
1.1. Aperu de 4D
un client-serveur intgr
un serveur Web intgr
un systme de partage d'applications dynamiques intgr
Figure 3: Logo du produit 4D v13 Figure 1: Logo du produit Wakanda Figure 2: Logo de 4D logiciels
2. La plateforme Odoo
Odoo est un progiciel de gestion d'entreprise (ERP) destin intgrer
l'ensemble des donnes oprationnelles et de gestion de l'entreprise dans une
base de donnes unique, accessible par une interface web.
Architecture logicielle
La conception d'Odoo est oriente par une architecture MVC, des flux
de travail flexibles, une interface-utilisateur graphique dynamique, une
interface de communication interne XML-RPC, et un systme personnalisable
de comptes-rendus.
3.1.2. Jira
Description
Site web http://www.atlassian.com/fr/software/jira/overview
La gestion de projet dans OpenERP / Odoo repose sur les concepts suivants :
3.2. Problmatique
Daprs ce que nous avons vu, parmi les problmes que nous pouvons citer
cest :
Perte du temps
Perte dargent
Pour que la socit peut satisfaire ses besoins il doit avoir au moins 2
solutions
Inefficacit :
Tant quil n y a pas une solution qui inclut la gestion de ressources humaines
et la gestion de projets alors les indicateurs ne seront plus reprsentative du
rendement rel des membres de chaque quipe, ce qui implique une
inefficacit de la solution.
Perte dopportunits
Une mal gestion peut conduire la perte des projets, et par consquent
la perte du client.
La dmotivation
SCRUM prsente une solution intressante pour les grandes entreprises qui
aimeraient gagner en flexibilit. En utilisant une mthode volutive de
dveloppement qui implique une plus grande participation du client dans le
processus de dveloppement, les deux parties voient leurs chances de succs
augmentes proportionnellement la qualit de leurs communications et de
leurs relations. En utilisant la mthodologie SCRUM dans les grandes entreprises,
la qualit du logiciel est accrue et les nouveaux besoins commands par la
ralit changeante du client sont considrs tout au long du processus. Une
synergie qui gagnerait tre reconnue.
4. Conclusion
Dans ce chapitre qui prsente le contexte gnral du projet, on a inaugur
le chapitre par une prsentation de lorganisme daccueil 4D, dans la
deuxime partie du chapitre on a prsent le contexte gnrale du projet en
commenant par une tude de lexistant, puis on a voqus les
utiliser doivent
Le contrle se fait Une mauvaise tre
progressivement prise en compte parfaitement
chaque tape des changements connues
de la spcification Les
des besoins changements
Les phases de doivent tre faits
validation sont Ne contient pas avant lanalyse
prises en main trs les activits Excellent pour
tt dans le danalyses de les systmes
processus de risques requrant une
dveloppement grande sret
EN SPIRALE Sans cot lev, les cots et
donne des Le temps lvaluation des
indications sur les consacr risques est
risques majeurs lvaluation des important
Les fonctions risques est trop pour des projets
critiques haut lev pour des risque au
risque sont petits projets moins
dveloppes en Le temps mis moyennement
premier lieu planifier, valuer lev
La conception ne les risques, fixer les pour des projets
doit pas forcment objectifs, les long terme
tre termine prototypes peut dont les
Les utilisateurs tre excessif financements
finaux sont Ce modle est peuvent varier
intimement complexe les utilisateurs ne
associs toutes Une expertise en dfinissent pas
les tapes du valuation des clairement leurs
dveloppement risques est besoins
Le ncessaire la spcification
dveloppement La spirale peut des besoins est
se fait en tre infinie complexe
Source : http://patjo82.over-blog.com/article-etude-comparee-des-differents-
cycles-de-vie-de-logiciels-111005786.html , http://www.bobtuse.com/2009/01/whats-
swot-on-scrum.html
Et la chose plus importante, cest que Scrum rassemble les deux cots
Projet
3. La mthode Scrum
Comme pour toutes les fabrications, il est important davoir un procd
de fabrication du logiciel bien dfini et explicitement dcrit et document.
Les modles de cycle de vie du logiciel dcrivent un niveau trs abstrait et
idalis les diffrentes manires dorganiser la production. Les tapes, leur
ordonnancement, et parfois les critres pour passer dune tape une autre.
Description
Scrum - Agit comme un facilitateur.
Master - Sassurer de fournir lquipe Scrum, tout le ncessaire leur plein
potentiel.
- Cest un coordonnateur de ressources, un intermdiaire et non pas
un dirigeant.
Daily scrum : Cest une runion de planification qui dure 15 minutes et permet
aux dveloppeurs de faire un point de coordination sur les tches en cours et
sur les difficults rencontres.
Sprint planning Meeting : Toute l'quipe Scrum est prsente cette runion, qui
ne dure plus de 4 heures pour notre cas, pour planifier les user stories du
backlog du produit qu'elle a dcid de traiter pendant la prochaine itration
et comment elle s'organisera pour y parvenir.
Sprint Backlog : En dbut de sprint, un but est dcid. Pour atteindre cet
objectif, l'quipe de dveloppement choisit lors de la runion de planification
de sprint quels lments du Product Backlog seront raliss. Ces lments sont
alors groups dans un backlog dite Sprint Backlog.
Par exemple, la figure 11 reprsente une User Story qui vaut 3 points, cette User
Story reprsente une complexit triple par rapport une autre qui en vaut 1 (le
point n'est pas une mesure de charge car il deviendra arbitraire.). Pour les
valeurs, on utilise souvent les premires valeurs de la suite de Fibonacci (1, 2, 3,
5, 8, 13,), qui vitent les difficults entre valeurs proches (8 et 9 par exemple).
4.1.4. La vlocit
La vlocit de l'quipe, est le nombre de points que lquipe peut
raliser en un sprint. La vlocit peut s'estimer en regardant les sprints
prcdents, supposer que la composition de l'quipe et la dure des sprints
soient stable. Elle peut aussi tre dfinie chaque sprint avec un planning bas
sur l'engagement de l'quipe.
Concernant la vlocit de mon quipe qui se compose de un membre,
jai pu raliser 8 points pendant le premier Sprint. En partant de cette vlocit
et du total de points raliser (85 points), on peut dterminer le nombre de
sprints qui seront ncessaires pour terminer le projet (6 sprints).
Nous pouvons voir que cette user story estim 2 points, soit 16
heures/homme de travail est alors dcoup en 3 tches : la tche 3.1, 3.2, 3.3,
qui sont ralisable respectivement en 3, 5, et 2 heures/homme.
4.2.2. BurndownChart
Cest galement durant la runion de Daily Scrum que lquipe met
jour le BurndownChart, une courbe qui permet de visualiser lavancement de
lquipe sur le sprint. La figure suivante reprsente le BurndownChart du 4me
Sprint :
La diffrence entre la ligne idale qui est en noire et celle effective qui
est en rouge peut tre analyse pour en soutirer des informations prcieuses.
Si la ligne effective est suprieur la ligne idale, cela veut dire qu'il y a plus
de travail restant que celui prvu initialement. contrario, si la ligne est
infrieure, on aura moins de travail restant que celui planifi.
5. Conclusion
Dans ce chapitre nous avons prsent la mthodologie de travail ainsi
que nous avons prpar le plan de releases, par la suite nous allons dvoiler les
outils et les langages de conception et de dveloppement que nous avons
utiliss durant la ralisation du systme.
I- Exigence du projet
II- Choix de la technologie
III- Outils utiliss
IV- Conclusion
1. Exigence du projet
Une architecture logicielle exprime un schma dorganisation
structurelle fondamentale pour des systmes logiciels. Il fournit un ensemble de
sous-systmes prdfinis, spcifie leur responsabilit, et inclut des rgles et des
guides pour organiser les relations entre eux.
logique.
Vue les donnes sont envoyes, par le modle, la vue qui les prsente
lutilisateur.
2. Choix de la technologie
2.1. Etude comparative entre les ERP existant sur le
march
Pour raliser cette tude comparative entre les Plateformes nous avons
utilis Google trends , cet outils va nous permettre de savoir la frquence de
recherche de ces termes sur le moteur de recherche Google. Ainsi les rsultats
nous ont donns une ide globale sur le Framework le plus utilis ou autrement
dit le Framework qui a la plus grande quantit de ressources sur internet
Pour avoir une ide sur le nombre de ressources [JAVA/.NET] qui sont archivs
dans le Datacenter de Google. On a utilis le moteur de recherche
directement et on a obtenu les rsultats suivants.
Figure 20: Nombre de rsultats sur le nombre de recherche Google pour le terme sage
Figure 15: Nombre de rsultats sur le nombre de recherche Google pour le terme odoo
Figure 16: Nombre de rsultats sur le nombre de recherche Google pour le terme sap
Figure 20: Nombre de rsultats sur le nombre de recherche Google pour le terme sage
- Dveloppement communautaire
- Abondances de versions
- Dficit de documentation
- Dficit de comptences
Trois tiers client / serveur / base de donnes, client Web en Javascript, les
modules serveurs backend en Python
- Environ 2 000 000 dutilisateurs travers le monde en grande majorit issus des
pays mergeants
3. Outils utiliss
3.1. Python
Le langage Python est plac sous une licence libre proche de la licence
BSD2 et fonctionne sur la plupart des plates-formes informatiques,
des supercalculateurs aux ordinateurs centraux, de Windows Unix en passant
par GNU/Linux, Mac OS, ou encore Android, iOS, et aussi avec Java ou
encore .NET. Il est conu pour optimiser la productivit des programmeurs en
offrant des outils de haut niveau et une syntaxe simple utiliser.
3.2. QWEB
QWEB est le moteur de template principal utilis par Odoo. Il est un template
XML moteur et utilis principalement pour gnrer des fragments et des pages
HTML.
Les directives de modle sont spcifis comme des attributs XML avec le
prfixe t-, par exemple t-si pour conditionnels, avec des lments et d'autres
attributs tant rendu directement.
3.3. HTML5-CSS3
HTML5 (HyperText Markup Language 5) est la dernire rvision majeure
d'HTML (format de donnes conu pour reprsenter les pages web). Cette
version est en dveloppement en 2013. HTML5 spcifie deux syntaxes d'un
modle abstrait dfini en termes de DOM : HTML5 et XHTML5. Le langage
comprend galement une couche application avec de nombreuses API, ainsi
qu'un algorithme afin de pouvoir traiter les documents la syntaxe non
conforme. Le travail a t repris par le W3C en mars 2007 aprs avoir t lanc
Le terme CSS est l'acronyme anglais de Cascading Style Sheets qui peut se traduire
par "feuilles de style en cascade". Le CSS est un langage informatique utilis sur
l'internet pour mettre en forme les fichiers HTML ou XML. Ainsi, les feuilles de style, aussi
appel les fichiers CSS, comprennent du code qui permet de grer le design d'une
page en HTML.
3.4. XML
L'Extensible Markup Language (XMLnote 1, langage balise extensible
en franais) est un langage informatique de balisage gnrique qui drive du
SGML. Cette syntaxe est dite extensible car elle permet de dfinir diffrents
espaces de noms, c'est--dire des langages avec chacun leur vocabulaire et
leur grammaire, COMME XHTML, XSLT, RSS, SVG Elle est reconnaissable par
son usage des chevrons (< >) encadrant les balises. L'objectif initial est de
faciliter l'change automatis de contenus complexes (arbres, texte riche)
entre systmes d'informations htrognes (interoprabilit). Avec ses outils et
langages associs, une application XML respecte gnralement certains
principes :
3.5. Postgresql
Lhbergeur Git le plus connu et le plus utilis est GitHub, qui offre de
lhbergement gratuit de projets publics, et propose une version payante pour
particuliers ou entreprises, pour des projets privs. Bitbucket dAltassian se
distingue de GitHub en offrant des projets privs gratuits pour un nombre limit
de collaborateurs par projet. Enfin, ces hbergeurs disposent tous des services
payants de dploiement de serveurs Git privs en self-hosting auprs
dentreprises. Fortement inspir de GitHub, est entirement Open Source et
sadresse COMME solution gratuite dhbergement de projets Git.
c. Jira
JIRA est un systme de suivi de bugs, un systme de gestion des incidents,
et un systme degestion de projets dvelopp par Atlassian Software Systems.
4. Conclusion
On a commenc ce chapitre par la prsentation des exigences du
projet et larchitecture logicielle de mon systme. Aprs on a prsent
larchitecture de dveloppement choisi ainsi que outils utiliss pour la
ralisation de ce projet, dans le chapitre suivant nous allons dtailler les
diffrents releases du projet.
I- Release 1
II- Release 2
Au cours de ce chapitre, nous allons traiter les User Stories de mes sprints
pour produire un incrment potentiellement livrable.
1. Premier Release
Ce premier release se prsente comme le plus essentiel et prioritaire des
releases car il contient les fonctionnalits principales de projet, o on doit
raliser la gestion des projets, des histoires utilisateurs, des taches, des Sprints,
des membres de projets, et il contient 3 Sprints.
1.1. Sprint 1
Une fois, nous avons dfini la longueur du Sprint, il est temps de dcider
quelles histoires inclure dans ce dernier. Plus prcisment, quelles histoires de
notre backlog du produit seront incluses dans le backlog du sprint. Dans notre
cas les histoires sont classifies par leurs priorits, le tableau rsume donc le
backlog de mon premier sprint :
1.1.1. Backlog
Les user stories du premier sprint
1.1.1. Conception
1.1.1.1. Choix formalisme UML
Vue le dploiement de lapplication et lextension future, une
modlisation objet apparait la plus adapte, en effet lobjet a fait ses preuves
dans la ralisation dapplication Web.
Aprs avoir exprim les spcifications fonctionnelles, nous allons traduire ces
besoins nous allons traduire ces besoins-l en des diagrammes fonctionnels
UML
Les acteurs : Ils sont des entits externes qui interagissent avec le systme,
comme une personne humaine ou un robot.
Les cas dutilisation : est une description des interactions qui vont permettre
l'acteur d'atteindre son objectif en utilisant le systme.
Pour que le manager puisse grer ses projets, il doit premirement sauthentifier
Ladministrateur peut faire un cas dutilisation qui est spcifique, cest la gestion
des permissions
Il s'agit d'une vue statique, car on ne tient pas compte du facteur temporel
dans le comportement du systme. Le diagramme de classes modlise les
concepts du domaine d'application ainsi que les concepts internes crs de
toutes pices dans le cadre de l'implmentation d'une application. Chaque
langage de Programmation orient objet donne un moyen spcifique
d'implmenter le paradigme objet (pointeurs ou pas, hritage multiple ou pas,
etc.), mais le diagramme de classes permet de modliser les classes du
systme et leurs relations indpendamment d'un langage de programmation
particulier.
Les principaux lments de cette vue statique sont les classes et leurs
relations : association, gnralisation et plusieurs types de dpendances, telles
que la ralisation et l'utilisation.
1.1.2. Ralisation
Dans cette partie on va parler des diffrentes fonctionnalits ralises
pendant ce sprint.
1.1.3. Conclusion
Dans cette partie jai conue ralis et test le premier sprint du 1er
release du projet, qui a regroup plusieurs fonctionnalits de bases de la
plateforme, nous avons dtaills les diffrentes tapes adoptes par la
mthode Scrum. Dans la partie suivante on va attaquer, avec la mme
approche le deuxime sprint de ce release.
1.2. Sprint 2
En partant sur le mme principe que le sprint prcdent, nous
commenons par les spcifications fonctionnelles. Ensuite la conception et
finalement les tests cette fois ci ne sont pas disponibles vu que cest la mme
procdure qui se rpte. Le tableau rsume donc le backlog de notre premier
sprint.
1.2.1. Backlog
Les user stories du premier sprint :
Gestion des Sprints : Dans chaque projet le Manager peut grer les
sprints associ ce projet.
Gestion des histoires : Le manager a le droit de crer, modifier, ou
supprimer une histoire, lors de la cration dune user story le manager
doit spcifier le projet et le Sprint, et lutilisateur peut modifier ltat de
lhistoire en la glisser dans le taskboar vers le nouveau tat.
Gestion des taches : Les taches sont grer par les dveloppeurs et les
managers et ils peuvent modifier ltat de la tche en glissant la tache
vers le nouvel tat ( faire , en cours , dj fait ).
1.2.2. Conception
1.2.2.1. Vue cas dutilisation : Diagramme de cas dutilisation
Toutes les fonctions qui se trouvent dans ce sprint sont reli
ladministrateur o il peut dfinir la vlocit de lquipe, ensuite il peut entrer
dans chaque sprint pour grer les histoires, et enfin faire la gestion des taches.
et elle a une dure de vie, aprs une certaine date elle ne sera plus
utilis.
Project_task : on enregistre les taches des histoires. avec lestimation, le
nom, priorit, description, tat, il doit tre reli avec le timesheet des
employes.
1.2.3. Ralisation
Dans cette partie on va parler des diffrentes fonctionnalits ralises
pendant ce sprint.
Cette page reprsente lensemble des histoires du projet en les classifiant par
Sprint, et cest lespace de gestion du Backlog
1.2.4. Conclusion
Dans cette partie jai conue ralis et test le deuxime sprint du 1er
release du projet, qui a ajout de nouvelles fonctionnalits et complter
dautres. Dans la partie suivante on va attaquer, avec la mme approche le
troisime et dernier Sprint de ce release.
1.3. Sprint 3
Le sprint 3, est le dernier sprint du release, avait comme but le
dveloppement des dernires fonctionnalits ncessaires la livraison dun
tout premier produit prt tre utilis.
1.3.1. Backlog
Les user stories du troisime Sprint :
1.3.2. Conception
1.3.2.1. Vue cas dutilisation : Diagramme de cas dutilisation
1.3.3. Ralisation
A ce stade on doit avoir une ide sur linterface.
Figure 41 : Le BurndownChart
1.3.4. Conclusion
Dans ce chapitre on a analys, conu, ralis et test le premier release
du projet, il est alors maintenant potentiellement livrable. Il est temps de passer
au prochain Release. A ce stade, on a donc russi dvelopper le release 1
pour arriver un produit fonctionnel. Les besoins fonctionnels sont affins sprint
aprs sprint, et la livraison des dveloppements aprs chaque sprint permet de
rorienter le projet si ncessaire.
2. Deuxime Release
Notre deuxime release est constitu de 3 sprints, cest la deuxime version
livrable du projet. Nous allons analyser, dtailler et tester les diffrentes phases
du release.
2.1. Sprint 4
Comme les sprints du premier release nous avons dfini le but de ce Sprint qui
est dans un premier temps la gestion des congs, qui sera une configuration
du module standard de gestion de congs intgr dans la plateforme Odoo.
2.1.1. Backlog
Les user stories du quatrime Sprint :
2.1.2. Conception
2.1.2.1. Vue cas dutilisation
Dans cette partie du chapitre on va parler et dtailler les options de la partie
de gestion de congs.
Dans ce sprint nous avons dfini les diffrentes fonctionnalits de la gestion de congs et qui
sont associ au Manager Ressources Humaines
2.1.3. Ralisation
Aprs ltape de la conception et comme les chapitres prcdents nous
allons entamer la partie ralisation du sprint, nous allons donner une ide sur
les diffrentes interfaces produites pendant le sprint.
2.1.4. Conclusion
Dans ce chapitre nous avons analys, conu, ralis et test le
quatrime sprint du deuxime release du projet qui a ajout des fonctionnalits
lapplication et affin dautres. Il est temps de passer au cinquime et avant
dernier sprint
2.2. Sprint 5
Le sprint 5, avait comme but le dveloppement des fonctionnalits
ncessaires la livraison dun produit prt tre utilis.
2.2.1. Backlog
Les user stories du cinquime Sprint :
2.2.2. Conception
2.2.2.1. Vue cas dutilisation
2.2.3. Ralisation
Aprs la conception et comme les chapitres prcdents on va
attaquer la partie ralisation en donnant une ide sur linterface dutilisateur.
2.2.4. Conclusion
Dans cette partie, jai dtaill les diffrentes tapes parcourue dans le
cinquime Sprint pour arriver ce rsultat, maintenant il est temps pour
passer au dernier Sprint.
2.3. Sprint 6
Le sprint 6, est le dernier sprint du projet, avait comme but le
dveloppement des dernires fonctionnalits ncessaires la livraison de la
dernire version du projet.
2.3.1. Backlog
Les user stories du sixime Sprint :
Suivi des heures prestes : Dans chaque projet le Manager peut suivre
lavance de chaque tche par rapport ses heures prestes.
Validation des timesheets : Le manager a le droit de refuser ou de
valider les heures prestes, et les soumettre la facturation.
Les factures : Le manager peut imprimer et envoyer les factures aux
clients, aprs la validation de ces derniers.
2.3.2. Conception
2.3.2.1. Vue cas dutilisation
2.3.3. Ralisation
2.3.3.1. La cration et lenvoie des factures
2.3.4. Conclusion
Dans ce chapitre nous avons analys, conu, ralis et test le deuxime
release du projet, il est alors maintenant potentiellement livrable.
Bibliographie et webographie
Bibliographie
Webographie
o https://www.odoo.com/documentation/8.0/ [2015-02-28]
o https://doc.odoo.com/ [2015-03-01]
o https://www.odoo.com/documentation/8.0/howtos/
[2015-04-02]
o http://useopenerp.com/v8/ [2015-03-15]
o https://apps.openerp.com/apps [2015-03-01]
o https://www.odoo.com/fr_FR/forum/help-1 [2015-03-15]