Rapport de Stage Pfa
Rapport de Stage Pfa
D’Année
Sujet:
Réalisé par
Nom : BahaEddine
Prénom : Jbali
Remerciements :
La réalisation de ce projet a été possible grâce au concours de plusieurs personnes
à qui me voudra témoigner toute ma reconnaissance. Je tiens tout spécialement à
exprimer mon plus grand respect et ma gratitude à mon encadrant, avec qui m’ai eu
l'honneur de travailler. A Mr Ben Mansour Ramzi, pour son encadrement, sa
disponibilité, et la confiance qu’il m’a donné ainsi que pour tous ses conseils
précieux et son soutien et son sens d'orientation durant la réalisation de mon projet.
Avec beaucoup d’égard, je ne manque pas d’exprimer ma grande reconnaissance à
tous les enseignants de l’institut supérieur au Kef et plus particulièrement aux
membres du jury qui ont accepté de juger ce modeste travail.
2
Sommaire
Table de matière
1.2 Problématique………………………………………………………………………………..
1.3.1 SCRUM…………………………………………………………………………….
1.5 Objectifs
…………………………………………………………………………………………
3
2.2.4 Sous-système 3 : Gérer les employées …………………………
2.3.3 Authentification………………………………………………………………
2.5 Conclusion
………………………………………………………………………………………
3.3.2.1 Authentification…………………………………………………..
4
3.4
Conclusion………………………………………………………………………………………
Conclusion………………………………………………………………………………………
5
Figure 8: Diagramme D'activité " Ajouter Employé"…………………………..
FIGURE 12 : HOME………………………………………………………………
Tableau 1 : Description textuelle du cas d'utilisation " Gestion des Demandes de Stages
6
Introduction générale
Le monde connaît une avance technologique considérable dans tous les secteurs et qui évolue
grâce à l'informatique ; il s’agit d’une science qui étudie les techniques du traitement
automatique de l'information.
Elle joue un rôle important dans le développement de l'entreprise et d'autres établissements. Elle
intervient dans tous les domaines et tous les secteurs pour rendre le travail plus facile, plus précis
et surtout bien géré.
Avant l'invention de l'ordinateur, on enregistrait toutes les informations manuellement sur des
supports en papiers ; ceci engendrait beaucoup de problèmes : tels que la perte de temps
considérable dans la recherche de ces informations ou la dégradation de ces dernières.
Ainsi, jusqu'à présent, l'ordinateur reste le moyen le plus sûr pour le traitement et la sauvegarde
de l'information.
Cette invention a permis d'informatiser la gestion des données des entreprises. Cette gestion
présente la tâche la plus importante dans le développement des systèmes d’information de ces
entreprises.
En effet, les sociétés cherchent à améliorer la gestion de leurs activités en les informatisant.
Toute entreprise est confrontée à des problèmes liés à ses tâches administratives. C’est pour cela
que les applications et les systèmes informatiques sont des solutions idéales pour rendre plus
efficace cette tâche.
La définition usuelle d'un système d'information (SI) ressemblait à ceci: ``Le système
d'information est l'ensemble des informations formalisables circulant dans l'entreprise et
caractérisées par des liens de dépendance, ainsi que des procédures et des moyens nécessaires
pour les définir, les rechercher, les formaliser, les conserver, les distribuer ''.
Le présent travail se situe dans le cadre de notre projet de fin d’année qui consiste à développer
une application web qui gère ces activités. Ce travail assure : la gestion des employées et des
stagiaires.
7
Le premier chapitre " Etude préalable " sera consacré à mettre le projet dans son cadre général :
présenter le projet.
Le deuxième chapitre nommé : sprint 0 décrit : « analyse et spécification des besoins " : dans ce
chapitre nous détaillerons les différents besoins fonctionnels et non fonctionnels du projet. Pour
cela, nous aurons recours aux diagrammes de cas d’utilisation UML et des diagrammes de
séquences systèmes.
Le troisième chapitre : nommé sprint 1 " Conception " sera consacré à la partie conception du
système à travers une présentation de l’architecture utilisée, de la description détaillée des
classes, des règles de gestion, du diagramme de classe et des diagrammes d’activités.
Le quatrième et dernier chapitre nommé : sprint 2 "Réalisation et tests " suivra à décrire
l’environnement du travail et tous les aspects techniques ainsi que le diagramme de déploiement.
L’évaluation de la qualité du processus de développement suivra dans ce chapitre.
8
Chapitre 1 : Cadre général du projet
Ce chapitre a pour objectif de mettre le projet dans son cadre général : je présente mon projet.
1. Cadre du projet :
Dans le cadre professionnel actuel, les entreprises tentent de tous informatiser afin de faciliter le
contact avec les clients, les partenaires, les stagiaires… Dans ce cadre et en guise de la
réalisation de mon projet de fin d’année, j’ai été invité à concevoir et développer une application
web permettant la gestion des stagiaires et des employées au sein d’une entreprise.
2. Problématique :
Il s’agit de la réalisation d’une application web facile et simple à manipuler qui permet de gérer
les demandes de stagiaires et la gestions des employées et leur attribuer des stages adéquats :
consulter et mettre à jour les stagiaires et les employées…
Le développement de cette solution doit passer par une phase ultime de modélisation du
système, qui permettra de faciliter l’étude et la documentation. Une méthodologie est une
démarche qui répond à ces exigences et permet la construction d’application, sur le plan
fonctionnel et technique, conforme aux attentes des divers intervenants du projet. A ce fait j’ai
adopté le modèle de cycle de vie SCRUM comme processus de travail et UML comme langage
de modélisation.
a. SCRUM :
J’ai opté pour le processus SCRUM pour plusieurs raisons [1]. Ce processus fait en sorte
d’atteindre les objectifs d’affaires grâce au travail sur les fonctionnalités qui ont la plus grande
valeur ajoutée et assure aussi que le projet s’adapte aux exigences changeantes et il est
transparent pour toutes les parties prenantes et procure de nouvelles fonctionnalités à des
intervalles réguliers. SCRUM est une méthode de management de projet conçue pour les projets
de développement logiciels. Elle s'applique toutefois théoriquement à n'importe quel contexte où
9
un groupe de personnes travaillant ensemble pour atteindre un objectif commun. Cette technique
est reconnue pour sa flexibilité et son efficacité, par exemple:
La planification régulière de réunions dont l'objectif est définie en fonction du cycle courant
qui favorise la communication entre les membres de l'équipe ainsi que le transfert de
connaissances, et permet de détecter les risques dans le développement du projet, afin d'anticiper
d'éventuels retards.
Les exigences du client ne sont pas figées dès la planification du projet ; celle-ci peuvent
évoluer (de manière raisonnable), et le client est inclus dans le processus de développement, ce
qui procure une meilleure visibilité des progrès et difficultés rencontrées, et favorise donc le
dialogue entre les deux parties.
b. Les réunions :
10
Quatre réunions sont définies dans le modèle SCRUM :
Le Daily SCRUM : réunion quotidienne qui a pour objectif de faire le point sur l'avancement
et les difficultés rencontrés par chacun des membres. Réunion limitée à 20 minutes.
Le Sprint review meeting : réunion qui conclut un cycle de développement et qui a pour
objectif de faire le point sur le travail accompli, de définir un démonstrateur pour le stakeholder
et pour le Product owner. Réunion limitée à 1 heure.
Le Sprint rétrospective : réunion où tous les membres du groupe réfléchissent sur les points
positifs et négatifs qui ont caractérisé le dernier sprint en matière d'organisation et de
coopération. Réunion limitée à 1h30.
c. Les acteurs :
Directeur de produit : c’est le représentant des clients et utilisateurs. C'est lui qui définit l'ordre
dans lequel les fonctionnalités seront développées, et qui prend les décisions importantes
concernant l'orientation du projet.
SCRUM Master : c’est lui qui est chargé de protéger l'équipe de tous les éléments
perturbateurs extérieurs à l'équipe et de résoudre ses problèmes non techniques (administratifs
par exemple). Il doit aussi veiller à ce que les valeurs de SCRUM soient appliquées, mais il n'est
ni un chef de projet ni un intermédiaire de communication avec les clients.
L’Équipe : ne comporte pas de rôles prédéfinis, elle est autogérée. Toutes les décisions sont
prises ensemble ; nous n’avons pas de notion d’hiérarchie interne.
Intervenants : Les Intervenants (Stakeholders) sont les personnes qui souhaitent avoir une vue
sur le projet sans réellement s'investir dedans. Il peut s'agir par exemple d'experts techniques,
d'agents de direction qui souhaitent avoir une vue très éloignée de l'avancement du projet.
11
d. Le backlog du produit :
Le backlog du produit est la liste des fonctionnalités attendues d'un produit. Plus exactement,
au-delà de cet aspect fonctionnel, il contient tous les éléments qui vont nécessiter du travail pour
l'équipe. Les éléments y sont classés par priorité ce qui permet de définir l'ordre de réalisation.
Le backlog du produit est sous la responsabilité du Product owner. Chacun peut contribuer à
collecter des éléments, mais c'est le Product owner qui les accepte finalement et c'est lui qui
définit les priorités. Le backlog est élaboré avant le lancement des sprints, dans la phase de
préparation (ou sprint0). Il est utilisé pour planifier la release, puis à chaque sprint, lors de la
réunion de planification du sprint pour décider du sous-ensemble qui sera réalisé. C'est donc un
outil essentiel pour la planification. Mais il est aussi, par sa nature, un maillon de la gestion des
exigences, puisqu'on y collecte ce que doit faire le produit.
4. Présentation entreprise
La Société National des TELECOM est un établissement public à caractère industriel. Il a été
créé par la loi 95-36 du 17 Avril 1995 et certifié son nom commercial TUNISIE TELECOM,
dont l’objectif est de satisfaire les besoins des différentes catégories de clientèles avec une
meilleure qualité et l’informatisation de tous ses services.Tunisie Télécom propose des services
dans le domaine des télécommunications fixes et mobiles.
Objectif de la région :
* Appliquer les politiques générales et atteindre les objectifs fixés d’un commun accord.
5. Objectifs :
13
* Faciliter l’envoi des demandes de candidature.
6. Conclusion :
Ce chapitre résume l’étude préliminaire que j’ai mené lors des premiers jours. Ceci m’a permis
de mettre le projet dans son contexte général, d'identifier sa problématique, d’étudier les
applications existantes, cerner les défaillances des systèmes existants et de conclure par la
proposition d’une solution.
La capture des besoins est une étape primordiale dans le cycle de développement d’un produit
ou d’un service. Cette phase de spécification est la traduction des besoins utilisateurs en
documentations conceptuelles et techniques.
Les besoins fonctionnels répondent aux points précis du cahier des charges, et sont donc requis
par mon utilisateur final et lui sont indispensables. En d’autres termes, ce sont les besoins
obligatoires ou encore les fonctionnalités de l’application. A cet égard, mon application doit
répondre aux besoins fonctionnels suivants
Supprimer un stagiaire.
Modifier un stagiaire.
Rechercher un stagiaire.
15
Gérer les stages demandés :
Consulter sa demande.
Ajouter un employé.
Supprimer un employé.
Rechercher un employé.
Ce sont des exigences liées à la production ainsi qu'à l'utilisation et qui ne concernent pas
spécifiquement le comportement du système mais plutôt identifient ses contraintes internes et
externes. Dans cette partie j’ai opté de se baser sur la norme ISO 25000 pour créer le modèle de
qualité du système.
Présentation de la norme :
ISO 25000 est un modèle de qualité ayant pour objectif de poser le cadre et la référence
pour définir les exigences qualité d’un logiciel (ISO 9126) et la manière dont ces exigences
seront évaluées (ISO 14598). Cette norme offre un cadre pour l’intégration des évolutions des
16
normes ISO 9126, la qualité logicielle, et ISO 14598, l’évaluation de la qualité logicielle .En
suivant les 25 exigences du modèle Square je m’intéresse à l’exigence liée à la production ainsi
que l’exigence à l’utilisation.
H:Haut
M:Moyen
F: Faible
Poids: H
Adéquation : Les fonctionnalités devraient être en adéquation avec les besoins spécifiés.
Poids: H
Métrique: Nombre de fonctionnalité existante et non utilisée par les utilisateurs finaux.
Poids: H
Poids: M
Poids: H
Poids: H
18
Métrique: Probabilité de trouver la clé de chiffrement ou la signature électronique.
19
FIGURE 1 : DIAGRAMME DE CAS D'UTILISATION GLOBAL
20
b. Sous-système 1: Gérer les demandes :
21
c. Sous-système 2 : Gérer les offres de stage :
22
FIGURE 4 : DIAGRAMME DE CAS D'UTILISATION :
GESTION DES employées
23
e. Sous-système 4 : Gérer les authentifications
24
3. Descriptions textuelles :
25
b. Gestion des stages:
26
c. Authentification:
27
d.Gestion des employees:
28
4. Diagrammes séquence système :
29
5. Conclusion :
Dans ce chapitre, j’ai débuté par une spécification détaillée des besoins fonctionnels et non-
fonctionnels de mon projet. Ensuite, j’ai identifié les acteurs et les cas d'utilisations du système à
travers les diagrammes de cas d'utilisations et les diagrammes de séquences système. J’ai fini par
une explication du processus de gestion de mon projet avec la méthodologie SCRUM.
30
Chapitre 3 : Conception de la solution
Après avoir déterminé les besoins fonctionnels et non fonctionnels de mon projet, j’ai passé à
l'étape de la conception du système. En premier lieu, j’ai décri l'architecture sur laquelle est basé
mon système. En second lieu, j’ai présenté la conception technique détaillée de mon projet en
présentant la vue statique à l'aide de diagramme de classe ainsi que la vue dynamique et ceci à
travers les diagrammes de séquence objet et les diagrammes d'activités.
1. Architecture conceptuelle :
Une application multi couches qui nécessite plusieurs serveurs logiciels appelés
Middleware et dans laquelle je distingue différents rôles pour chaque composant logiciel.
Je présente ci-dessous les principaux composants :
c’est lui qui va faire en sorte qu’il soit accessible via notre
navigateur.
2. Conception architecturale :
L'architecture trois tiers est un modèle logique d'architecture applicative qui vise à
modéliser une application comme un empilement de trois couches logicielles.
Mon application a une architecture 3 tiers qui est composée de 3 niveaux dont le rôle est
clairement défini :
31
La couche présentation: Cette couche correspond à l'interaction entre homme et
machine.
La couche accès aux données persistantes : Cette couche correspond aux données qui
sont destinées à être conservées sur la durée, voire de manière définitive
a. Représentation statique :
Cette étape consiste à détailler la conception de mon application tout en débutant par la
représentation statique du système accompagnée par la suite de quelques scénarios
utilisant une représentation dynamique de mes modules. La représentation statique est
consacrée à décrire soigneusement et précisément les classes, les règles de gestion ainsi
que les diagrammes de classes qui expliquent à leur tour les différents rôles et
associations entre les modules.
Diagramme de classe :
Le diagramme de classe est une représentation statique des éléments qui composent un
système et qui définissent sa structure interne contrairement au diagramme de cas
d'utilisation qui montre le système de point de vue acteur et de leurs relations. Il est
considéré comme le plus important de la modélisation orientée objet .C'est le seul
diagramme obligatoire lors d'une telle modélisation.
32
33
Description détaillée des classes:
Classes Propriétés
Personne Matricule
Nom
prenom
code_grade
libelle_grade
code_service
libelle_service
created
Contacts id
code_grade
libelle_grade
created
Service id
code_service
libelle_service
created
Admin id
nom
prenom
mail
cin
password
User id
nom
prenom
mail
cin
password
34
Msg id
unique id
img
username
email
pass
status
Stage nom
prenom
mail
cin
nom
type
created
Tableau 9 : Description détaillée des classes
Règles de gestion :
35
b. Représentation de la vue dynamique :
Dans le cas d'ajout d’un stagiaire, le système affiche un formulaire. L'utilisateur remplit
les champs du formulaire et valide son choix. Si les champs sont valides, le système
ajoute le stagiaire et le sauvegarde. Sinon, l'utilisateur doit remplir de nouveau les
champs manquants.
36
Authentification :
. Ajouter employé:
37
FIGURE 19: DIAGRAMME D'ACTIVITE " AJOUTER EMPLOYE"
38
. Demander stage:
39
. Modifier stagiaire:
40
. Supprimer stagiaire:
4. Conclusion :
Dans ce chapitre, j’ai commencé par une conception technique de mon système. Ensuite, j’ai
détaillé la conception à travers les diagrammes de classe et d’activités. Dans le prochain chapitre,
je vais présenter l’environnement du développement matériel et logiciel ainsi que la description
et l’évaluation de la qualité travail réalisé.
du résultat obtenu.
1. Environnement de travail :
Je présente, dans cette section, l’environnement matériel et logiciel utilisé pour le développement
de la solution.
a. Environnement matériel :
machine :
Architecture 3-tiers:
Star UML:
StarUML est un outil spécialisé dans la modélisation UML pratique dans le domaine du
développement d'applications. Il gère la plupart des diagrammes spécifiés dans l’UML.
43
Figure 12 : Home
Figue 13 : Inscription
44
Figue 14 : Connection
45
Figue 15 : Espace Administrateur
46
Figue 17 : Ajouter employé
47
Figue 19 : Demander un stage
Figue 20 : Chat
48
Conclusion générale
Ce rapport est le fruit d'un travail réalisé dans le cadre de mon projet fin d'année à l’ISI.
L'objectif principal de mon travail était de concevoir et développer une application web
qui permet la gestion des stagiaires et des employés au sein de la société. J’ai commencé
en premier lieu par identifier le cadre de mon projet et déterminer les solutions et les
objectifs. Ensuite, j’ai analysé et spécifié les besoins fonctionnels à l'aide des diagrammes
UML et non fonctionnels à travers la norme ISO 25000. L'avancement de mon travail
était d'une façon incrémentale en suivant les principes de la méthodologie SCRUM. La
conception graphique et architecturale nous a aidés à réaliser et implémenter les
différentes parties de mon travail. Tout au long de la période de réalisation du projet, j’ai
rencontré plusieurs difficultés aussi bien sur le plan conceptuel que sur le plan de la
réalisation. Mais tout de même, j’ai pu les surmonter -grâce à mes efforts pour présenter à
la fin un système fonctionnel et opérationnel. Certes, Cette application ne prend pas fin
avec l'achèvement du présent projet mais, plusieurs améliorations restent envisageables
telles que la synchronisation du calendrier des rendez-vous avec l'application mobiles
"Google Calendar", le développement d'une application qui gère la relation avec la
49