Conception, réalisation et mise en place d’une application pour la gestion des projets

Page 1 sur 91Lecteur de document UniversityLib

Conception, réalisation et mise en place d’une application pour la gestion des projets

Informatique, Gestion de Projet · notes

Voir tous les documents en gestion et économie

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