********
MINISTERE DE L’ENSEIGNEMENT SUPERIEUR, DE LA
RECHERCHE SCIENTIFIQUE ET DE LA TECHNOLOGIE
********
DIRECTION GENERALE DES ETUDES TECHNOLOGIQUES
********
INSTITUT SUPERIEUR DES ETUDES TECHNOLOGIQUES
DE CHARGUIA
********
Département Technologies de l’Informatique
RAPPORT DE
Projet de Fin d’Etudes
Présenté en vue de l’obtention du diplôme De
Licence appliquée en technologies d’informatique
Sujet
On profite par le biais de ce rapport d’exprimer nos vifs remerciements à toute personne
contribuant de près ou de loin à la réalisation de ce projet.
On tient à remercier vivement Mme Ahlem Tayachi, notre cher professeur et encadrant, qui a
contribué, énormément, à la réalisation de ce projet. Un grand merci pour ses remarques, ses
directives, sa bienveillance, et l’intérêt qu’elle porte à ses étudiants.
Un merci bien particulier adressé également à Mr. Radhouani Aref pour sa disponibilité, ses
conseils et l’aide qu’il nous a accordés et surtout pour sa patience terminables qui a été déterminantes
dans l’élaboration de ce travail.
On tient, également à remercier tous nos amis(e)s qui ont fait de ces trois années à l’ISET
Charguia des années pleines de bons souvenirs.
Abstract
This report describes the work we carried out in the context of obtaining our ISETCH Computer
Technology License, which took place from 6 February to 12 May 2017 at the National Training
Center Trainers and Engineering Training in rades.Over the next three months, our mission is to
develop a project management application with an agile development framework. The application
will enable development teams to collaborate on projects piloted using Scrum agile methodology.
The purpose of the application is to facilitate the project management by offering a digital version of
the numerous artifacts of the Scrum method (Product Log, Iterations, Maps, Tasks and Task Table
etc.)The purpose of this report is to describe the different stages in which the project was carried out
in order to achieve the present solution.
تلخيص
العالي:يصف هذا التقرير العمل الذي قمنا بتنفيذه للحصول على االجازة التطبيقية لتطوير االنظمة المعلوماتية بالمعهد
للدراسات التكنولوجية بالشرقية وقد تم اجراء هذا المشروع في المركز الوطني للتدريب المدربين والموانئ في هندسة
التطبيق سوف لفرق. مهمتنا كانت تطوير اداة إلدارة المشاريع في إطار الطرق الرشيقة، خالل األشهر الثالثة.التكوين
العمل على قيادة مشاريعهم والغرض من هذا التطبيق هو تسهيل إدارة المشاريع من خالل تقديم نسخة رقمية االداة سكروم
وهذا التقرير هو لوصف مختلف الخطوات التي اجتازها المشروع كي يصل إلى النتيجة الحالية.
Table des matières
INTRODUCTION GÉNÉRALE.............................................................................................................................1
Introduction..............................................................................................................................................................4
I. Présentation de la société................................................................................................................................4
I.1 Historique....................................................................................................................................................4
I.2 Missions.......................................................................................................................................................4
Introduction............................................................................................................................................................17
Conclusion..............................................................................................................................................................25
Introduction............................................................................................................................................................27
CHAPITRE 4 CONCEPTION................................................................................................................50
Introduction............................................................................................................................................................51
V. Déploiement...................................................................................................................................................71
Conclusion..............................................................................................................................................................72
CHAPITRE 5 LA RÉALISATION........................................................................................................73
Introduction............................................................................................................................................................74
I. Environnement de développement.................................................................................................................74
I.1 Environnement matériel............................................................................................................................74
I.2 Environnement logiciel..............................................................................................................................75
I.2.1 Les Framework.................................................................................................................................75
I.2.2 Les Outils..........................................................................................................................................76
III. Chronogramme..........................................................................................................................................83
Conclusion..............................................................................................................................................................84
CONCLUSION GÉNÉRALE................................................................................................................................85
BIBLIOGRAPHIE ET NÉOGRAPHIE...............................................................................................................86
Liste des figures
Figure 1 Interface grafique de Rally.......................................................................................................5
Figure 2 Interface grafique VersionOne.................................................................................................6
Figure 3 Interface grafique ScrumDesk..................................................................................................6
Figure 4 Interface grafique ScrumWorks...............................................................................................7
Figure 5 Interface grafique Agilo...........................................................................................................8
Figure 6 sommaire des outils évalués.....................................................................................................8
Figure 7 critères d'evaluation................................................................................................................11
Figure 8 diagramme de cote totale pour chaque outil...........................................................................11
Figure 10 Graphique d’effort individuel...............................................................................................12
Figure 11 Tableau comparatif...............................................................................................................13
Figure 12 Cycle en cascade..................................................................................................................14
Figure 13 : Diagramme UML utilisé....................................................................................................15
Figure 14 Processus de développement « scrum »................................................................................19
Figure 15 Exemple de décomposition d'une storie en tâches................................................................22
Figure 16 Exemple de Backlog Produit................................................................................................23
Figure 17 Burndown Chart...................................................................................................................24
Figure 18 Graphique de vélocité...........................................................................................................25
Figure 19 Les acteurs...........................................................................................................................28
Figure 20 Diagramme de cas d’utilisation générale..............................................................................32
Figure 21 : Diagramme de cas d'utilisation " Gestion d’équipe ".........................................................35
Figure 22 Diagramme de cas d'utilisation " gérer itération".................................................................38
Figure 23 Diagramme de cas d'utilisation " Gérer stories"...................................................................38
Figure 24 Diagramme de cas d'utilisation " Gérer taches"....................................................................39
Figure 25 diagramme de cas d’utilisation « visualiser artéfacts ».........................................................42
Figure 26 Diagramme séquence système « S’authentifier»..................................................................43
Figure 27 Diagramme séquence système « Associer une storie â une itération ».................................44
Figure 28 Diagramme séquence système « démarré une itération ».....................................................45
Figure 29 Diagramme séquence système « Restaurer storie»...............................................................47
Figure 30 Diagramme séquence système « Ajouter tache »..................................................................48
Figure 31:architecture Java EE d’une application web en trois couches...............................................52
Figure 32 Diagramme de classe............................................................................................................57
Figure 33 Digramme de séquence objet « S’authentifier »...................................................................59
Figure 34 Digramme de séquence objet « Accéder à un projet »..........................................................60
Figure 35 Diagramme de séquences « S’engager à une tache »............................................................61
Figure 36 Digramme de séquence objet« Terminer une tâche »...........................................................62
Figure 37 Diagramme d'activité "Compléter une storie"......................................................................64
Figure 38 Diagramme d’activité « Compléter une iteration »...............................................................65
Figure 39 Diagramme d’activité « Compléter un projet »....................................................................66
Figure 40 Charte graphique "Dashbord projet"....................................................................................67
Figure 41 Charte graphique "Dashbord iteration".................................................................................68
Figure 42 Charte graphique "Tableau de bord storie"...........................................................................69
Figure 43 Chart graphique "grafique de vélocité"...............................................................................70
Figure 44 Charte graphique "graphique d'avancement"........................................................................71
Figure 45 Diagramme de déploiement..................................................................................................72
Figure 46 Interface graphique « Page d'index »....................................................................................78
Figure 47 Interface graphique « Page d’authentification »...................................................................78
Figure 48 Interface graphique « Tableau de bord projet »....................................................................79
Figure 49 Interface graphique « Page d'accueil ».................................................................................80
Figure 50 Interface graphique « Page d'équipe »..................................................................................80
Figure 51 Interface graphique « Page de graphique d'avancement »....................................................81
Figure 52 Interface graphique « Page de vélocité »..............................................................................81
Figure 53 Interface graphique « Tableau de bord storie »....................................................................82
Figure 54 Interface graphique « Page rétrospectives ».........................................................................82
Figure 55 Diagramme de Gant.............................................................................................................84
Introduction générale
Les entreprises en développement logiciel sont en croissance constante et poursuivent
le but de livrer du logiciel de qualité qui répond au besoin de l’utilisateur, dans les temps
prescrits par le client.
Afin de répondre à ces critères, les entreprises doivent utiliser des processus de
développements logiciel stricts. Il y a plusieurs processus disponibles qui apportent leurs
avantages et leurs inconvénients. Depuis quelques années, l’utilisation de la méthodologie
SCRUM semble gagner en popularité, mais peu d’entreprises s’y aventurent.
SCRUM présente une solution intéressante pour les grandes entreprises qui aimeraient
gagner en flexibilité. En utilisant une méthode évolutive de développement qui implique une
plus grande participation du client dans le processus de développement, les deux parties
voient leurs chances de succès augmentées proportionnellement à la qualité de leurs
communications et de leurs relations.
En utilisant la méthodologie SCRUM dans les grandes entreprises, la qualité du
logiciel est accrue et les nouveaux besoins commandés par la réalité changeante du client sont
considérés tout au long du processus. Une synergie qui gagnerait à être reconnue.
Notre projet de fin d’étude consiste à mettre en place une application de gestion de
projet SCRUM en utilisant la plateforme Java Enterprise Edition. Ce rapport est structuré
comme suit :
Le premier chapitre " La présentation du cadre du projet" qui permet de placer le projet dans
son contexte général en présentant l'organisme d'accueil ainsi qu'une brève description du
projet.
Le second chapitre " Introduction au méthodes agiles et SCRUM " constitue à
présenter de quoi il s’agit les methode agiles et Scrum qui va être la base de notre application
Le troisième chapitre " La spécification des besoins " constitue la première phase de
l’analyse des besoins fonctionnels et non fonctionnels. Dans ce chapitre, on va dévoiler les
principales exigences de notre plateforme et présenter une analyse de ses exigences grâce à
des diagrammes de cas d’utilisation détaillés.
Le troisième chapitre " La conception " constitue le corps du rapport. Ce chapitre sera
consacré à la conception détaillée de la plateforme.
Le dernier chapitre " La réalisation" détaille tous les outils utilisés pour la conception
et le développement de la plateforme ainsi que quelques captures écran de la version finale de
notre système.
2
Chapitre 1
Présentation du cadre du projet
3
Introduction
Au cours de ce premier chapitre, on va présenter, tout d’abord, l’entreprise d’accueil ensuite
notre projet d’une manière succincte ainsi que l’étude de l’existant du projet, suivie d’une
critique pour pouvoir dégager les contraintes à respecter dans le développement de
l’application. La méthodologie adoptée pour la réalisation du projet sera par la suite décrite.
I. Présentation de la société
Le Centre National de Formation de Formateurs et d’Ingénierie de Formation (CENAFFIF)
est un établissement public relevant du Ministère de la Formation Professionnelle et de
l’Emploi tunisien.
I.1 Historique
1964 : création de l’Institut National de la formation, du perfectionnement
professionnel et de la productivité,
1993 : promulgation de la Loi n° 12 – 93 qui le transforme en Centre National de
formation de formateurs et d’ingénierie de formation.
2003 : promulgation de la Loi n° 77 –03 qui en fait un établissement public non
administratif (EPNA), à l’instar des deux autres organismes nationaux de formation
professionnelle : l’Agence Tunisienne de formation professionnelle (ATFP) et le
Centre National de formation continue et de promotion professionnelle (CNFCPP).
I.2 Missions
Arrêter les méthodologies relatives aux différents domaines de l'ingénierie de la
formation.
Elaborer et actualiser les programmes de formation professionnelle et aider à leur
implantation dans les établissements de formation.
Produire les outils et moyens pédagogiques et didactiques nécessaires à la bonne
application des programmes de formation.
Elaborer les plans de formation technique, pédagogique et fonctionnelle visant la
qualification et le recyclage des personnels de formation relevant des secteurs public
et privé, les mettre en œuvre et en évaluer les résultats.
Promouvoir la recherche appliquée à l'ingénierie et à l'innovation pédagogique dans le
domaine de la formation et assister les établissements de formation dans l'implantation
des nouveaux modes d’organisation pédagogique.
4
II. Etude de marché
Une étude de marché est un travail de collecte et d’analyse d’informations ayant pour but
d’identifier les caractéristiques d’un marché. Le terme d’étude de marché recouvre dans la
pratique de nombreux types d’études de nature différentes. L’étude de marché peut se situer
sur un plan général et aborder les grandes composantes d’un marché existant (demande,
concurrence, produits, environnement, distribution, taille du marché, etc.).Elle peut également
se situer dans une logique de projet commercial et viser à mesurer les chances de réussite du
lancement d’un nouveau produit et les potentialités de ce futur marché.
II.1.1 Rally
Rally est une offre assez séduisante sur le papier (à vérifier à l’usage. Il s’engage bien sûr à
garantir performance et confidentialité. Si nécessaire, il peut cependant être vendu dans sa
version d’installation sur site, les tarifs diffèrent sans doute dans ce cas de figure La
couverture en terme de fonctionnalités est très large et les possibilités d’intégration avec
d’autres outils sont relativement nombreuses (Gestionnaires de version, de plan de test, outils
d’intégration continue,…). Une version Community gratuite mais limitée permet de se faire
une bonne idée de l’outil. Un autre avantage avec Rally est l’accompagnement
5
méthodologique Agile. Rally est particulièrement actif dans la communautés Agile : livres
blancs, séminaires, articles, etc.[2]
II.1.2 VersionOne
VersionOne, créé en 2002, connue pour son sondage State of Agile Survey, est également une
application web de product management agile, pour les équipes de développement de toutes
tailles.Version one est surtout utilisé dans les grand groupe et les PME. Il est assez peu utilisé
en France (d’après mes informations) .VersionOne est très orienté Scrum dans sa gestion de
projet/produit. [2]
II.1.3 ScrumDesk
6
Figure 3 Interface grafique ScrumDesk
Les développeurs de Mountain Goat offre logicielle ScrumDesk , un outil de gestion de projet
scrum utilisé pour des projets d'équipe, scénarisation , la planification , le suivi des progrès ,
l'intégration et rétrospection . Dans une interface storyboard de style , ScrumDesk propose des
cartes d'histoire , la visualisation du carnet de commandes et les différentes méthodes
d'affichage de données visuelles , y compris vue de bureau , vue grille , le conseil de la tâche
et styles de carte d'arbres. ScrumDesk suivi de l'avancement du projet via des feuilles de
temps , des carnets , des camemberts d'état. et des rapports de comparaison . Disponible en
ligne , ScrumDesk vient dans des versions gratuites et d'abonnement , et fonctionne sur les
plates-formes Windows XP et Vista ..[1]
II.1.4 ScrumWorks
Danube propose deux versions de ScrumWorks, une version limitée appelée Basic et une
version complète payante appelée Pro. Pour la version payante pour une équipe de 10
personnes sur un an, il faut compter 2 050 €. A ce prix là, j’ai presque envie de dire :
« pourquoi s’en priver ? » mais tout dépend du coût du projet bien évidemment. ScrumWorks
ne couvre cependant pas les besoins suivants : organisation et déroulement des plans de test,
suivi des anomalies, wiki (centralisation des informations du projet).[2]
7
II.1.5 Agilo
8
• L'extensibilité se référant à savoir si l'outil peut être modifié ou étendu. Ici, nous avons
évalué si un outil fourni un accès au code source, et s'il était offert sur une licence
commerciale ou open source.
• L'utilisabilité concernant l'utilité générale de l'outil. Ici, nous avons évalué les outils
uniquement pour leur facilité d'utilisation, aussi en tenant compte du fait qu'il fallait étudier
l’outil (Documentation et tutoriels).
•La connectivité décrivant les connecteurs, ou les plug-ins, fournis par les fournisseurs
d'outils tels que les environnements de développement (IDE), systèmes de suivi des bugs.Ici,
nous avons évalué la disponibilité de ces connecteurs; Nous avons également pris en compte à
la fois leur nombre et leur variété.
• La recherche faisant référence aux capacités de recherche de l’outil. Ici, nous avons évalué
la disponibilité de la recherche, en tenant compte des facteurs de recherche.
• Le Groupement debout pour pouvoir regrouper les éléments dans un carnet de produits.
Nous avons évalué si l'outil était activé le regroupement d'articles de carnet de produits.
• L'édition simultanée implique si plusieurs utilisateurs pourraient éditer simultanément le
même artefact dans l'outil. Bien que cela puisse sembler une exigence fondamentale pour les
outils.
• La Suivi de l'état de l'histoire en se référant à l'opportunité de suivre l'état d'une histoire.
Ici, nous avons évalué si l'outil permet d'enregistrer la progression de l'histoire. Le statut
Pourrait simplement être représenté comme une chaîne,
• La suivi général de l'état Avoir une vue globale sur l’avancement d’un projet, nombre
d’itérations, nombres des stories achevés.
• Backlog du sprint traitant de la capacité de créer et Gérer les stories d’une itération. Ici,
nous avons évalué si la possibilité de classer par ordre de priorité ces éléments.
• Estimation concernant la capacité d'estimation des stories et tâches. Pour ce critère, nous
avons évalué si il’était possible de saisir des estimations d'histoires et de tâches.
• Stories. Ici, nous avons évalué les options proposées pour créer et décrire des stories.
• Tâches faisant référence aux tâches requises pour la mise en œuvre d'un storie. Nous avons
évalué s'il était possible d’abaisser les histoires d'utilisateurs dans des tâches plus petites dans
un d’itération.
• Les équipes se réfèrent à la gestion de l'équipe. Pour ce critère, nous avons évalué s'il était
possible de créer des équipes au sein de l'outil, assigner les membres de l'équipe et apporter
des modifications à la capacité de l'équipe au fil du temps.
9
• Planification couvrant la capacité à supporter la planification de l’itération, c'est-à-dire
sélectionner les éléments du backlog et en les entrant dans une nouvelle itération. Nous avons
évalué si l’était possible, et si la capacité de l’itération créée était automatiquement assortie à
l'équipe affectée à cette itération.
• Progrès relatifs à l'état du storie ou de la tâche à un plus grand détail. Ici, nous avons évalué
si l'outil a permis d'entrer la quantité de travail effectuée sur une histoire ou une tâche, et s'il
était également possible de voir la quantité de travail restante.
• Tableau de bord couvrant la fourniture d'un tableau de tâches virtuel pour Stockant les
stories et les tâches des utilisateurs. Ici, nous avons évalué La disponibilité d'un tableau de
bord, et, dans l'affirmative, qu'il s'agisse Interactif et s'il était possible de faire glisser et
déposer Les tâches et les stories sur ce tableau.
• Burndown décrivant si l'outil fait des mis a jours et les enregistre sur un graphique
d’avancement en agissant avec toutes la modification possible.
• Lieu de travail à distance relatif à la possibilité d'accéder à l’outil À distance. Le plus
souvent, cela implique qu'un outil doit Être déployé en tant qu'application Web afin que
l'utilisateur puisse accéder même en dehors du réseau de bureau. Ici, nous avons évalué si une
telle opportunité était disponible. [3]
10
Planification 6,0 4,0 7,0 7,0 4,0
0
Version One ScrumWorks Rally Scrum Desk Agilo
L'évaluation nous a conduits à deux conclusions importantes. Tout d'abord, nous avons
remarqué que les outils étaient ciblés vers les maitres de mêlée et l’équipes de développement
plutôt que les propriétaires du produit. La deuxième conclusion, concernant L'utilisabilité des
outils étudiés, on a remarqué que la richesse au niveau de fonctionnalités affecte négativement
la facilité de l’utilisation. Pour cela on va réfléchir a une solution qui comble ce vide.
11
II.3 Solution proposée
Notre solution va être de développeur un outil de gestion de projet agile selon le modèle
Scrum(la méthode agile de développement logiciel) qui va être facile à utiliser et nécessitant
le moins de travail possible,
Interface agronomique, interactifs et captivants
Contrôle d’accès selon les rôles, oblige une équipe Scrum à respecter les limites de chaque
rôle afin de les impliquer tous dans le déroulement d’un projet.
12
Graphique d'effort individuel
Utilisateur 4
10%
Utilisateur 3 Utilisateur 1
20% 40%
Utilisateur 2
30%
Le modèle de la Ce modèle a été mis sur La documentation est produite On ne peut pas revenir
à chaque étape de l'élaboration en arrière, si la phase de
pied et formalisé dans les
du modèle cascade ; conception a mal tourné ;
Cascade
années 1970. Dans ce Le montant des ressources De petits
modèle, nécessaires pour mettre en changements ou des
œuvre ce modèle est minime. erreurs qui surviennent
chaque phase se termine dans le logiciel rempli
après un délai fixé. À la peut causer beaucoup de
problème.
13
fin de chaque étape, des
documents ou alors des
logiciels sont produits.
Le cycle en V est une C’est simple à contractualiser ; C’est une délégation totale
amélioration du modèle On met l’équipe en face de ses du projet ;
responsabilités ; Mauvaise gestion des
en cascade. Il se découpe en plusieurs risques.
Le Modèle en V Il permet, en cas phases identifiées dès le
démarrage du projet ;
d'anomalie, de limiter un Il permet de limiter les retours
retour aux étapes aux étapes précédentes.
précédentes
Figure 11 Tableau comparatif
14
formalisation et la modélisation facilitent en effet la définition du problème à traiter et la
compréhension par l'ensemble des principales parties prenantes, sous réserve que chaque
partie maitrise son formalisme.Une fois, le modèle est bien défini, il est plus aisé de s'y référer
lors du développement afin de s'assurer de la conformité de ce dernier. Un outil précieux qui
explique à lui seul l'essor de la démarche UML.
UML couvre les trois axes qui représentent les points de vue du développeur, à
savoir [Figure8]:
o L’axe statique : qui décrit le système dans son état statique
o L’axe dynamique : qui décrit le comportement du système
o L’axe fonctionnel : qui représente les fonctions fournies par le système
Chacun de ces axes est décrit par un ensemble de diagrammes UML. Dans le cas de notre
projet, les diagrammes UML utilisés sont définis dans la figure suivante[5] :
Conclusion
Dans ce chapitre, on a présenté le cadre général de notre projet en déterminant la
problématique et en proposant une solution envisagée pour faire face à la situation courante.
Ensuite, on a dévoilé la méthodologie de conception et le langage de modélisation.
15
16
Chapitre 2
Introduction aux méthodes agiles
et Scrum
Introduction
Les méthodes agiles sont un ensemble de pratiques qui permettent d’impliquer le client
tout au long du projet et permettent de fournir à chaque itération un rendu de projet
opérationnel à ce client. Elles sont itératives, c’est-à-dire qu’à chaque itération un livrable
applicatif permet de valider le résultat. Elles sont incrémentales, c’est-à-dire qu’à chaque
itération de nouvelles fonctionnalités sont ajoutées au livrable. Elles sont collaboratives, c’est-
à-dire que le client, l’équipe de production et le chef de projet travaillent en toute confiance
pour mener à bien le projet.
17
I. Que sont les méthodes agiles ?
Les méthodes agiles sont un ensemble de pratiques qui permettent d’impliquer le client tout
au long du projet et permettent de fournir à chaque itération un rendu de projet opérationnel à
ce client. Elles sont itératives, c’est-à-dire qu’à chaque itération un livrable applicatif permet
de valider le résultat. Elles sont incrémentales, c’est-à-dire qu’à chaque itération de nouvelles
fonctionnalités sont ajoutées au livrable. Elles sont collaboratives, c’est-à-dire que le client,
l’équipe de production et le chef de projet travaillent en toute confiance pour mener à bien le
projet [6].
18
Le cahier des charges : Le cahier des charges n’est qu’un support pour aider à la
réalisation cependant il ne doit pas être négligé et doit subir de constantes mises à jour
à chaque itération. Le plus important est que l’application soit fonctionnelle.
La collaboration : Le client est au cœur du projet pour aider à prendre les décisions
tout au long du projet. Il travaille avec l’équipe et fournit un compte-rendu en continu
sur ses attentes par rapport au livrable.
Le changement : Le livrable doit resté flexible pour permettre l’évolution de la
demande du client.
19
Le propriétaire du produit est le représentant des clients et des utilisateurs. Il est « responsable
de maximiser la valeur du produit et du travail de l'équipe de développement »7. Il s'agit
d'« une personne et non d'un comité ». Il est seul à diriger l'activité de l'équipe de
développement à qui il n'est « pas permis de suivre les instructions d'une autre personne. »
De ce fait, cet acteur se charge de différents rôles et responsabilités.
o Il explicite les éléments (items) du carnet du produit.
o C'est lui qui définit l'ordre dans lequel les fonctionnalités seront développées.
Il prend les décisions importantes concernant l'orientation du projet.
o Il s'assure que le carnet du produit est visible et compris de l'équipe de
développement.
C'est également lui qui, en accord avec l'équipe, fixe les objectifs d'un incrément (itération) au
début de celui-ci. Si ces objectifs deviennent obsolètes pendant l’itération, il a alors la
possibilité d'interrompre l’itération en cours.Dans l'idéal, le propriétaire du produit travaille
dans la même pièce que l'équipe. Il est important qu'il reste très disponible pour répondre aux
questions de l'équipe et pour lui donner son avis sur divers aspects du logiciel [7].
Maître de mêlée
Le maître de mêlée est responsable de la compréhension, de l'adhésion et de la mise en œuvre
de la méthode. C'est un « leader au service de l'équipe », il assiste chaque rôle de l'équipe
SCRUM dans son activité Son autorité s'exerce sur le processus de développement (définition
de la durée des iterations, des modalités de tenues et de l'ordre du jour des réunions
SCRUM…), mais il ne dispose d'aucune autorité sur les autres membres de l'équipe SCRUM.
Ce n'est pas un chef de projet, ni un développeur, ni un intermédiaire de communication avec
les clients. Le rôle de SCRUM master ne peut pas être cumulé avec celui de propriétaire du
produit. Les attributions du « chef de projet » présent dans d'autres approches sont distribuées
dans les différents rôles de l'équipe SCRUM. L'existence du rôle de chef de projet dans un
contexte SCRUM est le signe d'une « méconnaissance fondamentale de SCRUM » et est
perçue comme contre-productive et menant à de « piètres résultats ».En tant que facilitateur, il
aide l'équipe à déterminer quelles interactions avec l’extérieur lui sont utiles, et lesquelles sont
freinantes. Il aide alors à maximiser la valeur produite par l'équipe.
Parmi ses attributions :
o communiquer la vision et les objectifs à l'équipe ;
o apprendre au propriétaire du produit à rédiger les composantes du carnet du
produit ;
20
o faciliter les rituels de SCRUM ;
o coacher l'équipe de développement ;
o faciliter son intégration à l'entreprise, surtout si celle-ci n'est pas pleinement
agile ;
o écarter les éléments pouvant perturber l'équipe ;
o aider l'adoption des méthodes agiles au niveau de l'entreprise ;
o travailler avec les autres Facilitateurs/animateurs pour coordonner plusieurs
équipes, s'il y a lieu [7].
Équipe de développement
L'équipe de développement est constituée de 3 à 9 personnes et a pour responsabilité de livrer
à chaque fin d'itération une nouvelle version de l'application enrichie de nouvelles
fonctionnalités et respectant le niveau de qualité nécessaire pour être livré. L’équipe ne
comporte pas de rôles prédéfinis ; elle est « structurée et habilitée par l'entreprise à organiser
et gérer son propre travail ».Elle est auto-organisée et choisit la façon d'accomplir son travail,
sans que ce soit imposé par une personne externe. Il n'y a pas non plus de notion de hiérarchie
interne : toutes les décisions sont prises ensemble. Ce mode d'organisation a pour objectif
d'augmenter l'efficacité de travail de l'équipe. Elle est pluridisciplinaire et comporte toutes les
compétences pour réaliser son projet, sans faire appel à des personnes externes à celle-ci.
L’objectif de l'équipe est de livrer le produit par petits incréments. Ainsi, à tout instant, il
existe une version du produit « potentiellement utilisable » disponible. L’équipe s'adresse
directement au propriétaire du produit, et ne prend ses instructions que de lui. Son activité est
issue du carnet de produit uniquement. Elle ne peut pas être multi-produite[7].
Est un fragment livrable du produit elle se présente par une phrase simple dans le langage de
tous les jours permettant de décrire avec suffisamment de précision le contenu d'une
fonctionnalité à développer. La phrase contient généralement trois éléments descriptifs de la
fonctionnalité : Qui ? Quoi ? Pourquoi ?
Exemple : « En tant qu'utilisateur, Je veux pouvoir rechercher mes clients par leur prénom et
leur nom de famille afin de les retrouver rapidement lorsque je reçois un appel de leur part. »
Elle contient généralement les informations suivantes :
ID un identifiant unique
21
Titre un nom court (entre 2 et 10 mots), descriptif de la fonctionnalité attendue par le
client, Le nom doit être suffisamment clair pour que les membres de l’équipe
comprennent de quelle fonction il s’agit. Le nom ne doit pas introduire d’ambigüités.
Priorité un entier qui fixe la priorité des Stories. La priorité d’une storie peut être
changée en cours de réalisation du projet.
Storie point « Story point » Un storie point sert à estimer l’effort nécessaire à une
équipe pour implémenter une fonctionnalité Cette estimation prend en compte :
l’effort pour le développement, la complexité du développement, Le risque / l’inconnu
Par abus de langage, on dit que le storie point sert à estimer la “taille” d’une
fonctionnalité [8].
Sont des choses non livrables, ou des choses auxquelles le maitre de mêlée ne s'intéresse pas.
Elles sont créées par les développeurs suite à la décomposition d'une storie afin de mieux
attaquer la dernière. Elle contient généralement les informations suivantes
Libellé un nom court (entre 2 et 10 mots) et compréhensible
Estimation qui sert à mesurer la tâche en temps(heurs/jours).
22
IV.2.4.3 Backlog
23
Le travail qui doit être complété pour terminer le projet, représenté en temps ou en points2,
est introduit à travers l'axe Y.
Points de départ et final
Le point de départ est le tout premier point à gauche indiqué sur le jour 0 du graphique, alors
que le point final est le plus à droite et représente une prédiction du dernier jour du projet.
Lignes du travail restant
Il existe deux types de ligne :
Ligne du travail restant idéal : C'est une droite qui passe par le point de départ et le
point final. Au point de départ, elle montre la somme de toutes les tâches qui doivent
être complétées, alors qu'au point final il n'y a plus de travail restant. La pente de la
droite est proportionnelle à la productivité estimée de l'équipe sur la période.
Ligne du travail restant effectif : Cette ligne montre le travail restant effectif. Le
point de départ est le même que pour la ligne idéale, cependant, quand le temps
avance, cette ligne à tendance à être au-dessus ou au-dessous de la ligne idéale. En
général, un nouveau point est ajouté à la suite de cette ligne chaque jour. Ce point peut
être calculé soit par la ré-estimation du reste à faire total, soit par la soustraction de ce
qui a été produit du reste à faire initial [10].
24
Graphique d'avancement
Idéale Courant
90
80
70
60
Heurs de travail total
50
40
30
20
10
0
Jour 0 Jour 1 Jour 2 Jour 3 Jour 4 Jour 4 Jour 5 Jour 6 Jour 7
Axis Title
Graphique de vélocité
La vélocité est la mesure de la capacité de l'équipe pendant une itération. Elle se calcule juste
après la démonstration lors de la revue d’une itération. La démonstration permet de décider si
une fonctionnalité montrée est finie ou pas. Si elle est finie, on prend en compte l'estimation
en points de cette fonctionnalité. La vélocité s'obtient simplement en faisant la somme des
points de chaque fonctionnalité présentée avec succès. Le diagramme de la vélocité est un
autre moyen de visualiser et de suivre la vitesse de progression du
projet. (Mathématiquement, cela revient à visualiser la dérivée de la courbe d’avancement.)Ce
diagramme a pour origine SCRUM, la méthode agile de développement logiciel. Dans cette
méthode, il est utilisé le plus souvent pour détecter un problème de qualité. En effet, une
baisse de la vélocité traduirait un manque d’évolutivité du logiciel ou l’apparition de
nombreux bugs [11].
25
Graphique de vélocité
45
40 40
40
35
30
30
25
Storie points
25 23
20 20
20
15
15
10
0
Iteration #1 (velocite) Iteration #2 (velocite) Iteration #3 (velocite) Iteration #4 (velocite)
Axis Title
Conclusion
La méthode SCRUM permet donc de réaliser un projet en très peu de temps et avec peu de
ressources humaines. Elle s’adresse à de petites équipes d’une dizaine de personnes environ.
Cependant, du fait qu’elle n’est applicable que sur des petites équipes, elle n’est pas
applicable pour des projets de grande envergure. La force de la méthode SCRUM est qu'à
chaque fin d’une itération, une partie du projet est disponible pour le client ce qui lui permet
de décider de continuer à développer le projet ou de s'arrêter pour diverses raisons. La
méthode SCRUM permet de canaliser l'équipe et de la garder concentrée sur ce qu'elle a à
faire grâce aux itérations. Après avoir présenté les méthodes agiles et la méthode SCRUM
maintenant on va passer à la spécification des besoins.
26
Chapitre 3
Spécification des besoins
27
Introduction
Après avoir présenté présenter brièvement les méthodes agiles et la méthode SCRUM, on va
entamer la phase de spécification et d’analyse des besoins.
La spécification et l’analyse des besoins est la première phase dans le cycle de développement
du projet, au cours de laquelle les besoins de l’utilisateur sont identifiés et bien précisés.
28
Gérer son profile : Notre système offre à ses utilisateurs les possibilités de modifier
ses information et même de télécharger et changer la photo du profil.
Avoir un rôle SCRUM dans un projet : Notre système offre à ses utilisateurs un
espace de gestion des différents éléments SCRUM dans un projet qui se diffère d’un
rôle à un autre, tout court on va présenter les espaces de gestion pour chaque rôle
Gérer son équipe: Notre système offre à au maitres de mêlée dans leur projets les
privilèges d’ajouter des membres d’équipes, définir leur rôles et même les supprimer
afin d’avoir un contrôle complet sur son équipe.
gérer les stories : Notre système offre aux propriétaires du produit les privilèges de
gérer les stories en ajoutant, supprimant, modifiant et restaurant les stories afin d’voir
un contrôle complet sur les stories du projet.
Gérer les itérations : Notre système offre aux maitres de mêlée le privilège de créer
des itérations, les démarrer, associer des stories à des itérations et même les supprimer
pour avoir le contrôle complet sur les déroulements d’un projet.
Gérer les tâches d’une sortie : Notre système offre aux développeurs dans un projet
le privilège de créer des taches, les modifier, les supprimer, s’engager à des taches et
les terminer.
Commenter les stories Notre système offre aux utilisateurs la possibilité de publier
des commentaires dans chaque stories afin d’avoir un moyen de communication
interne entre le membre d’équipe dans un projet, ce besoins va être important pour
minimiser les risques de la mal compréhension des stories, enregistrer les différents
remarques, et d’établir une bonne relation entre les stories et ses taches.
29
Visualiser les artefacts Notre système offre aux utilisateurs la possibilité de
consulter les statistique qui donne une idée sur l’avancement d’un projet,
spécifiquement le système va offrir des graphiques d’avancement simple qui trace de
la charge de travail restante heures en fonction du temps (en jours),des graphiques de
vélocité simple qui trace les points livrées et la vélocité de chaque itération terminée,
des graphiques d’effort individuel qui trace les nombre d’heures de travail réaliser
pour chaque développeur dans une itération.
Imprimer les artefacts Notre système offre aux utilisateurs la possibilité d’imprimer
les artéfacts important tel que le backlog, le graphiques d’avancement, le graphiques
de vélocité, et le graphiques d’effort individuel
30
V. Les diagrammes de cas d’utilisation
Le diagramme de cas d’utilisation(CU) est un modèle de communication. Il permet de
modéliser les besoins, les points de vue de l’utilisateur et de définir les limites précises du
système tout en utilisant Une notation simple et compréhensible par tous.
1. Internaute est un utilisateur du réseau Internet qui navigue sur l’espace publique de
l’application.
2. Utilisateur est une personne identifié qui utilise l’application.
3. Membre d’équipe est un Utilisateur de l’application qui est en train d’interagir avec
un projet, suite â cette interaction il perd les privilèges d’Utilisateur et prend les
privilèges de Membre d’équipe.réélement le membre d’équipe n’existe que au-
dessus projet pour cela il ne partage pas des cas d’utilisation avec l’utilisateur.
Ce membre d’équipe peut porter dans un projet l’un de ces rôles qui définissent son
privilège.
o Propriétaire du produit: Personne ayant la responsabilité de produire et de
maintenir à jour le carnet de produit. C'est lui qui détermine les priorités et qui
prend les décisions d'orientation du projet.
o Maitre de mêlée: Membre de l'équipe dont l'objectif principal est de la protéger
des perturbations extérieures. Il est complètement transparent pour la
communication entre l'équipe et les clients et n'a aucun pouvoir hiérarchique sur
l'équipe. C'est en revanche un facilitateur pour les problèmes non techniques de
l'équipe.
o Développeur : Le développeur a pour responsabilité de livrer à chaque fin
d'itération une nouvelle version de l'application enrichie de nouvelles
fonctionnalités et respectant le niveau de qualité nécessaire pour être livré.
4. Le cadenceur est un acteur qui déclenche le cas d’utilisation de façon périodique,
dans notre outil cet acteur va jouer un rôle important en déclenchant quotidiennement
31
des mis a jours pour maintenir l’avancement des projets, c’est à lui d’avancer les
itérations, évaluer l'impact des changements et mettre à jours les différents graphiques.
32
V.2.1 Diagramme de cas d’utilisation général
33
La figure suivante [Figure 12] représente l'ensemble des cas d'utilisation générale de la
plateforme résumant les fonctionnalités du système et les interactions avec les acteurs.
34
Création d’un nouveau projet
Pré- conditions
L’utilisateur est authentifié.
Enchaînement
Enchaînement d’exception
E1 : Si le nom du projet est vide
Post- conditions
Les projets relative à cet utilisateur sont mise a jours.
Acteurs
Utilisateur
But
Supprimer un projet avec tous ses composants.
35
Pré- conditions
Le maître de mêlée est authentifié.
Enchaînement
3. L’utilisateur confirme la
suppression d’un projet
Enchaînement d’exception
Aucun Enchaînement.
Post- conditions
Les projets relative à cet utilisateur sont mise a jours.
Acteurs
Maître de mêlée
Développeur
But
Quitter un projet
Pré- conditions
Les acteurs sont authentifié.
Enchaînement
36
2. Le système affiche la page de gestion des
projets
Enchaînement d’exception
Aucun Enchaînement.
Post- conditions
Gérer équipe
Accéder a un
projet
<Include>
Maître de mélée
Gérer equipe
Ajouter un utilisateur
Acteurs
Maître de mêlée
But
Ajouter un membre dans un projet.
Pré- conditions
Accéder à un projet.
Nombre d’équipe égale à huit.
37
Enchaînement
Post- conditions
L’équipe est mise à jours.
Acteurs
Maître de mêlée
But
Modifier le rôle d’un membre dans un projet.
Pré- conditions
Accéder à un projet.
Enchaînement
38
2. Le système affiche page de gestion d’équipe
Enchaînement d’exception
E1 : Si le rôle n’est pas disponible
Post- conditions
L’équipe est mise à jours.
39
Gérer itération
<Extends>
<Extends>
Demarrer une iteration
Créer une iteration
Gérer storie
Restaurer storie
40
Outil de gestion de projet agile
Ajouter tache
<Extends>
Supprimer tache
<Extends>
Gérer taches
<Extends>
Développeur
Modifier les details d'une
tache
<Extends>
<Extends>
s'engager à une tâche
Terminer une
tache
Acteurs
Développeur
But
Remplir une sortie par des taches.
Pré- conditions
La tache appartient à une storie non terminée dans une itération non terminée
Enchaînement
41
2. Le système affiche la page Dashboard storie
Enchaînement d’exception
E1 : Le développeur essayé d’ajouter avec tache sans estimation ou sans label
Post- conditions
List des taches est mise à jours.
Acteurs
Développeur
But
S’engager d’une tache
Pré- conditions
La tache appartient à une storie en cours dans une itération non terminée
Enchaînement
Enchaînement d’exception
42
Aucun enchaînement.
Post- conditions
List des taches est mise à jours.
Acteurs
Développeur
But
Terminer une tache
Pré- conditions
La tache appartient à ce développeur et appartient à une storie non terminée dans
une itération non terminée
Enchaînement
Enchaînement d’exception
Aucun enchaînement.
Post- conditions
List des taches est mise à jours.
43
Visualiser les graphiques
<Extends>
<Extends>
<Extends>
44
S'authentifier
Systeme
Utilisateur
S'authentifer(3)
Authentification réussite
Sinon
45
Associer une storie a une iteration
Systeme
Maître de mélée
ref <<S'authentifier>>
Accéder a un projet(1)
Après l’authentification
46
V.2.3.3 Diagramme de séquences système « démarrer une itération »
Systeme
Maître de mélée
ref <<S'authentifier>>
Démarrer une iteration()
Accéder a un projet
Démarrer l'iteration
Enregistrement
Rafrechir le tableau de bord
Sinon
afficher un Message d'erreur
Après l’authentification
Pour que le système donne au maitre de mêlée la possibilité de démarrer l’itération il faut
qu’il associe au moins une storie à cette itération.
47
17. Le système calcul la durée de l’itération à partir la date courant et le date fin saisit
Sinon
20. Le système informe le maitre de mêlée par un message que la date fin saisit est
invalide.
Systeme
l oop [Pour chaque taches dans cette stori e avec l 'etat "En cours"]
Changer l 'etat du tache vers "À fai re"(9)
Après l’authentification
48
1. Le propriétaire du produit accède à un projet
2. Le système affiche le tableau de bord du projet
3. Le propriétaire du produit accède à une itération terminée
4. Le système affiche le tableau de bord de l’itération
5. Le propriétaire du produit demande page de rétrospectives
6. Le système affiche la page de rétrospectives
7. Le propriétaire du produit restaure une storie non terminée
8. Le système change l’état du storie vers « non commencée »
9. Le système supprime la relation entre la storie et l’itération
10. Le système initialise les taches avec l’état « en cours qui appartient à cette storie.
Systeme
Dével op peur
Ve ri fi cati on(6)
Si non
Enreg i strement(8)
Rafré chi r l i ste des taches(9)
Après l’authentification
49
1. Le développeur accède à un projet.
2. Le système affiche le tableau de bord du projet.
3. Le développeur accède à une storie non terminée.
4. Le système affiche le tableau de bord du storie.
5. Le développeur saisit libellé et l’estimation en heurs et puis il valide l’ajout.
6. Le système vérifie les données saisit.
Sinon
Conclusion
Dans ce chapitre, on a présenté les besoins offerts par le système. On a également fourni une
analyse plus détaillée des besoins non fonctionelles grâce aux diagrammes de cas d'utilisation
et diagrammes des séquences système.
Dans le chapitre suivant, on va aborder le chapitre relatif à la " Conception ".
50
Chapitre 4
Conception
51
Introduction
Après avoir identifié les besoins fonctionnels et non fonctionnels que notre système doit
satisfaire et établit les diagrammes de cas d’utilisations pour chaque acteur, il est temps de
passer à la conception de notre système.
Une bonne conception est la clé d’un développement de logiciel efficace donc un système
bien conçu est facile à maintenir, facile à comprendre et fiable. La phase de conception
représente alors la phase la plus cruciale du processus de développement d’un logiciel.
Notre application est constituée de trois couches. Ces trois couches se conforment à
l’architecture de couches fermées «Closed layer architecture» (une couche peut communiquer
seulement avec la couche qui lui est adjacente). La figure suivante présente l’architecture Java
EE d’une application web en trois couches :
52
Figure 31:architecture Java EE d’une application web en trois couches
53
VI. Conception du niveau données
La conception du niveau donnée permet de mieux spécifier la structure du système en
décrivant son diagramme de classe.
54
disponibles pour un
projet
Role Cette classe contient Id_role GetALLWithString()
les rôles disponibles Label GetRoleBylabel()
dans un projet
Iteration Cette classe contient id_iteration AddIteration()
les informations code DeleteIteration()
Nécessaires d’une mission GetIterationsBy()
iteration. debut GetFinishedIterations()
fin GetiterationsVelocity()
joursrestant GetallIteration()
joursrestant GetIteration()
SetDebutFin()
storiesterminer
SetMission()
heurstravailtotale
SetIterationStatus()
heurstravailrestant SetDurée()
pointsprevus SetJoursRestant()
pointterminer SetNbrStories()
velocite SetNbrStoriesTerminer()
SetHTravailsTotale()
SetHTravailsRestant()
SetPointsPrevus()
SetPointsTerminer()
SetVelocity()
IterationStatus Classe qui presente id_iteration_status
les status label
d’une iteration
Avancement Classe qui presente id_avancement AddAvancement()
les details des point heursrestant UpdateAvancement()
de burndownchart datejour GetAvByIteration()
jouractuel LastOne()
55
AssositeTouser()
GettacheEtat()
Storie_Etat Classe qui présente id_storie_etat
l’état d’une tache type
56
VI.3 Diagramme de classe
Le diagramme de classe est une représentation statique des éléments qui composent un
système et de leurs relations. Chaque application qui va mettre en œuvre le système sera une
instance des différentes classes qui le compose.
57
Role
- id_role : int
- label : String 0..1
ProjetStatus
- id_projet_status : int
1..1 - label : String
Image_profile Utilisateur UserProjet
- id_image_profile : int - id_utilisateur : int
0..1 - Date : Date
- image_name : String - pseudo : String
- image : LongBlob 1..1 1..1
- motdepasse : String
0..*
- nom : String
- prenom : String
- email : String Projet
- datelogin : Date 1..* - id_projet : int
- dateinscri : Date
0..1 0..* - nom : String
- datecreation : Date
1..1
0..*
1..1
Commentaire Avancement
- text : String - id_avancement
- date : Date - heursrestant
- datejour
- jouractuel
0..*
0..* 0..*
0..* 1..1 0..*
Storie
Tache Iteration
- id_storie : int 0..*
- id_tache : int 0..* - titre : String - id_iteration : int
0..1
- label : String - code : int
1..1 - role : String
- estimation : int - mission : String
- objectif : String
- benefices : String 0..* - debut : Date
- Criteres_acceptation : String - fin : Date
- joursrestant : int
0..* 1..1 - nbrstories : int
- storiesterminer : int
0..*
Point - heurstravailtotale : int
- heurstravailrestant : int
- id_point : int
- pointsprevus : int
- npoint : int
- pointterminer : int
- velocite : double
0..*
58
Projet(id_projet, nom, datecreation, #id_projet-status)
Projet_Status(id_projet-status, nom, datecreation)
Userprojet(id_userprojet,# id_utilisateur,# id_projet,# id_role, date)
Role(id_role, label)
Iteration(id_iteration,code,mission, debut, fin, durée, joursrestant, nbrstories, storiesterminer,
heurstravailtotale, pointsprevus, pointterminer, velocite,# id_projet, #id_iteration_status)
Iteration_status(id_iteration_status , label)
Avancement (id_avancement , heursrestant, datejour, datejour, jouractuel,
#iteration)
Storie(id_storie , titre, role, objectif, benefices, Criteres_acceptation, #id_projet,
#id_iteration,# id_storie_etat, #id_point)
Storie_etat(id_storie_etat, type)
Point(id_point, npoint)
Commentaire(id_commentaire ,# id_utilisateur,# id_storie, text, date)
Tache(id_tache, label, #id_utilisateur, #id_storie,# id_tache_etat, estimation)
Tache_etat(id_tache_etat, type)
59
mise en œuvre d'une classe, et plus généralement, à ajouter un aspect dynamique à la
modélisation d'un système.
Utilisateur
S'authentifier(1)
Afficher(2)
Saisir données(3)
Instanciation(4)
Verification(5)
envoyer résultat(6)
Authentification réussie
Afficher(8)
Pour s’authentifier
1. L’utilisateur demande la page d’authentification.
2. Le contrôleur affiche la page d’authentification.
3. L’utilisateur saisit ses données (pseudo et mot de passe)
4. Le contrôleur instancie le modèle utilisateur
5. Le modèle utilisateur vérifie les données saisies.
6. Le modèle utilisateur envoie au contrôleur le résultat de vérification.
60
7. Le contrôleur affiche la page d’accueil.
Sinon
Membre d'équipe
ref <<S'authentifier>>
Accéder à un projet()
Demander liste des projets(1)
Charger la liste des projets(2)
Accéder a un projet(3)
Instanciation(4)
Afficher(5)
Après l’authentification
1. Le membre d’équipe demande la liste des projets.
2. Le contrôleur charge la liste des projets.
3. L’utilisateur accède à un projet.
4. Le contrôleur instancie le modèle projet
5. Le contrôleur affiche le tableau de bord du projet.
6. Le contrôleur filtre composant de la page selon le rôle du Membre d’équipe dans ce
projet.
61
S'engager â une tâche
Développeur
ref <<S'authentifier>>
Afficher(7)
Rafrechir(12)
62
10. Le contrôleur change l’état de cette tache vers « en cours »
11. Le contrôleur relie la tâche avec ce développeur.
12. Le contrôleur rafraîchit le tableau de bord du storie.
Développeur
ref <<Authentification>>
Afficher(7)
Mettre â jours(12)
Mettre â jours(13)
Rafrechir(14)
63
5. Le contrôleur charge les stories associées à cette itération par état.
6. Le développeur accède à une sortie non terminée.
7. Le système affiche le tableau de bord de cette sortie.
8. Le système charge les tâches de cette sortie par état.
9. Le développeur termine une tâche en cours qui lui appartient.
10. Le contrôleur change l’état de cette tâche vers « Terminée ».
11. Le contrôleur mettre à jours l’itération.
12. Le contrôleur mettre à jours le modèle avancement.
13. Le contrôleur rafraîchit le tableau de bord de la sortie.
64
VII.2.1 Diagramme d’activité « Compléter une storie »
Propriétaire du produit Maitre de mélée Développeur Systeme
Créer un storie
Terminer l'iteration
Restaurer la storie
65
VII.2.2 Diagramme d’activité « Compléter une iteration »
Maitre de mélée Développeur Systeme Cadenceur
Mettre â jours le
Decision_3 Decision_2 graphique d'avancement
Si toutes les
stories dans
l'iteration sont Si les jours restants dans l'iteration
terminées supérieur â zero
Terminer l'iteration
Si les jours restants dans l'iteration egale
â zero
Calculer la velocité
66
VII.2.3 Diagramme d’activité « Compléter un projet»
Propriétaire du produit Maitre de mélée Développeur Systeme
Terminer iteration
Restaurer stories
Terminer le projet
67
VIII. Conception du niveau présentation
Les chartes graphiques est une étape importante dans la conception de ce système. Il s’agit
de concevoir la maquette qui va définir l’aspect global de l’application. Le but d’une charte
graphique est de concevoir une cohérence graphique entre les réalisations graphiques d’un
même projet.
68
VIII.2 Tableau de bord Itération
L’entête de cette page va contenir la barre de navigation, l’image du profile de
l’utilisateur ainsi que son nom.
La barre gauche va contenir les détails d’une itération ainsi que le bouton de
démarrage.
Le contenu de la page va contenir les stories triées selon état, bouton qui affiche la
page de graphique d’avancement et une horloge serveur.
69
VIII.3 Tableau de bord storie
L’entête de cette page va contenir la barre de navigation, l’image du profile de
l’utilisateur ainsi que son nom.
La barre gauche va contenir les détails d’une storie et les commentaires.
Le contenu de la page va contenir les tâches qui sont (glissables/déposables) triées par
état, bouton pour ajouter une tâche et une horloge serveur.
70
VIII.4 Page de graphique de vélocité
L’entête de cette page va contenir la barre de navigation, l’image du profile de
l’utilisateur ainsi que son nom.
La barre gauche va contenir l’équipe et les stories du projet
Le contenu du page va contenir le graphique d’avancement ainsi que une horloge
serveur.
71
VIII.5 Page de graphique d’avancement
L’entête de cette page va contenir la barre de navigation, l’image du profile de
l’utilisateur ainsi que son nom.
La barre gauche va contenir les détails d’une itération.
Le contenu de la page va contenir le graphique d’avancement et une horloge serveur.
72
IX. Déploiement
Le diagramme de déploiement est une vue statique qui sert à représenter l’infrastructure
physique du système et la manière dont les composants du système sont répartis ainsi que
leurs relations entre eux.
Client
Web Browser
HTTP
Application server
Tomcat server
JDBC
Database Server
Mysql database
Conclusion
Dans ce chapitre, on a présenté une vue sur la conception de la plateforme en utilisant le
langage UML. On a indiqué l’architecture jee. On a également détaillé les différents modules,
en élaborant les diagrammes de classes, les diagrammes de séquences et les diagrammes
d’activités.
Dans le chapitre suivant, on va s’appuier sur le développement et le travail réalisé, c’est le
chapitre« Réalisation ».
73
Chapitre 5
La Réalisation
74
Introduction
Ce chapitre constitue la dernière partie du rapport. Il a pour objet d’exposer le travail réalisé.
Je vais présenter donc l’environnement matériel du projet ainsi que les outils de
développement utilisés. Je vais ensuite montrer les différents aperçus d’écran illustrant les
fonctionnalités de la plateforme.
I. Environnement de développement
Marque Asus
Processeur dur I5
Mémoire 6Go
Disque 500Go
Marque Hp
Processeur dur I5
Mémoire 4Go
Disque 500Go
75
IX.2 Environnement logiciel
IX.2.1 Les Framework
1. bootsfaces
Une Framework JSF puissant et léger basé sur Bootstrap 3 et jQuery UI, Qui vous permet
de développer des applications d'entreprise front-end rapidement et facilement[13]
2. Primefaces
PrimeFaces est une bibliothèque de composants d'interface utilisateur (UI) open source
pour les applications JavaServer Faces (JSF), créée par PrimeTek, Turquie [14].
C'est un Framework qui offre
o Un point de vue différent,
o Simplicité et Performance ,
o Facilité d'utilisation.
3. JSF
Java Server Faces est un Framework de développement d’application Web en Java permettant de
respecter le modèle d’architecture MVC et basé sur des composants côté présentation[15].
4. Facelet
Technologie de présentation pour le développement d'applications web en Java .
Système de templating : permet de définir des vues de JSF en utilisant des calibres du
modèle HTML .
Réduit la quantité de code nécessaire pour intégrer des composants dans la vue.
76
1. TOMCAT
L'utilisation d'un serveur Java EE est obligatoire pour le développement de pages
Web dynamiques en Java EE. Un serveur HTTP classique reçoit des requêtes
HTTP et renvoie des réponses mais il ne connait pas les Servlets, les JSP... Il est
donc essentiel d'utiliser un programme appelé moteur de Servlets qui est contenu
dans le serveur Java EE et qui permet de pallier ce manque[16].
2. APACHE
Apache est le serveur Web le plus utilisé sur Internet. Dans une architecture en
production, il est recommandé d'utiliser un serveur Web en frontal d'un serveur
d'applications. Ces recommandations sont également appliquées dans le cas de
l'utilisation d'un conteneur Web comme Tomcat. Développement d’une application
JAVA EE – Plan de projet Page 18 sur 19 OFPPT L'utilisation d'un serveur Web
en frontal est nécessaire dans ce projet pour des raisons de performance, de
sécurité et de flexibilité.
4. MySQL
Le SGBD MySQL est supporté par un large éventail d'outils. MySQL est surtout
installé pour les applications Web, ce SGBD est solide et utilisé par de grands
groupes spécialisés dans l'Internet. Plusieurs pilotes natifs de type 4 sont
disponibles pour MySQL et sont conseillés pour une utilisation en Java [17].
77
5. ECLIPSE
6. PowerAMC
PowerAMC est un de conception créé par la société SDP, qui permet de
modéliser les traitements informatiques et leurs associées.
7. Themeroller
Cet éditeur de thème très pratique va nous permettre de customiser notre thème.
X. Les interfaces
Cette partie présente les principales interfaces graphiques de note application
78
X.1 La page d’index
Cette page offre aux internautes la possibilité d’avoir une idée sur notre outil.
79
Figure 48 Interface graphique « Tableau de bord projet »
80
Figure 50 Interface graphique « Page d'équipe »
81
Figure 52 Interface graphique « Page de vélocité »
82
Figure 54 Interface graphique « Page rétrospectives »
XI. Chronogramme
La clé principale de la réussite d'un projet est un bon planning.
En effet, le planning aide à bien subdiviser le travail et séparer les taches à réaliser, il
offre une meilleure estimation et gestion de temps nécessaire pour chaque tache. De plus,
il donne assez de visibilité permettant d'estimer approximativement la date d'achèvement de
chaque tache.
Dans notre projet, nous avons estimé à réaliser notre application dans une durée
approximative de 3 moins. Le diagramme ci-dessous montre le planning que nous avons
adapté pour mener à bien notre réalisation des différentes parties du projet:
Recueil des besoins: le résultat de cette phase est de bien étude le marché et définir les
besoins globale de l’application
Analyse détaillée: le résultat de cette phase est de définir les besoins détaillés afin de clarifier
les fonctionnalités attendu par l’application.
Conception détaillée: il s'agit de détailler les spécifications des fonctions ainsi que la
structure des données, des contrôles et des interfaces.
Développement: il s'agit de de traduire la partie conceptuel dans un produit exécutable.
Test et validation : il s'agit de tester notre application et la valider avec nos encadreurs.
83
Rédaction du rapport : description détaillée de notre travail.
Le chronogramme ci-après schématise la chronologie de ces étapes durant la période du
projet.
Conclusion
84
Conclusion générale
Pour conclure, On rappelle que ce projet a été effectué au sein de Centre National de
Formation de Formateurs et d’Ingénierie de Formation à Rades. Il consiste à développer un
outil de gestion de projet agile selon le modèle SCRUM, destinée aux équipes agiles.
La réalisation de ce travail a été bénéfique sur plusieurs plans ; En effet, nous avons
appris comment surmonter les difficultés techniques que on a rencontré et surtout comment
faire face aux ambigüités et aux contraintes techniques pour tester de nouvelles alternatives
aboutissant à l’accomplissement du projet.
Au futur, il sera possible d’utiliser cet outil et de bénéficier des fonctionnalités offert
gratuitement.
85
Bibliographie et néographie
[1] http://www.ordinateur.cc/Logiciel/Logiciels-de-productivité/163559.html
[2] http://www.agiliste.fr/outils-gestion-de-projet/
[3] https://www.thinkmind.org/download.php?articleid=icsea_2012_21_40_10376
[4] http://www.responsive-mind.fr/cycles-developpement-informatique/
[5] http://www.piloter.org/projet/methode/uml.htm
[6] http://www.supinfo.com/articles/single/461-introduction-methode-scrum
[7] https://fr.wikipedia.org/wiki/Scrum_(Boite_à_outils)
[8] https://fr.wikipedia.org/wiki/Récit_utilisateur
[9] http://www.aubryconseil.com/post/Le-backlog-de-produit
[10] https://fr.wikipedia.org/wiki/Burndown_chart
[11] http://www.aubryconseil.com/post/2007/01/29/168-la-velocite-d-un-sprint
[12] https://fr.wikipedia.org/wiki/Modèle-vue-contrôleur
[13] https://www.bootsfaces.net
[14] https://www.primefaces.org
[15] http://gardeux-vincent.eu/Documents/ProjetJEE/HPV_JSF_Castor/jsf.html
[16] http://www.chercheinfo.com/uploads/1968-724e861856.pdf
[17] https://fr.wikipedia.org/wiki/MySQL
[18] https://fr.wikipedia.org/wiki/Eclipse_(projet)
86
Résumé
Ce rapport décrit le travail qu’on a réalisé dans le cadre de l’obtention de notre licence
appliquée en technologie de l'informatique ISETCH, il s’est déroulé du 6 Février au 12 mai
2017 effectué au sein de Centre National de Formation de Formateurs et d’Ingénierie de
Formation à rades. Durant les trois mois, notre mission consiste à développer une application
de gestion de projet dans un cadre de développement agile. L’application va permettre aux
équipes de développement de collaborer sur des projets pilotés selon la méthodologie agile
Scrum. Le but de l’application est de faciliter le pilotage des projets en offrant une version
numérique des nombreux artefacts de la méthode Scrum (Carnet du produit, Itérations, Cartes,
Taches, tableau des taches etc.)Ce rapport se propose de décrire les différentes étapes par
lesquelles le projet a passé dans le but d’atteindre la solution actuelle.
Abstract
This report describes the work we carried out in the context of obtaining our ISETCH
Computer Technology License, which took place from 6 February to 12 May 2017 at the
National Training Center Trainers and Engineering Training in rades.Over the next three
months, our mission is to develop a project management application with an agile
development framework. The application will enable development teams to collaborate on
projects piloted using Scrum agile methodology. The purpose of the application is to facilitate
the project management by offering a digital version of the numerous artifacts of the Scrum
method (Product Log, Iterations, Maps, Tasks and Task Table etc.)The purpose of this report
is to describe the different stages in which the project was carried out in order to achieve the
present solution.
تلخيص
يصف هذا التقرير العمل الذي قمنا بتنفيذه للحصول على االجازة التطبيقية لتطوير االنظمة المعلوماتية بالمعهد العالي
للدراسات التكنولوجية بالشرقية وقد تم اجراء هذا المشروع في المركز الوطني للتدريب المدربين والموانئ في هندسة
التطبيق سوف لفرق. مهمتنا كانت تطوير اداة إلدارة المشاريع في إطار الطرق الرشيقة، خالل األشهر الثالثة.التكوين
العمل على قيادة مشاريعهم والغرض من هذا التطبيق هو تسهيل إدارة المشاريع من خالل تقديم نسخة رقمية االداة سكروم
وهذا التقرير هو لوصف مختلف الخطوات التي اجتازها المشروع كي يصل إلى النتيجة الحالية.
87