Ministère de l’Enseignement Supérieur
de la Recherche Scientifique et De la Technologie
***************
Université de la Manouba
Ecole Nationale Des Sciences De L’Informatique
Projet de Fin d’études
Conception, réalisation et mise en place d’une
application pour la gestion des projets
Réalisé par :
Akram Barraj
Encadré par :
Mr. Abdelmonam Kouka
Année Universitaire 2013-2014
Appréciations des encadrants
i
Dédicaces
A toutes les personnes chères à mon coeur,
A ma très chère maman Selma pour tout son amour, ses sacrifices et son dévouement,
A mon très cher papa Mouldi pour son amour, son soutien et ses encouragements,
A mes chères soeurs Ajmiya et Abir pour leur amour et leur précieuse présence,
A mes chère tantes et oncles,
A toute ma famille et tous mes amis et tous ceux qui n’ont jamais cessé de croire en moi,
Je dédie ce modeste travail, le fruit de mes efforts et de longues années d’études,
Qu’ils y trouvent le couronnement de leurs assistances et l’expression profonde de ma gratitude.
Akram.
ii
Remerciements
Au terme de mon projet de fin d’études, je tiens à adresser mes plus vifs remerciements à
toutes les personnes qui, de près ou de loin, ont contribué à l’aboutissement de ce travail dans
les meilleures conditions.
Je m’adresse en premier lieu aux membres de l’honorable jury que je remercie d’avoir accepté
d’examiner ce rapport.
Je tiens à présenter mes reconnaissances et mes remerciements à mon encadrante à l’ENSI Dr.
Hamadi Hasni, pour le temps consacré à la lecture et aux réunions qui ont rythmées les étapes
de mon projet de fin d’étude. Je la remercie aussi pour sa disponibilité à encadrer ce travail à
travers ses critiques et ses propositions d’amélioration.
Un remerciement particulier à mon encadreur dans la société TAC-TIC Mr. Abdelmonam
Kouka, pour le soutien qu’il m’a apporté tout au long du stage réalisé au sein de cette
entreprise.
Enfin je remercie toutes les personnes qui ont contribué de près ou de loin à la réalisation de
ce projet de fin d’étude, ainsi qu’au bon déroulement du stage, et dont les noms ne figurent
pas dans ce document.
Akram BARRAJ
iii
Résumé
Le présent rapport a été élaboré dans le cadre du projet de fin d’études pour l’obtention du
diplôme d’ingénieur en informatique. Le travail est réalisé pendant la période de Février 2014
to Juin 2014.
Il a été réalisé dans TAC-TIC Société et au cours de cette période, nous avons essayé d’être
fidèle aux exigences mentionnées dans le document de spécification.
Ce projet consiste à concevoir et à réaliser une application pour la gestion des projets et des
feuilles de temps. Cette application couvre la gestion des utilisateurs, des projets, des feuilles
de temps et de la messagerie interne.
À cette fin, nous avons été amenés à la compréhension de certains solution proposée, pour trou-
ver et concevoir celui qui convient, à développer les modules nécessaires et enfin de déployer
l’application dans un des serveurs TAC-TIC.
Mots clés : Scrum, framework Symfony2, JavaScript, gestion de projet.
iv
Abstract
This project is a part of the project graduation to obtain a computer engineering degree. The
work is done during the period of February 2014 to June 2014.
It was realized within TAC-TIC Corporation and during this period we have tried to be faithful
to the requirements mentioned in the specification document.
This project is to design and implement an application for projects and timesheets manage-
ment. This application covers the management of users, projects, timesheets and internal mes-
saging.
For that purpose, we were brought to the understanding of some proposed solution, to find
and conceive the appropriate one, to develop necessary modules and finally to deploy the ap-
plication within one of TAC-TIC servers.
Key words : Scrum, framework Symfony2, JavaScript, project management.
v
Table des matières
Introduction générale
1 Présentation du cadre du projet
1.1 Présentation de l’organisme d’accueil
. . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1
Fiche d’identité .
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.2
Secteurs d’activités .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Présentation du sujet .
.
1.3 Choix méthodologique .
.
.
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.1 Les méthodes agiles
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.2 Un comparatif des méthodes agiles
. . . . . . . . . . . . . . . . . . . . . .
1.3.3 La méthodologie Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.3.1
Introduction à la méthodologie Scrum . . . . . . . . . . . . . . .
1.3.3.2
Le choix de la méthodologie Scrum . . . . . . . . . . . . . . . . .
1.3.4
Formalisme adoptée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Etat de l’art et étude de l’existant
2.1
Situation Actuelle
2.1.1 Dotproject .
2.1.2 Ehour .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.3 Les Limites des solutions existantes . . . . . . . . . . . . . . . . . . . . . .
2.2 Les Solutions disponibles
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 Les critères de recherche
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2 Quelques plateformes étudiées . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2.1
ProjeQtOr .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2.2 GanttProject
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
3
3
3
3
4
4
5
5
7
7
7
9
11
11
11
12
14
14
14
15
15
15
conception, réalisation et mise en place d’une application pour la gestion des projets
vii
TABLE DES MATIÈRES
2.2.2.3
Redmine .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.3 Autre solutions .
2.3
Solution Envisagé .
.
.
.
.
.
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Spécification et analyse des besoins
3.1 Étude des besoins .
.
.
.
.
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1 Les acteurs du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2 Besoins fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2.1
Les besoins fonctionnels pour un administrateur . . . . . . . . .
3.1.2.2
Les besoins fonctionnels pour les employés . . . . . . . . . . . .
3.1.2.3
Les besoins fonctionnels pour les clients . . . . . . . . . . . . . .
3.1.3 Besoins non fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Les diagrammes de cas d’utilisations . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Le cas d’utilisation général
. . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.2 Les cas d’utilisation de l’administrateur . . . . . . . . . . . . . . . . . . . .
3.2.3 Les cas d’utilisation du chef de projet
. . . . . . . . . . . . . . . . . . . . .
3.2.4 Les cas d’utilisation du développeur . . . . . . . . . . . . . . . . . . . . . .
3.2.5 Les cas d’utilisation du client . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Diagrammes de séquence .
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Diagramme de séquence pour le scénario d’authentification . . . . . . . .
3.3.2 Diagramme de séquence pour le scénario "ajouter employé" . . . . . . . .
3.3.3 Diagramme de séquence pour le scénario gérer projets . . . . . . . . . . .
Publicité
3.3.4 Diagramme de séquence pour le scénario d’activation d’un compte . . . .
3.3.5 Diagramme de séquence pour le scénario de recherche . . . . . . . . . . .
3.3.6 Diagramme de séquence pour le scénario d’ajout d’une nouvelle tache . .
3.3.7 Diagramme de séquence pour le scénario de validation d’un ticket
. . . .
4 Conception
4.1 Conception générale .
.
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1 Conception architecturale . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1.1
L’architecture trois-tiers . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1.2
Le modèle MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1.3 Architecture retenue . . . . . . . . . . . . . . . . . . . . . . . . . .
16
16
17
18
18
18
19
19
20
20
21
21
22
23
24
27
29
30
30
33
34
34
35
37
37
39
39
39
40
41
42
conception, réalisation et mise en place d’une application pour la gestion des projets
viii
TABLE DES MATIÈRES
4.2 Conception détaillée .
.
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.1 Diagramme de paquetage . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.2 Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.2.1
Le paquetage « Utilisateur » . . . . . . . . . . . . . . . . . . . . .
4.2.2.2
Le paquetage « Projet » . . . . . . . . . . . . . . . . . . . . . . . .
4.2.2.3
Le paquetage « Évènement » . . . . . . . . . . . . . . . . . . . . .
4.2.2.4
Le paquetage « Timesheets » . . . . . . . . . . . . . . . . . . . . .
4.2.2.5
Paquetage « Messagerie » . . . . . . . . . . . . . . . . . . . . . . .
4.2.3 Diagrammes de séquences d’objets . . . . . . . . . . . . . . . . . . . . . . .
4.2.3.1 Diagramme de séquences pour le scénario d’authentification . .
4.2.3.2 Diagramme de séquences pour le scénario d’ajout d’un nou-
43
43
44
44
46
48
49
49
50
51
veau gestionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
4.2.3.3 Diagramme de séquences pour le scénario d’ajout d’un nou-
veau projet
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.4 Conception de la base de données . . . . . . . . . . . . . . . . . . . . . . .
5 Réalisation
5.1 Réalisation par rapport au backlog . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.1 Le déroulement des sprints . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.2
Facteur de disponibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Environnement de travail
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.1 Environnement matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.2 Choix du framework de développement
. . . . . . . . . . . . . . . . . . .
5.2.2.1
Les frameworks PHP les plus connus . . . . . . . . . . . . . . . .
5.2.2.2
Le framwork de développement Symfony 2 . . . . . . . . . . . .
5.2.3
Environnement logiciel
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.3.1
La modélisation UML . . . . . . . . . . . . . . . . . . . . . . . .
5.2.3.2
IDE Eclipse Kepler 4.3 . . . . . . . . . . . . . . . . . . . . . . . .
5.2.3.3 Autres outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Travail réalisé .
.
.
.
.
.
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.1
Interface d’authentification . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.2
Interface d’accueil
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.3
Interfaces tous les projets
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
conception, réalisation et mise en place d’une application pour la gestion des projets
52
53
56
56
56
57
57
57
57
57
58
59
59
59
59
60
60
61
62
ix
TABLE DES MATIÈRES
5.3.4
Interface Ajout d’un projet . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.5
Interfaces suivre un projet . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.6
Interfaces diagramme de gantt
. . . . . . . . . . . . . . . . . . . . . . . . .
5.3.7
Interfaces de messagerie . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.8
Interfaces du calendrier . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.9
Interfaces suivi d’un ticket . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.10 Interfaces statistiques
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 Chronogramme .
.
.
.
.
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conclusion générale
A L’architecture de Symfony2
62
63
65
65
66
67
67
68
70
73
conception, réalisation et mise en place d’une application pour la gestion des projets
x
Table des figures
1.1 Les activités de TAC-TIC .
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
Schéma illustratif de SCRUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1 DotProject : Tableau de bord d’un utilisateur
. . . . . . . . . . . . . . . . . . . . .
2.2 Ehour : Génération des rapports et des statistiques . . . . . . . . . . . . . . . . . .
2.3 Apperçu de GanttProject .
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1 Les différents utilisateurs de l’application . . . . . . . . . . . . . . . . . . . . . . .
3.2 Diagramme de cas d’utilisation général
. . . . . . . . . . . . . . . . . . . . . . . .
3.3 Diagramme de cas d’utilisation général :Administrateur
. . . . . . . . . . . . . .
3.4 Diagramme de cas d’utilisation : administrateur/Gérer profils . . . . . . . . . . .
3.5 Diagramme de cas d’utilisation général : Chef de projet . . . . . . . . . . . . . . .
3.6 Diagramme de cas d’utilisation : chef de projet/Gérer projets
. . . . . . . . . . .
3.7 Diagramme de cas d’utilisation : chef de projet/Gerer messages . . . . . . . . . .
3.8 Diagramme de cas d’utilisation général : Développeur
. . . . . . . . . . . . . . .
3.9 Diagramme de cas d’utilisation : Développeur/Gerer calendrier
. . . . . . . . .
3.10 Diagramme de cas d’utilisation général : Client
. . . . . . . . . . . . . . . . . . .
3.11 Diagramme de cas d’utilisation : Client/Gerer tickets . . . . . . . . . . . . . . . .
3.12 Diagramme de séquence pour le scénario d’authentification . . . . . . . . . . . .
Publicité
3.13 Diagramme de séquence pour le scénario renouveler mot de passe . . . . . . . .
3.14 Diagramme de séquence pour le scénario ajouter un nouveau compte "employé"
3.15 Diagramme de séquence pour le scénario gérer clients . . . . . . . . . . . . . . . .
3.16 Diagramme de séquence pour le scénario activer un compte "client"
. . . . . . .
3.17 Diagramme de séquence pour le scénario recherche projet
. . . . . . . . . . . . .
3.18 Diagramme de séquence pour le scénario ajout nouvelle tache . . . . . . . . . . .
conception, réalisation et mise en place d’une application pour la gestion des projets
4
8
12
13
16
19
22
23
24
25
26
27
28
28
29
30
31
32
33
34
35
36
37
xi
TABLE DES FIGURES
3.19 Diagramme de séquence pour le scénario de validation d’un ticket
. . . . . . . .
38
4.1 Architecture trois-tiers .
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 L’interaction entre le modèle, la vue et le contrôleur . . . . . . . . . . . . . . . . .
4.3 Diagramme de paquetage .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 Diagramme de classe pour le paquetage "Utilisateur"
. . . . . . . . . . . . . . . .
4.5 Diagramme de classe pour le paquetage "Projet" . . . . . . . . . . . . . . . . . . .
4.6 Diagramme de classe pour le paquetage "Évènement" . . . . . . . . . . . . . . . .
4.7 Diagramme de classe pour le paquetage "Timesheets" . . . . . . . . . . . . . . . .
4.8 Diagramme de classe pour le paquetage "Messagerie" . . . . . . . . . . . . . . . .
4.9 Diagramme de séquence d’authentification . . . . . . . . . . . . . . . . . . . . . .
4.10 Diagramme de séquence pour l’ajout d’un employé . . . . . . . . . . . . . . . . .
4.11 Diagramme de séquence pour l’ajout d’un projet . . . . . . . . . . . . . . . . . . .
4.12 Vue globale de la base de données
. . . . . . . . . . . . . . . . . . . . . . . . . . .
4.13 Modèle détaillé de la base de données . . . . . . . . . . . . . . . . . . . . . . . . .
5.1
Interface d’authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Page d’accueil pour un chef de projet . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Tous les projets
.
5.4 Ajout d’un projet
.
.
.
.
.
.
.
.
5.5 Page détails d’un projet .
.
.
.
.
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6 Page du diagramme de gantt
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.7 Envoyer un message .
.
5.8 Le calendrier personnel .
5.9
Suivi d’un ticket .
.
.
.
.
.
.
.
.
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.10 statistiques sur la réalisation des projets/employés
. . . . . . . . . . . . . . . . .
5.11 Le chronogramme du travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.1 L’arborescence d’une application Symfony2
. . . . . . . . . . . . . . . . . . . . .
A.2 Schématisation du flux d’exécution d’une requête par Symfony . . . . . . . . . .
A.3 Le toolbare de débougage .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
42
43
45
47
48
49
50
51
52
52
53
54
61
61
62
63
64
65
66
66
67
68
69
73
76
77
conception, réalisation et mise en place d’une application pour la gestion des projets
xii
Liste des tableaux
1.1 Tableau comparatif de quelques méthodes agiles . . . . . . . . . . . . . . . . . . .
6
5.1 Les frameworks PHP les plus connus . . . . . . . . . . . . . . . . . . . . . . . . . .
58
conception, réalisation et mise en place d’une application pour la gestion des projets
xiii
Introduction
L’engouement récent des technologies de l’information et de la communication dans le
monde force les organisations à s’intéresser au système d’information. Il est devenu un point
central dans leur développement
L’organisation devient de plus en plus dépendante des solutions informatiques choisies.
Ces choix influent directement le comportement dynamique ou non de l’entreprise, et auto-
risent, par la même, des réactions rapides et adaptées au changement de l’environnement tech-
nique, économique, social... .
Le système d’information est donc un support d’aide à la décision qui permet d’améliorer
l’efficacité et la qualité des décisions prises, un outil de travail coopératif autour de données
consolidées et correctement partagées.
Ce qui préoccupe les entrepreneurs c’est l’amélioration de l’efficacité et ses niveaux de pro-
ductivité, ainsi l’augmentation du chiffre d’affaires qui se base sur le bon choix des projets et
l’excellence dans la réalisation en utilisant les ressources existante de façon efficace.
C’est dans ce cadre se situe notre projet de fin d’étude, la société TACTIC nous a confié le
développement d’une application web pour la gestion des projets et la suivie des feuilles des
temps (conception, développement et mise en place).
Dans le présent document, organisé en cinq chapitres, nous commencerons par introduire
le contexte général du projet, à savoir l’organisme d’accueil ainsi que le contexte du projet.
Ensuite, nous exposerons l’étude préalable que nous avons menée durant ce stage. Puis nous
enchaînerons par la spécification des besoins de notre application. Au quatrième chapitre, nous
conception, réalisation et mise en place d’une application pour la gestion des projets
1
Introduction Générale
détaillerons l’approche adoptée dans l’étape de conception. Et pour clôturer nous décrirons
les étapes de réalisation, les outils utilisés ainsi que les résultats obtenus à travers quelques
interfaces de l’application.
conception, réalisation et mise en place d’une application pour la gestion des projets
2
Chapitre 1
Présentation du cadre du projet
Introduction
Ce chapitre a pour objectif de situer notre projet dans son contexte général. Ainsi, nous
commençons par la présentation de l’organisme d’accueil. Ensuite, nous décrivons brièvement
le sujet, les objectifs à atteindre, et la méthodologie de travail adoptée.
1.1 Présentation de l’organisme d’accueil
Le présent projet est réalisé dans le cadre de la préparation d’un mémoire de fin d’études
présenté en vue de l’obtention du diplôme d’ingénieur en informatique à l’École Nationale
des Sciences de l’Informatique pour l’année universitaire 2013/2014. Nous présentons dans ce
paragraphe l’organisme d’accueil ainsi que les secteurs d’activités dans lesquels il agit.
1.1.1 Fiche d’identité
Ce projet est réalisé au sein de la société TAC-TIC. Cette société crée en 2012, est un leader
reconnu dans la fourniture de services de réseau IP/MPLS et de l’industrie des télécommuni-
cations en Tunisie.
1.1.2 Secteurs d’activités
TAC-TIC offre des services de réseau, de conseil aux entreprises, intégration de solutions
open source et développement de logiciels spécifiques.
conception, réalisation et mise en place d’une application pour la gestion des projets
3
Chapitre 1 : Présentation du cadre du projet
FIGURE 1.1 – Les activités de TAC-TIC
1.2 Présentation du sujet
Ce projet intitulé « Conception, réalisation et mise en place d’une application pour la gestion
des projets » consiste en la conception et la réalisation d’une application web permettant d’offrir
les principales fonctions d’une gestion efficace de projets. Elle permet de mettre en relation
directe les clients avec les responsables de leurs projets.
Les employés, selon leurs rôles, gère leurs espace personnel (planification des évènements,
remplissage de feuilles de temps, messages avec les autres membres de l’équipe, réalisation des
taches, résolutions des tickets de maintenance,..).
Les clients gèrent aussi leurs espaces personnels. Ils auront la possibilité de suivre la réa-
lisation de leurs projets en temps réel. Ils peuvent de même déclarer de nouveaux tickets ou
valider celle déjà résolus comme ils peuvent contacter les responsables de leurs projets.
1.3 Choix méthodologique
Dans cette section nous présentons la méthodologie adoptée, le cycle de développement et
le formalisme de conception.
conception, réalisation et mise en place d’une application pour la gestion des projets
4
Chapitre 1 : Présentation du cadre du projet
1.3.1 Les méthodes agiles
Les méthodes agiles, peuvent être définies comme « des procédures de conception de logi-
ciel qui se veulent plus pragmatiques que les méthodes traditionnelles. En impliquant au maxi-
mum le demandeur (client), ces méthodes permettent une grande réactivité à ses demandes,
visent la satisfaction réelle du besoin du client, et non des termes du contrat de développe-
Publicité
ment».
Afin de clarifier cette notion encore un peu vague, nous allons énoncer ses principes, ses
fondements ainsi que les différences par rapport aux méthodes classiques :
– Mettre en œuvre des individualités et des interactions, plutôt que des procédés et des
outils. Cela se manifeste par l’accent mis sur les êtres humains en tant qu’individus et sur
l’expertise des équipes de développement, qui communiquent entre elles de façon très
serrée et dans un esprit de confiance constant.
– Produire un logiciel entièrement testé et qui fonctionne, plutôt qu’une documentation
claire. On rejoint ici les notions de développement itératif (notion de phases) et d’intégra-
tion continue (notion de builds journaliers), en insistant sur la simplicité et la robustesse
du code produit (tests systématiques).
– Collaborer avec le client, plutôt que négocier un contrat. Le client devient un partenaire
à part entière, qui participe au développement dans le sens où il détermine l’objectif à
atteindre pour obtenir une réelle plus-value (qui seule justifie les efforts effectués pendant
le développement).
– Répondre aux modifications, plutôt que suivre un plan. Il est bien évident que personne,
pas même le client, ne peut appréhender avec précision l’ensemble des besoins dès le
début du projet. Le développement agile vise à atteindre un compromis entre les spéci-
fications initiales présentées aux développeurs (et sur lequel se fonde le planning) et le
résultat final qui bien souvent s’en éloigne un peu voire beaucoup, en absorbant les mo-
difications tout au long du cycle de développement. Cela réclame des outils de suivi et
une attitude constante de coopération avec le client.
1.3.2 Un comparatif des méthodes agiles
Au cours de cet paragraphe nous allons essayer de dégager les différences entre quelques
unes des méthodes de développement agiles les plus connues, et ceci en fournissant un tableau
comparatif de ces dernières.
conception, réalisation et mise en place d’une application pour la gestion des projets
5
Chapitre 1 : Présentation du cadre du projet
Le tableau suivant, Tab 1.1, compare sommairement les méthodes courantes suivantes :
– Extreme Programming (XP).
– Rational Unified Process (RUP).
– Feature-Driven Development (FDD).
– Scrum
Méthode
Points clés
Inconvénients
XP
RUP
– Développement guidé par les be-
– Focalisation sur l’aspect individuel du
soins du client.
développement, au détriment d’une
– Equipe réduite, centrées sur les
vue globale et des pratiques de mana-
développeurs par binomes.
gement ou de formalisation.
– Builds journaliers, amélioration
– Risque de manque de contrôle et de
constante, adaptativité aux mo-
structuration en laissant les dévelop-
difications.
peurs trop libres de dériver par rapport
aux fonctions de l’application.
– Processus complet assisté par des
– Lourd, largement étendu, il peut être
outils.
difficile à mettre en œuvre de façon
– Rôles bien définis
spécifique.
– Convient pour les grands projets qui
génèrent beaucoup de documentation.
Scrum
Petites équipe, itération de 30 jours,
La mise en œuvre du développement
réunions journalières.
n’est pas précisée, seule compte la gestion
des ressources humaines.
FDD
– Procédé bien défini et simple,
Uniquement centré sur le développe-
orienté objet et basé sur le déve-
ment.
loppement.
– Itératios très coutres
TABLE 1.1 – Tableau comparatif de quelques méthodes agiles
conception, réalisation et mise en place d’une application pour la gestion des projets
6
Chapitre 1 : Présentation du cadre du projet
1.3.3 La méthodologie Scrum
Nous avons choisi la méthodologie Scrum pour la conception et le développement de notre
application.
1.3.3.1
Introduction à la méthodologie Scrum
Le terme Scrum(qui signifie « mêlée »en rugby) se rapproche plus d’une gestion de res-
sources humaines plutôt que d’une réelle méthode de développement. Il s’agit ici de ne pas
oublier le côté humain du développement.
Les principales caractéristiques de Scrum sont :
– Identifier les changements très tôt.
– Donner toute confiance aux développeurs et les laisser faire leur travail.
– Faire des itérations variantes (généralement de 30 jours), appelés aussi « sprints »pour
laisser le temps de coder. Chaque itération a un objectif bien précis ou « backlog » et
fournit une nouvelle fonctionnalité testée (une démonstration est faite à la fin de chaque
sprint).
– Faire des réunions tous les jours (daily meeting) et chaque semaine (weekly meeting)
pour encadrer les équipes et recaler les objectifs.
1.3.3.2 Le choix de la méthodologie Scrum
Davantage qu’une méthode formelle, Scrum, illustré par la figure 1.1, peut être vu comme
un framework méthodologique dont l’implémentation doit être ajustée en fonction des carac-
téristiques techniques, organisationnelles et culturelles des projets qui souhaitent la mettre en
oeuvre (Scrum, au demeurant, ne limite pas son champ d’application aux seuls projets infor-
matiques : ses principes sont applicables pour toute activité visant à produire un résultat).
conception, réalisation et mise en place d’une application pour la gestion des projets
7
Chapitre 1 : Présentation du cadre du projet
FIGURE 1.2 – Schéma illustratif de SCRUM
Dans ses grandes lignes, Scrum définit un jeu minimal d’acteurs, de cérémonies et d’arte-
facts qui permettent de relever les défis principaux du développement incrémental : la plani-
fication, la gestion du temps et la gestion des obstacles. Scrum est entièrement piloté par la
Valeur Métier.
La gestion des risques, en particulier, est réalisée au travers de ce prisme. Scrum identifie
trois acteurs :
– Le Product Owner ((Directeur de Produit), qui possède l’expertise fonctionnelle et est à
même de réaliser les arbitrages nécessaires à la priorisation des développements. Son rôle
est absolument essentiel, et son respect des règles du jeu est la pierre angulaire du succès
d’un projet agile.
– membre de l’Equipe, et dont la tâche principale est d’optimiser la capacité de production
de l’Equipe en l’aidant à travailler de façon autonome et à s’améliorer constamment. Il
est également le garant de la bonne implémentation de Scrum.
– l’Equipe, dont la taille doit être réduite, et qui prend en charge le développement du
produit (planification, conception, codage, tests, documentation) sans spécialisation des
rôles. La particularité d’une Equipe Scrum est d’être «auto-organisée », et donc dépour-
vue de hiérarchie. Cet aspect constitue une rupture radicale avec les approches managé-
riales traditionnelles, qui privilégient un contrôle centralisé généralement incarné par le
Chef de Projet.
Les avantages cités ci-dessus se révèlent particulièrement, bien adaptés aux projets de fin
d’étude dont les objectifs et la limitation temporelle sont parfaitement délimités et connus. La
pratique de la méthode Scrum nous a donné l’opportunité d’être intégré au sein de ce proces-
sus et de participer aux cycles de développement. Après avoir fait le choix de la méthodologie,
conception, réalisation et mise en place d’une application pour la gestion des projets
8
Chapitre 1 : Présentation du cadre du projet
qui est une étape primordiale dans le cycle de développement d’un produit informatique, nous
exposerons dans le paragraphe suivant la problématique auquel nous sommes amenés à déve-
lopper une solution.
1.3.4 Formalisme adoptée
UML (Unified Modeling Language) est un langage de modélisation graphique orienté objet
de troisième génération à base de pictogrammes. Dans le cadre de notre spécification, le choix
UML a été effectué à cause de la possibilité de modification et la réutilisabilité et la modularité
qui sont les qualités reconnues de cette approche.
UML fournit un moyen astucieux permettant de représenter diverses projections d’une
même représentation grâce à ces différents diagrammes. En effet, il couvre l’aspect statique et
dynamique d’un système selon ses différents diagrammes. Il définit pour cela dix diagrammes
qui sont subdivisés en des vues statiques (qui représentent « physiquement » le système à mo-
déliser au moyen de diagrammes d’objets, de classes, de paquetage, de cas d’utilisation, de
composants, de déploiement et enfin d’architecture) et des vues dynamiques (qui traduisent le
fonctionnement du système au moyen de diagrammes de séquence, de collaboration, d’états
transitions et d’activités).
Pour éviter de surcharger le rapport et d’entrer dans certains détails techniques, nous ne
présenterons que quelques diagrammes que nous avons jugés utiles pour comprendre le projet
à savoir :
– Le diagramme des cas d’utilisation : Il permet de structurer les besoins des utilisateurs
et les objectifs correspondants de notre système en identifiant ses utilisateurs et leurs
interactions.
– Le diagramme de séquence : Il permet une représentation temporelle des objets et de
leurs interactions.
– Le diagramme de paquetage : Il permet de modéliser l’application sous forme de paque-
tages. Ceci offre un niveau d’abstraction élevé et permet de présenter la modularité de
l’application.
– Le diagramme de classes : Il permet de présenter les classes et les interfaces de notre
système ainsi que les différentes relations entre celles-ci
conception, réalisation et mise en place d’une application pour la gestion des projets
9
Chapitre 1 : Présentation du cadre du projet
Conclusion
Ce chapitre a donné l’occasion de présenter dans un premier temps la société accueillante
TAC TIC puis le cadre du sujet, ainsi que les objectifs que notre travail vise à atteindre. En vue
de suivre un avancement logique dans ce rapport, une étude théorique concernant l’état de
l’art fera l’objet du prochain chapitre.
conception, réalisation et mise en place d’une application pour la gestion des projets
10
Chapitre 2
Etat de l’art et étude de l’existant
Introduction
Dans ce chapitre, nous commençons une étude sur le système de gestion de projet existant
adopté par TAC TIC et ses limites . Puis, nous mettons l’accent sur quelques solutions concur-
rentielles existantes sur le marché qui peuvent répondre aux besoins de TAC TIC
2.1
Situation Actuelle
Afin d’assurer une bonne gestion de ses projets, de temps et de ressources La société TAC-
TIC utilise Dotproject comme logiciel de gestion de projet et Ehour pour la gestion des feuilles
de temps.
2.1.1 Dotproject
DotProject est l’un des outils de gestion les plus populaires Open Source du projet. Il permet
de créer, suivre et maintenir les projets. Il fournit des outils de gestion de projets d’entreprise,
qui comprennent un gestionnaire de contacts, un système de notification par courrier électro-
nique et une application en ligne pour créer et gérer des projets. Des codes de couleur intuitifs
pour indiquersi le projet est « dans le rouge ».
L’outil est développé en PHP et s’interface nativement avec une base de données MySQL
pour le stockage des données de projets. Il est libre, sous licence General Public License (GPL)
de GNU et BSD, ce qui signifie qu’il s’agit d’un logiciel libre, fourni en l’état, sans aucune ga-
rantie.
conception, réalisation et mise en place d’une application pour la gestion des projets
11
Chapitre 2 : Etat de l’art et étude de l’existant
FIGURE 2.1 – DotProject : Tableau de bord d’un utilisateur
Les fonctionnalités principales de DotProject sont :
– Gestion des utilisateurs et permissions.
– Gestion de bugs liés au projet et notification par mail.
– Interface gestion Client/Compagnie.
– Liste des projets et affichage hiérarchique des taches, des sous tâches, et visualisation
graphique du projet via des diagrammes de Gantt (Utiles pour les chefs de projet).
– répertoire de contact partagé.
– Calendrier privé et partagé.
– Forums de discussions liés à un projet.
2.1.2 Ehour
La valeur du temps est reconnue par tous ceux qui visent à assurer l’efficacité et la gestion
efficace des ressources. Les personnels peuvent suivre l’utilisation de leur temps contre les
activités afin de maximiser leur productivité, tandis que les organisations comptent sur les
feuilles de temps pour garder une trace de la répartition du travail, statut et d’autres indicateurs
de gestion pour maximiser la production dans le minimum de temps possible.
En gardant ces objectifs en considération, et l’importance d’une interface conviviale et des
infrastructures de documentation complets aider les gestionnaires à tirer la meilleur partie de
leur temps. EHour est un utilitaire web de gestion de feuilles de temps précis qui vous informe
sur le tem