Memoire de Fin DEtudes Pour Lobtention D
Memoire de Fin DEtudes Pour Lobtention D
Memoire de Fin DEtudes Pour Lobtention D
D’Ingénieur d’Etat
Génie Informatique
Option : Système D’information
Membres de jury :
Joairia
A Hicham El Mouilti,
Je te remercie pour ton soutien continuel, pour ton foie en mes capacités et pour les
encouragements sincères que tu n’as pas manqué de m’offrir tout au long de mon
parcours et pendant les moments où j'en avais le plus besoin. Je te dédie ce travail.
A Joairia Lafhal,
Pour avoir été une coéquipière travailleuse et sérieuse, mais qui s'est également révélée
être une grande amie.
Soumaya
Gestion des projets dont l'insertion des nouveaux projets leur modifications et aussi
la consultation des projets sur lequel l'entreprise travaille.
Gestion des taches qui nous permet d'insérer les taches de chaque projet de les
consulter et modifier et aussi les affecter aux employés concernés.
Gestion des équipes où on peut créer des équipes de travail les mis à jour et les
affecter aux taches des projets.
Gestion des employés pour la consultation des employés de l'entreprise ajouter des
nouveaux employés afin de savoir l'effectif de l'entreprise et les ressources qu'elle a
lors d'un projet.
Gestion des dépenses qui va permettre à savoir tous les charges que l'entreprise a
dépensé dans ses projets
Gestion de la Facturation pour facturer les projets terminés et les livrer au client.
Gestion des Clients permet de gérer et savoir les clients ou les collaborateurs avec
lesquels l'entreprise réalise ses projets
Suivi temporel sous forme d'un calendrier qui permet à l’administrateur d'avoir une
vision globale sur le timing des projets et des taches.
- Spring MVC pour respecter une architecture logicielle qui permet une meilleure
réutilisabilité et une grande facilité de maintenance du code.
- Spring Security pour sécuriser l'accès au système.
- Hibernate pour le mapping objet/relationnel. Par ailleurs, nous avons utilisé le SGBD
(Système de Gestion de Bases de données) MYSQL.
Projects Management allows to insert new projects editing them and consulting the list
of projects that the society works on.
Tasks Management allows to insert, edit and delete the project's tasks and affect them
to the concerned employees.
Teams Management where we can create work teams update the old ones and affect
them to the project's tasks.
Employees Management to view and consult all the society's employees, add new
ones so that the society can preview all the ressources it has for a project.
Expenditures Management allows to know all the expenditures that the society had to
pay for its projects.
Invoicing Management to invoice the projects that have been done and deliver them to
the client.
Clients Management to manage and know all the clients with whome the society is
collaborating to realize a specific project.
Timing Management it's a calendar that allows to the administrator to have a global
vision about timing of all the projects and tasks.
To achieve this project, we have followed the development process in Scrum and we
modeled the system with UML (Unified Modeling Language).
Regarding the development of the application that respects JAVE EE architecture (JAVA
Entreprise Edition), we have used the following frameworks: Spring MVC to respect a
software architecture that allows for better reusability and eases the code maintenance. Spring
Security to secure the access to the system. Hibernate framework for object/relational
mapping between the system and the DBMS. In addition, we used MySQL DBMS (Database
Management System).
We also used JUnit Test for unit testing and Jasper Report for extracting list and files in
PDF Format among the system.
يتلخص الهدف من هذا المشروع في انشاء نظام معلوماتي من اجل تدبير و تتبع المشاريع التي تنجزهم
الشركات و ايضا خاصية تمكن من التعمق في تحليل هذه البيانات بهدف مساعدة ادارة الشركة في اتخاذ
القرارات. PMSTalker
لنشاء هذا المشروع قمنا باستخدام منهجية SCRUMالتي ترتكز على مبدا . Sprintsكما قمنا
باستخدام لغة النمذجة الموحدة UMLلتصميمه.
فيما يخص لغات البرمجة والتقنيات التي اعتمدنا عليها في انشاء المشروع ،فقد استخدمنا لغة الجافا مع الطار
الخاص بالشركات . JAVA Entreprise Editionهذا با لضافة الى مجموعة من المك تبات وا لضافات ا
لساسية :ك .Spring MVC, Spring Security, Hibernate, JasperReport
سنقوم في هذا التقرير بعرض مفصل للمراحل التي قمنا بها لنشاء هذا المشروع بدءا من الدراسة ومرورا
بالتصميم وختاما بالبناء والتفعيل.
Abréviation Désignation
Dédicace ..................................................................................................................................... 3
Remerciements ........................................................................................................................... 5
Résumé ....................................................................................................................................... 6
Abstract ...................................................................................................................................... 7
تلخيص........................................................................................................................................... 8
Liste des Abréviations ................................................................................................................ 9
Liste des Figures ....................................................................................................................... 10
Liste des Tableaux .................................................................................................................... 12
Table des Matières ................................................................................................................... 13
Introduction générale ................................................................................................................ 16
Chapitre 1 ................................................................................................................................. 18
Contexte général du projet ....................................................................................................... 18
Introduction .......................................................................................................................... 19
1- Présentation de l’organisme d’accueil : Adrénaline ........................................................ 19
1-1 Fiche Technique de la société ................................................................................... 20
1-2 L’organigramme de la société .................................................................................. 20
1-3 Prestations et Services............................................................................................... 21
2- Présentation générale du projet ........................................................................................ 22
2-1 L’étude de l’existant .................................................................................................. 22
2-2 La problématique ....................................................................................................... 28
2-3 Présentation du projet PMSTalker ............................................................................. 28
Conclusion ............................................................................................................................ 29
Chapitre 2 ................................................................................................................................. 30
Etude Fonctionnelle du projet .................................................................................................. 30
Introduction .......................................................................................................................... 31
1- La finalité du projet .......................................................................................................... 31
2- Objectifs du projet ............................................................................................................ 31
3- Les fonctionnalités de PMSTalker ................................................................................... 31
4- Démarche de développement ........................................................................................... 33
5- Planification du projet ...................................................................................................... 37
5-1 Planification .............................................................................................................. 38
5-2 Diagramme de Gantt .................................................................................................. 40
Ce projet s’intègre dans le cadre du stage de fin d’études pour l’obtention du diplôme
d’ingénieur d’état en informatique de l’Ecole Nationale des Sciences appliquées de Tétouan,
visant à aboutir une meilleure adéquation entre la formation aussi bien théorique que pratique.
Ceci a pour objectif principal l’intégration des futurs ingénieurs d’état dans le monde
professionnel, ainsi que la pratique de toutes les connaissances théoriques cumulées pendant
le parcourt académique.
L’entreprise Adrénaline Holding afin d’élargir ses services a décidé de faire sortir au
marché un nouveau produit qui va viser les entreprises et les sociétés de n’importe quel
domaine et qui ont des problèmes et des difficultés pour gérer les projets sur lesquels ils
travaillent. Dans cette optique, ce projet de fin d'études, vient répondre à ces besoins en
réalisant une solution (PMSTalker) d'automatisation du processus de la gestion et le suivi de
l'avancement des projets en temps réel, tout en assurant une bonne communication et une
bonne diffusion des informations entre les différents acteurs du futur système.
Introduction
Dans ce présent chapitre, nous allons présenter la société d’accueil, Adrénaline Holding, sa
création, ses prestations et services, sa fiche technique et les différentes activités qu’elle
présente. Comme nous allons le contexte de notre projet ainsi qu’une étude de l’existant.
Créé en août 2015 par le gérant associé Mohammed MAACH sous la forme juridique
S.A.R.L, ADRENALINE est une agence de communication et d’événementiel qui compte
deux autres associés assurant à leur tour, chacun, une telle fonction au sein de l’agence.
La société est créée d’un capital de 100.000 Dh, dont 30% sous forme de monnaie et 70%
sous forme de matériaux (bureaux, fournitures et MIFO, matériel informatique et outillage).
La participation au capital est de 60% par le gérant associé Mr Mohammed MAACH, 30%
par l’associé Souhir MAACH et 10% par l’associé BOUZERGANE Ismail.
Gérant Associé :
Mohammed MAACH
Associée : Souhir
MAACH
Associé-Développeur :
BOUZERGANE Ismail
Responsable
Concepteur/Rédacteur :
Commerciale : Maha
Abdelilah NOUATI
HABIBALLAH
Assistante Commerciale :
Ikram EL KOUCH
i. Communication
Le design sonore
iii. Événementiel
Avant d’entamer à la réalisation du projet qui consiste à réaliser une plate-forme web
pour la gestion et le suivi en temps réel des projets des entreprises, il faut d’abord savoir
qu’est-ce qu’un projet de société comment les entreprises gèrent leurs projets et ensuite savoir
quelles sont les difficultés et les problématiques que ces entreprises rencontrent lors de la
gestion d’un projet pour qu’on puisse donner une solution valable à ces problèmes. Pour cela
nous devons nécessairement savoir en premier lieu qu’est qu’un projet de société ?
L’exécution : la réalisation de ce qui a été planifié précédemment avec les séances de travail,
les réunions avec les parties prenantes, les validations intermédiaires, la communication, la
(très importante) conduite du changement...
Mais la question qui se pose est comment ces entreprises peuvent planifier leurs projets et
les taches de ces projets tout en assurant la bonne communication entre les équipes de travail
et les parties prenantes de l’entreprise, comment le directeur peut savoir l’avancement de son
projet sans qu’il ait recourt à faire des réunions à chaque fois, ici nous devons savoir quels
sont les outils que ses entreprises utilisent pour une bonne gestion des projets et une bonne
communication entre les acteurs du projet.
La majorité des entreprises au Maroc et même ailleurs utilisent toujours les papiers et les
tableaux pour planifier leurs projets et affecter les taches du projet au équipes de travail et
parfois ils ont recours à des logiciels comme GANTT Project le MS Project ou tout
simplement à l’Excel pour la planification de leur projet et la gestion des ressources, comme
on peut remarquer dans les figures suivantes (figure 3 et 4):
.
Figure 3: Planification d’un projet en Excel
Sous ses conditions, et pour faciliter la gestion des projets au entreprises ; plusieurs
développeurs web ont développé des applications web et d’autre bureau dont la majorité sont
open source pour les entreprises dont ces derniers peuvent s’y abonner mensuellement ou
annuellement et les utiliser pour une meilleure gestion des projets.
Et parmi ces applications nous avons trouvé les trois les plus répandu et les plus utilisé au
monde :
ASANA :
Asana est une application dédiée à gérer les projets où on peut insérer un nouveau projet et
ajouter les taches de ce projet comme on peut visualiser le timing du projet dès un calendrier,
aussi asana a intégré la discussion instantanée où les employés du même projet peuvent se
communiquer. Et comme toutes les applications Asana a des avantages et des inconvénients :
Les avantages :
Les inconvénients :
AceProject :
AceProject a été lancé en 2001 en tant Free Task Manager, qui était un outil de gestion de
tâches simple et gratuite, mais plus tard on a ajouté le suivi et la gestion des projets avec la
possibilité de gérer le temps, et on l'a rebaptisé AceProject le 1er Mars 2003.
Les avantages :
- AceProject est beaucoup plus rapide que certains des autres logiciels Web 2.0 de
gestion de projet sur le marché.
- Le logiciel fait un bon travail en abordant la phase de planification et fournit de solides
fonctionnalités pour le suivi des projets et des rapports.
- Il contient la possibilité de réaliser les diagrammes de Gantt pour les projets.
- Il propose la possibilité de suivi des dépenses des projets.
- Toutes les communications sont centralisées en un seul endroit.
Les inconvénients :
- Le tableau de bord est propre et simple, mais d'un point de vue esthétique, la police de
caractères est très faible qui ne sont pas visuellement attrayant.
- Les icônes et les textes sont plus lisibles et beaucoup moins écrasante.
- L'interface devrait être plus simpliste. En période de stress élevé, que plusieurs projets
peuvent provoquer, les membres de l'équipe ne seront pas gravités vers un logiciel qui
est source de confusion ou écrasante.
- Absence de gestion des clients
- Absence de la facturation.
GANTT Project :
Les avantages :
Les inconvénients :
A part le fait que Gantt Project permet de planifier les projets à travers le diagramme de Gantt
qu’il propose et la gestion des ressources, Gantt Project ne propose aucune solution pour le
suivi en temps réel de l’avancement des projets ni l’avancement des taches.
2-2 La problématique
Comme nous l'avons spécifié précédemment, les entreprises ont plus recours à des
applications web qui leur permettent de bien gérer leurs projets et suivre leur avancement. Ce
qui nous amène à la problématique suivante :
Les grandes entreprises souhaitent suivre l’avancement de chaque projet sur lesquels ils
travaillent et aussi visualiser à chaque étape du projet l’évolution des indicateurs de
performance de l’entreprise ce qui va permettre aux parties prenantes de l’entreprise à prendre
les bonnes décisions et qui auront un effet positive sur le gain de la société.
Cependant, les applications et les logiciels de gestion des projets ne sont pas propices à le
suivi et la gestion des projets qui va permettre l’étude des indicateurs de performance de
l’entreprise, car celles-ci présentent également quelques lacunes au niveau des interfaces
graphiques , ils ne sont pas simple à utiliser aussi on remarque qu’il y a une absence de
gestion des employés, des équipes , des clients et de la facturation, De ce fait, un client n’a
pas une possibilité pour consulter et voir l’avancement de ses projets , aussi l'employé n’est
pas notifié lorsqu’on lui affecte une tâche,
ce qui peut tarder le démarrage de la tâche.
Pour finir, ces applications ne présentent pas un tableau de bord qui peut contenir des
graphes qui calculent l’évolution des indicateurs de performance de l’entreprise lors la
réalisation d’un projet.
Ainsi, il s'avère important de trouver une solution pour la problématique se présentant.
Ce projet a pour but est de concevoir une solution informatique permettant la gestion et le
suivi des projets d’une entreprise, afin d’aider à la décision a l’aide d’un tableau de bord
dynamique tout en assurant en vue globale de l’état d’avancement de chaque projet selon les
taches planifiées.
PMSTalker doit assurer la fiabilité des informations fournies par les utilisateurs à l’aide
d’un système de pré-validation. La solution doit assurer une bonne communication entre les
différents acteurs. En plus ce système doit avoir une meilleure sécurité en termes de gestion
des droits d’accès et aussi une interface ergonomique permettant aux utilisateurs de se guider
sans besoin d’aide.
Conclusion
Dans ce chapitre, nous avons présenté le contexte général du projet, en introduisant
l’organisme d’accueil : Adrénaline Holding. Nous avons ensuite effectué une étude de
l'existant, grâce à laquelle nous avons pu cerner les problématiques se présentant.
Dans ce chapitre, nous présenterons le projet en détail, sa finalité, ses objectifs, ainsi
qu’une étude fonctionnelle de ce projet qui contiendra la solution que cette application
viendra avec et les différentes caractéristiques et fonctionnalités de ce système, pour détailler
enfin la planification de celui-ci et sa méthode de développement.
Introduction
Nous procédons dans ce chapitre à la présentation de l’application PMStalker, sa
finalité, ses objectifs, ensuite nous allons détailler les spécifications de ce projet son cahier de
charge et ses fonctionnalités, ainsi qu’une présentation de la planification suivra.
1- La finalité du projet
La mission ultime de notre système est d’aider les parties prenantes (les directeurs, les
managers et les chefs de projets) des entreprises de prendre les bonnes décisions qui vont
infecter positivement l’évolution de l’entreprise et augmenter ses gains, tout en suivant
l’avancement de ses projets et l’évolution de ses indicateurs de performance.
2- Objectifs du projet
L’objectif de ce projet est la création et la mise en place d’une solution de gestion et suivi
en temps réel des projets de l’entreprise afin d’aider à la décision.
La solution doit assurer en premier lieu l’ensemble des fonctionnalités suivantes :
Dans cette partie nous allons présenter les différents modules qui vont constituer le système
Notre système a comme premier but permet la gestion des projets sur lesquels travaille les
entreprises. Cette composante a pour objectif d’offrir aux utilisateurs (le directeur, le chef de
projet) des moyens pour :
Ajouter, modifier ou supprimer les projets.
Suivre l’avancement de chaque projet.
Consulter le rapport des projets.
Visualiser le diagramme Gantt de chaque projet.
Les autres acteurs qui sont les employés peuvent aussi effectuer les différentes opérations qui
se suivent :
Consulter la liste des projets de l’entreprise.
Consulter leurs projets.
Suivre l’avancement des projets.
Ce module est le complément du précèdent car chaque projet est divisé en plusieurs tâches,
alors on ne peut pas créer un projet sans tâche. La gestion des tâches a pour objectif d’aider
l’administrateur du système qui peut être le chef du projet de :
Ce module est aussi important pour la gestion et suivi des projets, car les employés sont des
acteurs prenants dans l’entreprise et l’exécution des projets la gestion des employés est
consacrée seulement pour l’administrateur du système qui est le directeur ou le chef du projet
de l’entreprise où il peut :
La gestion des équipes complète la gestion des tâches, car pour chaque il faut affecter une
équipe de travail qui va s’occuper de sa réalisation, le chef de projet qui s’authentifie en tant
que rôle d’administrateur qui va s’occuper de :
La gestion de la facturation permet de facturer les projets pour envoyer la facture au client, ce
module concerne seulement de directeur qui aura le rôle d’administrateur et qui va permettre
de :
Ce module permet gérer les dépenses de chaque tâche du projet, chaque dépense a une
catégorie. La gestion des dépenses est la responsabilité de l’administrateur il peut :
4- Démarche de développement
Le processus de développement constitue un facteur déterminant dans la réussite d’un
projet, du fait qu’il cadre ses différentes phases et caractérise les principaux traits de sa
conduite.
Pour cela, le choix d’une méthode de développement, qui soit adéquate aux particularités
et exigences d’un projet, doit être élaboré au préalable afin d’obtenir un produit de qualité qui
répond aux besoins et aux attentes des utilisateurs.
Parmi les processus de développement les plus répandus on trouve :
Après avoir étudié la nature de notre projet, ce dernier incite à suivre une méthode agile
et plus précisément la méthode Scrum. En effet les spécifications du projet n’ont pas cessé
d’être modifiées tout au long du projet et les outils et les technologies n’ont pas été explicitées
depuis le départ. Scrum permet d’entamer le projet avec un minimum d’informations sur les
travaux à faire et qui seront ajustées régulièrement au cours du projet.
i. Méthode de SCRUM :
Depuis une quinzaine d’années, la majorité des développements des logiciels s’appuie
sur des méthodes dites “agiles”. Sous cette bannière se regroupent plusieurs méthodes basées
sur un développement itératif et incrémental, dans lequel la recherche de solutions aux
problèmes rencontrés s’appuie sur la collaboration de pair à pair. Elle promeut des réponses
rapides et flexibles, une planification des tâches adaptatives dans des laps de temps très courts
permettant une très grande réactivité.
Les approches plus classiques tels que cycle en V ou le modèle en cascade sont souvent
mises en œuvre pour les projets répondant à un imposant cahier des charges. Le client et le
prestataire s’entendent alors sur un contrat et si le projet prend du retard ou ne répond pas à
tous les besoins à la date butoir, des pénalités sont alors facturées au prestataire. De la même
manière si le client s’aperçoit en cours de route que certains besoins ont été omis dans le
cahier des charges, il devra alors renégocier avec le prestataire le contrat.
Les premières méthodes agiles apparues sont EVO (Evolutionary Project Management)
(1976), RAD (développement rapide d'applications) (1991), puis DSDM, la version anglaise
du RAD (1995). Les trois méthodes agiles désormais les plus utilisées sont : la méthode
Kanban, issue de la méthode industrielle Lean, la méthode Scrum publiée en 2001 par Ken
Schwaber et Jeff Sutherland, et la méthode XP (Extreme programming) publiée en 1999 par
Kent Beck.
SCRUM est de très loin la méthodologie la plus utilisée parmi les méthodes Agile
existantes. Elle est donc la plus éprouvée, documentée et supportée. Livres, blogs, formations,
vidéos, associations, conférences traitant de Scrum ne manquent pas et bon nombre de ces
ressources sont accessibles gratuitement. On pourrait pratiquement parler d’un standard Agile.
Un autre atout important : Scrum est simple à comprendre. Sa maîtrise est en revanche
difficile.
Les experts de Scrum, même ses fondateurs, le décrivent comme un « cadre de travail
permettant de répondre à des problèmes complexes et changeants tout en livrant de manière
productive et créative des produits de la plus grande valeur possible » Scrum propose un
modèle de contrôle de processus basé sur l'empirisme.
Transparence : Les aspects importants du processus doivent être visibles à ceux qui
sont responsables des retombées. La transparence requiert la définition d’un standard
commun pour ces aspects afin que les observateurs partagent une compréhension
commune de ce qui est observé.
La méthode Scrum s'appuie sur le découpage des projets en itérations encore nommées
« sprints ». Un sprint peut avoir une durée qui varie généralement entre deux semaines et un
mois.
Avant chaque sprint, les tâches sont estimées en temps et en complexité à l'aide de
certaines pratiques comme le « planning poker », une manière ludique de chiffrer la
complexité des tâches ou évolutions à l'aide de cartes à l'instar du célèbre jeu dont le nom est
repris. Ces estimations permettent à la fois de planifier les livraisons, mais aussi d'estimer le
coût de ces tâches auprès du client. Les fonctionnalités (encore appelées « user stories ») qui
font l'objet d'un sprint constituent ce que l'on appelle un « sprint back log » du produit
éventuellement livrable à la fin du sprint. Il est nécessaire de distinguer le sprint back log du
« Product back log » qui lui correspond à l'ensemble des fonctionnalités attendues pour le
produit sur l'ensemble des sprints.
La méthode Scrum est aussi caractérisée par une « mêlée » quotidienne, encore appelée
« morning » ou « stand-up », dans laquelle les collaborateurs (chefs de projets, développeurs
et responsables fonctionnels) indiquent tour à tour les tâches qu'ils ont effectuées la veille, les
difficultés rencontrées et enfin ce sur quoi ils vont poursuivre leur travail le jour suivant. Cela
permet d'évaluer l'avancement du projet, de mobiliser des ressources là où cela est le plus
nécessaire, mais aussi de venir en aide aux collaborateurs rencontrant des difficultés lorsque
celles-ci ont déjà été rencontrées auparavant par d'autres membres de l'équipe.
5- Planification du projet
Cette partie a pour objectif de présenter la manière avec laquelle le projet a été géré. Nous
allons présenter dans un premier temps comment le projet a été découpé en tâches afin
d’assurer son bon déroulement.
5-1 Planification
La planification du projet est une étape importante d’avant-projet. Elle consiste à prévoir
le déroulement du projet tout au long des phases constituant le cycle de développement.
Le tableau ci-dessous (tableau 4) montre le planning de notre projet que nous avons
réalisé avec Gantt Project, nous l’avons réalisé avant de commencer à travailler sur notre
projet lors de l’élaboration du cahier des charges, nous avons essayé de bien le respecter, mais
parfois nous avons eu certaines contraintes qui nous ont obligées de retarder la réalisation de
certaines taches parfois pendant des semaines.
Conclusion
Dans ce chapitre avons présenté en détail le projet, sa finalité, ses objectifs et ses
différentes caractéristiques. Nous avons ensuite effectué une description de notre cahier de
charge fonctionnels, et nous avons présenté la méthode de développement suivie, qui est
Scrum et enfin, nous avons donné un aperçu de la planification du projet a l’aide d’un
diagramme de Gantt.
Dans ce chapitre, nous présenterons l’étude technique détaillée du projet. Nous allons
parler de l’architecture logicielle de notre projet ainsi que la plateforme utilisée pour le
développement de JAVA EE, et les outils et techniques utilisés.
Introduction
L’étude technique mettra en relief les principales plates-formes utilisées, et parlera
également des différentes techniques utilisées pour la sécurisation lors du déploiement.
1- Architecture logicielle
Parmi les différentes façons de structurer une architecture, la mieux adaptée et maitrisée
en informatique est l’approche par couches. Une couche (Layer en anglais) est une division
logique et horizontale d’un système qui fournit une abstraction particulière du système à
couches supérieures. Chaque couche possède des responsabilités spécifiques. Dans une
structuration par couches, les couches inférieures prennent en charges des responsabilités qui
offrent un socle de base pour les couches supérieures, permettant d’abstraire celles-ci de
problématiques qui ne les concernent pas.
Ainsi, nous avons adopté en découpage en quatre couches. Une telle architecture permet
également d’obtenir un bon niveau de réutilisabilité, à travers la réplication des solutions aux
problèmes rencontres pour chaque couche, dans d’autres applications utilisant la même
architecture.
Ce volet technique (découpage en couches) a été testé par un projet prototype qui nous a
permis de valider notre architecture logicielle et que les messages voyagent bien depuis la
couche de présentation jusqu’à la couche de stockage.
Couche Présentation :
Cette couche correspond à la partie de l’application visible et interactive avec les utilisateurs.
On parle d’Interface Homme-Machine. Dans la plupart des cas, il s’agit d’une interface client
riche ou d’une interface web. Elle intercepte les événements et fait appel aux services de la
couche ViewModel.
Couche ViewModel :
Cette couche regroupe les classes java nécessaires au logique métier, elle comporte donc les
services offerts par le système à l’utilisateur. Ces services ne sont autres que l’implémentation
des scenarios identifie lors de la phase de conception.
Lors de l’appel d’un service, ce dernier fait appel aux objets métier nécessaires pour répondre
à la requête de l’utilisateur.
Couche Service :
C’est une couche intermédiaire entre les couches ViewModel et la couche DAO (Data Access
Object), son rôle est de gérer les transactions qui seront ouverts à chaque appel de la base de
données.
Elle permet aussi de repartir les ressources entre les différents utilisateurs de l’application afin
de garantir une meilleure performance du serveur (utilisation des ressources seulement à la
demande).
Couche stockage :
Cette couche est responsable du stockage des données dans une base de données relationnelles
dont le modèle physique est déduit à partir du diagramme de classes du système. Elle est
gérée dans notre cas par le SGBD MySQL.
Couche sécurité :
Il s’agit d’une couche dédiée à la sécurité, chargée de vérifier l’authentification et les
autorisations d’accès aux pages et aussi le hachage des mots de passes des utilisateurs.
Pourquoi MVC ?
Comme nous l’avons déjà cité dans l’étude fonctionnelle, notre application doit être à la
disposition de tous ses utilisateurs (Administrateur, modérateur, utilisateur).
C’est pourquoi nous avons décidé qu’elle soit une application WEB, comme ça elle va
être accessible à tous les utilisateurs. Donc nous avons été amenés à faire une étude sur les
Frameworks permettant de réaliser ce type d’application.
L’objectif de MVC est de faire collaborer deux équipes : une équipe à consonance infographie
et une équipe à consonance informatique. Le paradigme MVC est un schéma de
programmation qui propose de séparer une application en 3 parties :
Le modèle qui contient la logique et l’état de l’application.
La vue qui représente l’interface utilisateur.
Le contrôleur qui gère la synchronisation entre la vue et le modèle. Le contrôleur réagit aux
actions de l’utilisateur en effectuant les actions nécessaires sur le modèle et surveille les
modifications du modèle et informe la vue des mises à jour nécessaires.
3- La plateforme Java EE
Java EE simplifie le développement des applications d'entreprise en les basant sur des
composants standardisés et modulaires, en fournissant un jeu complet de services à ces
composants et en prenant automatiquement en charge un grand nombre des détails du
comportement de l'application, déchargeant le développeur d'un travail complexe de
programmation. Sun et un groupe d'industriels leaders du marché, sous les auspices de la
communauté ouverte JCP, ont permis d'unifier la totalité des standards et des API dans le
cadre de la plate-forme Java EE.
Pour réaliser une étude comparative entre les deux Frameworks, nous avons utilisé «
Google Trends », cet outil va ne permettre de savoir la fréquence de recherche de ces deux
termes sur le moteur de recherche Google. Ainsi les résultats qui se montrent dans les figures
suivantes (figure 12 et 13) nous ont donné une idée globale sur le Framework le plus utilisé ou
autrement dit le Framework qui a la plus grande quantité des ressources sur Internet.
Donc on peut conclure que le terme JAVA, est le plus demandé sur Google depuis les
années 2005 et jusqu’à aujourd’hui. De plus, ce terme a plus de 216 millions résultats
archivées [pages web et documents].
4- Frameworks
Un Framework est un ensemble cohérent de composants logiciels structurels, qui sert à créer
les fondations ainsi que les grandes lignes de tout ou d’une partie d'un logiciel (architecture).
Spring est un Framework libre pour construire et définir l’infrastructure d’une application
java, dont il facilite le développement et les tests.
Principe et avantages :
Spring est un Framework open source et totalement gratuit, ce qui un plus pour notre
projet. En effet on doit seulement utiliser des Frameworks gratuits. La documentation de
Spring est complète et régulièrement mise à jour lors de la diffusion de chaque nouvelle
version. C’est un avantage majeur pour nous en tant que débutants dans cette technologie.
Spring est composé de plusieurs modules disponibles sous forme de fichiers jar
(Bibliothèques pour tous types de projets et pour tous les besoins de développeurs). Ainsi, on
peut n’ajouter au projet que la partie que l’on souhaite utiliser. Cette richesse en
fonctionnalités va nous permettre une évolution très rapide du futur système.
Spring fournit des services de type fonctionnel comme par exemple la gestion de
transactions (Base de données), ce service est très important, pour une meilleure gestion de
ressources. Aussi il y a moins de dépendances entre les différents modules.
Hibernate est une solution open source de type ORM (Object Relational Mapping) qui
permet de faciliter le développement de la couche persistance d'une application. Hibernate
permet donc de représenter une base de données en objets Java et vice versa.
Hibernate génère le code SQL nécessaire, ce qui rend l’application plus portable (s’adapte
à la base de données). Il évite l’écriture de code répétitif, inintéressant et source d’erreurs
difficiles à déceler. Aussi La persistance est transparente et on peut faire de vos classes
métiers des classes persistantes sans ajout de code, comme on peut remarquer que la
récupération de données est optimisée et on peut interroger la base de données de plusieurs
façons (Requête SQL, langage HQL…)
Hibernate présente plusieurs avantages parmi lesquels on trouve :
Portabilité du code en cas de changement du SGBD.
4-3 JSP
Les JSP (Java Server Pages) sont une technologie Java qui permet la génération de pages
web dynamiques.
La technologie JSP permet de séparer la présentation sous forme de code HTML et les
traitements écrits en Java sous la forme de JavaBeans ou de servlets. Ceci est d'autant plus
facile que les JSP définissent une syntaxe particulière permettant d'appeler un Bean et
d'insérer le résultat de son traitement dans la page HTML dynamiquement.
Une très bonne intégration du code Java et du HTML, minimisant par conséquent les
problèmes de mise en page. Ceci permet surtout de développer des pages web dynamiques
s’appuyant sur un grand volume de données et dont le contenu est adaptable au caractère
évolutif de ces données et aux requêtes particulières des utilisateurs.
Spring Security est un projet du portfolio Spring qui propose une solution de sécurise
complète intégrée aux systèmes utilisant Spring. Très largement utilisée au sein de la
communauté Spring, elle peut de facto être considérée comme un standard.
Le premier avantage de Spring Security est sa portabilité. Ne dépendant pas d’un serveur
d’applications particulier, son utilisation est identique quel que soit le serveur utilise.
Cette portabilité est particulièrement importante si l’application développée doit pouvoir
être vendue à un grand nombre de clients possédant des systèmes hétérogènes.
Il fournit en standard un nombre de fonctionnalités beaucoup plus important qu’un serveur
java EE classique. Parmi les plus simples, et qui manquent cruellement dans la spécification
Java EE, citons l’authentification automatique par cookie pour un nombre donné de jours,
ainsi que la vérification qu’un utilisateur n’est pas déjà authentifié ave le login demandé.
Enfin il propose en outre des fonctionnalités avancées, telles que le support de solutions
de Single Sign-On (une authentification unique pour l’ensemble des applications de
l’entreprise) ou la sécurisation des objets de domaine, fournissant ainsi une aide considérable
au développement d’applications ayant des besoins complexes en matière de sécurité.
4-5 JUnit
JUnit propose:
Un Framework pour le développement des tests unitaires reposant sur des assertions
qui testent les résultats attendus.
Des applications pour permettre l'exécution des tests et afficher les résultats.
5- Environnement de travail
Dans cette partie nous allons présenter l’environnement dans lequel nous avons pu réaliser
notre application.
5-1 Spring Source Tool Suite (STS)
SpringSource Tool Suite (STS) est une version modifiée d’Eclipse qui fournit un
environnement de développement pour Spring. Il offre plusieurs fonctionnalités dont voici les
principales :
La simplification de la recherche des Beans Spring grâce à la fenêtre Open Bean. Il est
possible de les retrouver via leur id, de la même manière qu’on peut retrouver une
classe java.
L’auto-complétion qui apporte une assistance dans les fichiers XML au niveau des
noms des classes Java, des propriétés, des Beans Spring références mais aussi des
propriétés possibles (cette option est très pratique surtout quand on débute avec
Spring).
Possibilité de navigation entre les Beans Spring références ou vers les méthodes au
niveau des fichiers XML (notamment pour l’injection de dépendances), cela présente
un réel gain de temps mais aussi une facilite de compréhension du code. C’est très
appréciable pour les développeurs surtout pour des gros projets utilisant la surcharge,
l’héritage et le polymorphisme.
La gestion d’erreur et aussi un avantage : STS indique les erreurs ainsi que leurs
emplacements. Il est toujours plus facile de corriger des bugs quand ils sont situés
dans le code et qu’ils comportent des messages clairs et précis.
Il est idéal pour les entreprises utilisant Spring avec des serveurs hérités Java Enterprise
Edition (EE) mais recherchant une alternative économique et abordable. Il convient également
aux utilisateurs Tomcat ayant besoin de fonctionnalités supplémentaires de diagnostic et de
gestion opérationnelle, doublées d’un service d’assistance aux entreprises.
C'est un logiciel libre développé sous double licence en fonction de l'utilisation qui en
est faite : dans un produit libre ou dans produit propriétaire. Dans ce dernier cas, la licence est
payante, sinon c'est la licence publique générale GNU (GPL) qui s'applique.
7-1 XML
La force de XML réside dans sa capacité à pouvoir décrire n'importe quel domaine de
données grâce à son extensibilité. Il va permettre de structurer, poser le vocabulaire et la
syntaxe des données qu'il va contenir. En réalité les balises XML décrivent le contenu plutôt
que la présentation (contrairement à HTML).
Ainsi, XML permet de séparer le contenu de la présentation, ce qui permet par exemple
d'afficher un même document sur des applications ou des périphériques différents sans pour
autant nécessiter de créer autant de versions du document que l'on nécessite de
représentations. XML a été mis au point par le XML Working Group sous l'égide du World
Wide Web Consortium (W3C) dès 1996.
7-2 AJAX
Dans notre application, nous avons besoin des interfaces riches avec des
comportements dynamiques, en effet nous avons besoin de créer des formulaires de saisie où
l’application va proposer les valeurs possibles à saisir dans un champ, après avoir saisi les
premières lettres.
Nous avons besoin aussi de créer des formulaires de saisie ; dont le nombre de champs
dépend du nombre de données que l’utilisateur veut entrer. Donc c’est celui-ci qui va créer le
nombre de champs dont il a besoin, autant plus nous avons besoin de consulter des sources de
données et faire des traitements coté serveur sur une partie de la page Web d’une manière
instantanée et sans avoir recours à envoyer la page toute entière, comme c’est le cas pour
vérifier la validité d’un nom du fichier ou sa version lorsqu’ils sont saisis par un acteur. Donc
nous avons choisi d’utiliser Ajax, car il permet de répondre à ces besoins, et il y’a plusieurs
Framework permettant d’implémenter ces fonctionnalités.
8- Outils de dessin
Dans Visio, les graphiques utilisés pour créer des diagrammes sont vectoriels. Les
versions Standard et Professionnel de l'édition 2013 partagent la même interface, mais cette
dernière permet de faire des diagrammes plus avancés, grâce à des modèles supplémentaires.
Cette version offre également une fonctionnalité unique qui permet aux utilisateurs de relier
facilement leurs diagrammes à un grand nombre de sources de données et d'afficher les
informations recueillies graphiquement.
Dans notre projet nous avons utilisé Microsoft Office Visio pour la création des
diagrammes de cas d’utilisation, diagramme de classe, diagramme d’activité et les
diagrammes de séquence.
Conclusion
Au terme de ce chapitre, nous avons capturé les besoins techniques du projet, ainsi nous
avons présenté l’architecture logicielle de notre système, et ensuite nous avons cite les
différents outils et les environnements de développement utilisés et le rapport détaillé des
Frameworks choisis.
Dans ce chapitre, nous allons présenter la conception détaillée du notre projet. Nous
commencerons par spécifier les cas d’utilisation, ensuite les diagrammes d’activité, de
séquence et enfin le diagramme de classe et un diagramme de déploiement.
Introduction
Les diagrammes de cas d’utilisation sont des diagrammes UML utilises pour donner une
vision stratique et globale du comportement fonctionnel d’un système logiciel. Ils sont utiles
pour des presentations aupres de la direction ou des acteurs d’un projet.
Acteur Description
Directeur Peut créer des comptes pour les clients, il
a le droit de gérer et suivre en temps réel
les projets et les taches, ainsi il peut gérer
les dépenses, les équipes, les employés et
les utilisateurs du système.
Titre Authentication
Acteurs Directeur, Chef de projet, Chef d’équipe,
Employé
Pré-conditions L’utilisateur (Directeur, Employé) saisit
login et mot de passe.
Scenarios Identification :
L’utilisateur saisit ses droits d’accès
(login et mot de passe).
Le système vérifie si les champs ne
sont pas vides, si erreur alors un
message d’erreur s’affiche.
Il vérifie ensuite si les informations
sont valides, si erreur alors Exception.
Le système redirige l’acteur vers page
d’accueil selon son rôle.
Le diagramme suivant (figure 23) presente les cas d’utilisation des deux modules gestion
des projets et gestion des taches, les deux acteurs principaux sont le directeur et le chef de
projet.Le chef de projet peut consulter le detail de chaque projet, créer un nouveau projet, le
modifier ou supprimer un projet parmi celles déjà enregistres.
Egalement il peut visualiser le diagramme de gantt de chaque projet.
Le chef de projet peut créer des nouvelles taches pour chaque projet exisite, il peut affecter
des taches aux equipes, enfin il peut les modifier et valider celles enregistrees ce que necessite
la generation des rapports. Le directeur peut créer un utilisateur. Egalement il peut modifier
ceux-ci, les consulter et les activer ou les désactiver.Toutes ces activites necessitent
l’authentification de l’utilisateur.
Figure 23: Diagramme cas d’utilisation pour la gestion des projets, taches et utilisateur
2-Diagramme d’Activité
Dans le langage UML, un diagramme d'activité fournit une vue du comportement d'un
système en décrivant la séquence d'actions d'un processus.
Les diagrammes d'activité sont similaires aux organigrammes de traitement de
l'information, car ils montrent les flux entre les actions dans une activité. Les diagrammes
d'activité peuvent, cependant, aussi montrer les flux parallèles simultanés et les flux de
remplacement.
Le diagramme suivant (figure 26) est la représentatif de ce qui se passe au sein du module de
gestion des taches.
Tout d’abord, le directeur s’authentifie si les informations de l’authentification sont
correctes alors il a le droit d’accéder à la gestion des taches. Ainsi il se trouve face à deux
opérations :
On commence par la création d’une nouvelle tâche, il remplit le formulaire par les
informations nécessaires, le système valide le formulaire si les données entrées sont correctes
alors la tâche est créée.
Ensuite le directeur consulte la liste des taches, il a le choix entre quatre opérations :
Supprimer une tâche : le directeur choisit une tache parmi ceux que le système
retourne et il valide la suppression ainsi le système procède à une mise à jour de la
base de données.
Le directeur peut modifier les informations d’une tache, il choisit la tache concernée
et effectue les modifications nécessaires puis valide l’opération.
Ensuite l’utilisateur peut valider une tache, il choisit la tâche qui à l’état terminée il
passe la tâche à l’état validée, ainsi le système modifie la tâche concernée.
L’utilisateur peut affecter la tâche à une équipe : il choisit la tache il demande
l’affectation de celle-ci puis le système retourne la liste des équipes. Ici l’utilisateur
assigne la tâche à l’équipe et il valide l’opération.
3- Diagramme de séquence
Les diagrammes de séquence présentent la coopération entre différents objets. Les objets
sont définis et leur coopération est représentée par une séquence de messages entre eux.
Le diagramme de séquence permet de cacher les interactions d’objets dans le cadre d’un
scenario d’un diagramme des cas d’utilisation. Dans un souci de simplification. Dont le but
est de décrire comment se déroulent les actions entre les acteurs ou objets.
Après la description des cas d’utilisation, nous allons élaborer le modèle dynamique dans
lequel nous allons décrire les scenarios de quelques cas d’utilisation, sous forme de
diagrammes de séquence.
Details du scenario :
Tout d’abor l’utilisateur insere son login et mote de passe, puis le système procede a la
verification de compatibilité des donnees saisées avec ceux existent dans la base de données.
Si les données entrées par l’utilisateur son correctes alors il se redirege vers la page d’accueil,
sinon l’utilisateur recoit un message d’erreur.
Details du scenario :
L’utilisateur choisit un projet voulu afin de visualiser son diagramme de gantt , ainsi le
système procede à l’affichage du diagramme correspondant.
Details du scenario :
Le directeur doit tout d’abors s’authentifier afin d’acceder au système, puis l’utilisateur se
trouve face entre trois choix. Le directeur peut ajouter un utilisateur, ainsi ildemande de créer
un nouvel utilisateur puis le système affiche le formulaire pour l’utilisateur a ajouter.
Le directeur saisit les informations necessaires et valide la creation ainsi le système insere
l’utilisateur dans la base de donnees.
Détails de scenario :
L’utilisateur doit premièrement s’authentifier, puis il effectue une demande de consulter la
liste des projets. Le système affiche la liste concernée ainsi que la liste des opérations (ajouter,
modifier et supprimer).
4- Diagramme de classe
Le diagramme de classes est considéré comme le plus important de la modélisation
orientée objet, il est le seul obligatoire lors d'une telle modélisation. Le diagramme de classes
en montre la structure interne. Il permet de fournir une représentation abstraite des objets du
système qui vont interagir pour réaliser les cas d'utilisation.
A partir de l’analyse lors de la partie analyse du projet et des diagrammes de séquence
présente, nous avons extrait un ensemble d’entités et de dépendances, cela a été traduit par
UML en un diagramme de classes (figure 31) qui sera ensuite décrit par un tableau détaillant
le rôle de chaque entité.
Classe Description
Employé Classe contenant les informations sur l’employé.
Projet La classe qui contient les informations nécessaires d’un
projet notamment la date début et la date de fin.
Tâche C’est une classe qui modélise la tâche d’un projet, elle
contient toutes les attributs d’une tache à titre d’exemple le
statut et la date début et la date de fin.
Utilisateur Classe contenant les informations sur l’utilisateur, elle
contient notamment les attributs suivant : l’adresse email et
si l’utilisateur est actif.
Rôle La classe qui représente le rôle d’un utilisateur.
Client C’est une classe contenant les informations d’un client
notamment les attributs : nom de client et l’adresse email.
Dépense Classe qui permet de déterminer les dépenses d’une tache.
Domaine Représente le domaine d’un projet précis.
Equipe Classe qui permet de déterminer l’équipe de l’ensemble des
employés.
Etat La classe qui modélise l’état d’une tache précis en temps
réel.
Compétence La classe qui contient les informations sur les compétences
d’un employé.
Facture Classe contenant les informations sur les factures des
projets.
Priorité La classe qui modélise la priorité d’une tache.
Tableau 20 : Dictionnaire de données
5- Diagramme de déploiement
Dans UML, les diagrammes de déploiement modélisent l'architecture physique d'un
système. Les diagrammes de déploiement affichent les relations entre les composants logiciels
et matériels du système, d'une part, et la distribution physique du traitement, d'autre part.
Les diagrammes de déploiement, que vous préparez généralement pendant la phase
d'implémentation du développement, présentent la disposition physique nœud et les
composants et autres éléments que les artefacts implémentent. Les nœuds représentent des
périphériques matériels tels que des ordinateurs, des détecteurs et des imprimantes, ainsi que
d'autres périphériques qui prennent en charge l'environnement d'exécution d'un système. Les
chemins de communication et les relations de déploiement modélisent les connexions dans le
système.
Le diagramme de déploiement suivant met en évidence les différents niveaux de l’application.
Conclusion
Ce chapitre a permis de donner une image claire et nette du système. Nous avons spécifié
les cas d’utilisation du système, ses diagrammes d’activité et de séquence, un diagramme de
classe et un diagramme de déploiement spécifiant l’infrastructure physique du système.
Dans ce chapitre, nous allons présenter le déroulement des tests que nous avons effectué
tout au long du développement du projet, l’architecture du système, ensuite nous passerons à
la description, accompagnées des interfaces homme-machine de l’application.
Introduction
Dans ce chapitre nous allons présenter la phase de réalisation du projet, ses interfaces
graphiques, et les tests d’intégration globaux de la solution PMSTalker.
1- Déploiement de PMSTalker
Apres avoir clôturé l’étape de la conception détaillée dans le cycle de développement Scrum,
nous avons rédigé un plan de test. En se basant sur ce dernier et sur le framework TestNG,
nous avons pu tester chaque fonctionnalité du système à part.
Pour tester chaque module ou fonctionnalité de l’application il faut implémenter le test
unitaire approprie, et chaque test comporte toutes les méthodes testant chaque fonction du
module objet de test.
L’environnement de développement « Spring STS » facilite l’implémentation de ces tests en
intégrant le framework TestNG. Il suffit de cliquer avec le bouton droit sur la classe à tester
puis choisir « Create TestNG » Afin de sélectionner les fonctions à tester, dans ce cas TestNG
va créer une classe de test Java contenant l’ensemble des fonctions test de la classe à tester
comme on peut remarquer dans la figure suivante :
Nous avons réalisé ensemble des tests sur différents classes de la couche métier :
On a réalisé la classe ClientMetierImplTest qui contient le test des méthodes pour gérer les
clients.
La classe DepenseMetierImplTest est la classe de test pour les méthodes qui définissent les
dépenses.
La classe EmployeMetierImplTest c’est la classe de test des méthodes pour gérer les
employés (figure 37).
Couche présentation :
Cette couche correspond à la partie de l’application visible et interactive avec les utilisateurs.
Ici c’est l’interface Homme-Machine, il s’agit d’une interface web elle intercepte les
évènements et fait appel aux services de la couche View.
Couche Service :
C’est une couche intermédiaire entre les couches View et la couche DAO (Data Access
Object), son rôle est de gérer les transactions qui seront ouvertes à chaque appel de la base de
données.
Cette couche est mise en œuvre à l’aide du framework Spring MVC (module de gestion des
transactions).
Rapport :
L’interface relative aux clients se présente comme suit (figure 40 ) où on trouve une liste des
clients de l’entreprise avec qui elle travaille ses projets :
La figure montre la liste des clients existent dans la base de données, ici l’administrateur
peut modifier ou supprimer un client, aussi il peut ajouter un nouveau client.
Passons maintenant à la création d’un nouveau client. L’utilisateur remplit le formulaire
suivant :
Ici il insère les informations nécessaires par exemple l’adresse email de client et son numéro
de téléphone et il doit renseigner le statut du client s’il est actif ou inactif.
La vue générale de la gestion des employés est représentée dans la figure qui suit ( figure 42):
L’interface regroupe les employés travaillant chez l’entreprise, l’utilisateur peut effectuer les
opérations usuelles (modification, suppression et l’insertion).
L’utilisateur peut créer un nouvel employé via l’interface suivante en entrant les informations
à propos l’employé dans chaque case du formulaire :
L’interface contant les informations générales d’un employé, ainsi que les informations
professionnelles par exemple le salaire et la date d’embauche puis il valide l’opération via le
bouton sauvegarder.
La vue suivante donne à l’administrateur une vision statistique sur les employés de
l’entreprise, les figures représentent les nombres des employés pour chaque service ainsi la
totalité des salariées.
L’administrateur remplit le formulaire suivant pour créer une équipe, il doit obligatoire
renseigner un chef pour cette équipe.
L’affectation des employés aux équipes est très importante. Tout d’abord l’administrateur
consulter la liste des équipes et choisit l’opération ajouter membre ainsi il se redirige vers
l’interface suivante (figure 49) il choisit les employés concernés et il valide l’affectation via le
bouton affecter.
Pour pouvoir créer un projet, l’administrateur remplit le formulaire suivant par les
informations d’un projet comme la date de début et la date de fin. Suite à une validation de
l’administrateur, le système vérifie les données entrées et valide l’action.
La figure suivant illustre les documents dépendants à un projet, à partir de cette interface
l’administrateur peut consulter les documents d’un projet, les télécharger ou les supprimer.
L’administrateur peut visualiser chaque projet avec ses taches à l’aide de diagramme de
Gantt. Pour ce faire, il se redirige vers l’interface de consultation des projets et sélectionne un
projet auquel il est généré le diagramme de Gantt.
Le diagramme illustre de façon détaillée les taches avec ses dates de début et dates de fin.
A partir de la liste de consultation des projets, l’administrateur peut consulter les détails d’un
projet, les informations générales d’un projet, ses taches associées et le diagramme de Gantt.
La figure suivante (figure 55) montre les informations générales d’un projet, par exemple sa
date de début et sa date de fin.
L’interface suivante présente la liste des taches associées à un projet selon ses priorités, ses
dates de début et ses dates de fin.
Comme on peut à partir de l’onglet suivante (figure 57) de visualiser le diagramme de Gantt
du projet :
L’utilisateur peut ajouter une nouvelle tâche via l’interface de nouvelle tâche (figure 59). Il
remplit le formulaire par les informations de la tâche que l’on souhaite ajoutée.
Pour l’ajout d’une nouvelle catégorie des dépenses, on obtient un formulaire contenant le
compte comptable, nom de catégorie et le type de rapport de taxe.
L’administrateur a la possibilité de consulter la liste des dépenses, afin de les gérer (ajouter,
modifier, supprimer) dépense.
Pour ajouter les dépenses, l’administrateur doit remplir le formulaire suivant (figure 63) par la
date de dépense et il doit choisir la tache concernée et la catégorie de dépense.
L’administrateur peut consulter le rapport des dépenses via l’interface suivante, elle
représente les statistiques concernant les dépenses par exemple, le nombre de dépenses par
statut et selon la catégorie.
La figure suivante montre les détails d’une facture, contient tous les informations nécessaires
d’une facture, en cliquant sur le bouton Génération de la facture pour extraction sous format
PDF.
Suivi du temps :
Le directeur peut consulter le calendrier de ses projets, l’interface suivante (figure 67) illustre
le calendrier qui contient les noms des projets à réaliser selon les dates de début.
Chaque tache crée sera afficher dans le calendrier de planning des taches suivantes comme
elle représente la figure suivante (figure 68) :
A son tour L’employé peut se connecter à notre système pour voir l’avancement des projets
sur lesquels il travaille et aussi voir les tâches qui lui sont affectés. Il peut aussi modifier l’état
de la tâche qu’il travaille lorsqu’il la termine.
Dans cette figure l’employé peut consulter la liste de ses projets :
Dans la figure suivante l’employé peut consulter seulement ses tâches et valider la tâche qu’il a
terminé comme suit :
Conclusion
Au cours de ce chapitre, nous avons effectué une brève présentation du processus de
test, nous avons donné un aperçu de notre démarche de développement afin de garantir la
mieux organisation de cette phase. Après avoir illustrée quelques vues et aspects de notre
applications nous avons exposée des tests effectues tout au long du codage qui ont pour but de
tester le système fabriqué.
Les perspectives possibles à la suite du présent projet sont multiples et couvrent plusieurs
aspects, tels que l’émigration des données a une base de données NoSQL comme Cassandra et
la création d’une version mobile.
Finalement, cette expérience était opportunité que nous avons apprise en travaillant avec
des technologies récentes et sollicitées sur le marché, plus particulièrement, le développement
des applications avec la spécification Java EE et en utilisant des Framework très connus a titre
exemple Spring MVC, Spring Security, Hibernate ORM, comme elle nous a offert
l’opportunité d’intégrer dans l’environnement de l’entreprise et d’améliorer nos capacités
dans notre vie professionnelle tout en enrichissant nos connaissances et notre formation
théorique et pratique acquise durant nos études à l’ENSATE.
[Ref 1] : http://www.blog-gestion-de-projet.com/henry-laurence-gantt-et-son-diagramme/
[Ref 2] : http://www.clipindustrie.com/fr/pages/gestion-de-projet
[Ref 3] : https://fr.wikipedia.org/wiki/Scrum_(m%C3%A9thode)
[Ref 4] : http://mastercomputersystem.com/reseaux.php?page=res
[Ref 5] : https://www.jtips.info/index.php?title=Spring/Test
Webographie
Spring Pour Nous :
http://projects.spring.io/spring-security/, 05/03/2016
Mkyong :
http://www.mkyong.com/spring-mvc/, 06/03/2016
Websystique :
http://websystique.com, 15/03/2016
Mkyong tutorials
http://www.mkyong.com/tutorials/spring-mvc-tutorials/,18/03/2016
JUnit Tests
http://www.junit.fr//, 24/04/2016