Professional Documents
Culture Documents
Rapport Pfe
Rapport Pfe
1) Introduction :
L'étude de projet consiste en une approche stratégique qui vise à garantir la bonne exécution
d'un projet en prenant en compte toutes les phases qui le composent. Dans ce premier
chapitre, nous contextualisons notre projet de fin d'études en définissant le cadre dans lequel il
a été élaboré, les problématiques et les objectifs à atteindre. Nous expliquons également la
méthodologie que nous avons suivie pour mener à bien notre travail.
Notre projet de fin d'année a eu lieu chez INNOVUP, une start-up tunisienne fondée par M.
Khalil Driss en 2020 qui se spécialise dans le domaine de l'informatique et des nouvelles
technologies. L'équipe principale de notre startup se concentre sur la création d'applications
innovantes et de haute qualité qui améliorent la vie de ses utilisateurs. En outre, ils apportent
leur contribution au projet d'informatisation en aidant à automatiser le gouvernement tunisien.
Notre start-up offre à ses clients des solutions innovantes de premier ordre, visant à produire
des résultats de haute qualité. Nous sommes impatients de voir les avantages des innovations
révolutionnaires en Tunisie et espérons que l'Afrique sera la prochaine destination à en
bénéficier.
a. Les services :
Notre startup propose des différents et larges services en tous les domaines :
Projet IOT
Conception numériques :
o Sliders, flayers, billboards…
o Des divers logos et des modèles Web, des modèles de lettres et des modèles
graphiques personnalisés pour le client
b. Organigramme de la société :
directeur
generale
developpeur web
comerciale
et mobile
2) Etude de l’existant :
L’étude de l’existant est une étape préalable sert à Identifier les lacunes et les imperfections
trouvés et donner un aperçu sur la pertinence de projet, sa faisabilité ainsi que sa continuité.
Elle se définit par la recherche des applications qui sont similaires ou semblables à la nôtre en
vue d’avoir une idée sur ce qui existe actuellement. Deux cas peuvent se présenter :
Le site existe déjà, il faut donc chercher comment améliorer ses fonctionnalités.
Le site est inexistant : il faut donc le créer.
Pour nous, nous n’avons pas trouvé un site existant déjà chez l’organisme d’accueil sur lequel
on va dégager les différents points négatifs et par conséquent tenter de l'améliorer. Nous
allons donc créer un nouveau site une recherche, nous avons relevé quelques constats qui
peuvent nous aider pour élaborer la liste des fonctionnalités de notre future application.
Une salle de sport est un lieu où sont rassemblés des équipements destinés à l'exercice
physique. A ce titre, c'est un espace de remise en forme et de bien-être. Les personnes qui
souhaitent s'y inscrire doivent s'y rendre pour en savoir plus sur les différents activités
sportifs et entraîneurs, ainsi que sur les prix et les heures d'ouverture des salles de sport. Et
concernant les salles l’inscription des sportifs, la gestion des coachs et les autres différentes
taches se fait manuellement sur des fichiers Excel que lors d’une panne de fonctionnement
peut causer des pertes des données.
-la perte du temps après une langue étude pour trouver la salle adaptée avec ses besoins que ce
soit localisation, prix, activités ….
-l’information est décentralisée et dispersée sur plusieurs fichiers ce qui cause le problème de
redondance.
-les contenus des salles sauvegardées dans des dossiers Excel provoque parfois perte des
données.
-l’abondance des informations et les responsabilités de chef que ce soit gestion des emplois du
temps, gestion des coaches et ses autres actions peut engendrer des difficultés.
b) Solution proposée :
Après avoir relevé un ensemble de constats, nous avons décidé en premier lieu de permettre à
tout salle de gérer ses propres catégories de cours et activités d’une façon indépendante des
autres pour qu’il soit plus libre et bénéficie d’une notoriété personnelle. Dans notre
application, la salle est un maître de lui-même.
Cette application permet aussi d’assurer la sécurité des données et leur fiabilité (payement).
Ce projet apporte deux avantages principaux. Le premier c’est le gain de temps relatif au
recherche et l’inscription aux salles pour le client, et le second c’est la simplification de la
tâche du responsable.
a) Méthode Agile :
La qualité d'un logiciel informatique est le plus important facteur dans le développement
logiciel, les méthodes agiles donnent une grande envergure à cet aspect.
L'objectif principal des méthodes agiles donc est de guider les décisions et la conduite d'un
projet informatique. Plusieurs méthodes agiles ont vu le jour dernièrement, parmi les plus
connu on cite : Scrum, EXtreme Programming (XP), Rational United Process (RUP), Feature
Driven Development (FDD), etc.
La méthode adoptée dans la conduite de notre projet est la méthode SCRUM pour plusieurs
raisons que nous allons citer dans les prochaines parties.
SCRUM donc est une méthode efficace pour guider un projet jusqu'à arriver à son terme. Elle
se caractérise par décortiquer le projet en morceaux qui sont des itérations appelés « Sprints »
de courte durée d’un mois maximum.
o Product Owner : Lui c’est l’expert qui collabore avec le client. Souvent le fondateur
ou le boss.
Ce “ cahier des charges “ n’est pas fixé pour toujours, et pourra évoluer en
fonction des besoins du client et l'avancement du projet. L’équipe décide de ce
qu’elle peut faire et dans quel ordre le faire.
o Sprint Backlog :
Par rapport à des autres approches, SCRUM s'avère léger, facile à maîtriser et à apprendre
mais également Extrêmement difficile à entreprendre. Toute au long de notre projet on a
essayé d'être fidèle et conforme aux plupart des évènements et de Timeboxes présents dans
cette méthode pour s'approcher au plus à satisfaire les besoins de notre client et respecter les
délais de livraison.
5) Conclusion :
Ce chapitre constitue une partie introductive de notre projet. En premier lieu, une présentation
du cadre général a été établie, en évoquant notamment notre objectif ainsi que les différentes
étapes et ramifications. En deuxième lieu la problématique a permis également de mettre en
relief les raisons qui ont contribuées à la naissance de notre projet, ainsi que les différentes
caractéristiques de la nouvelle solution. Enfin, nous avons décrit notre choix méthodologique
et technologique.
Chapitre 2 : Planification du projet
1) Introduction
Le chapitre précédent a introduit la méthodologie Scrum, que nous avons choisie pour
concevoir notre prochain système. Scrum est organisé en trois phases, la première étant la
phase de planification (appelée Sprint 0). Cette phase est essentielle pour la réalisation de
notre projet car elle permet de visualiser le produit, d'identifier les acteurs réactifs et de leur
associer un ensemble d'actions pour produire le backlog initial et planifier les premiers
sprints.
Dans ce chapitre, nous allons nous concentrer sur cette phase en commençant par la capture
des différents besoins de notre client, l'identification des rôles des utilisateurs et la préparation
de notre plan de sortie. Il s'agit d'une étape cruciale qui nous permettra de garantir le succès de
notre projet en fournissant une vision claire et en alignant les actions des acteurs impliqués.
Consulter salle de sport : Pour en savoir plus sur les équipements, les cours et les
programmes proposés par la salle de sport.
Les besoins non fonctionnels d'une application sont les objectifs de performance et les
contraintes environnementales qui doivent être respectées pour assurer un fonctionnement
optimal du système. Ces besoins sont souvent exprimés sous forme d'objectifs précis à
atteindre. Dans le contexte de notre application, nous avons identifié plusieurs besoins non
fonctionnels importants, tels que :
Fiabilité : notre système doit être fiable et offrir un service continu sans
interruptions ni erreurs.
La disponibilité du système : l'application doit être disponible pour les
utilisateurs à tout moment, sans interruption de service, pour garantir une
expérience utilisateur fluide.
Les besoins ergonomiques : sont un aspect clé de notre application, étant
donné que les utilisateurs qui vont l'utiliser sont de différents niveaux
d'expérience.
Interfonctionnel : notre système doit être capable de communiquer avec
d'autres systèmes externes, tels que des services de paiement en ligne, pour
offrir une expérience utilisateur plus complète.
Évolutivité : le système doit être évolutif et capable de s'adapter aux
changements futurs, tels que l'ajout de nouvelles fonctionnalités ou la prise en
charge de nouveaux types d'utilisateurs.
Convivialité : l'interface utilisateur doit être conviviale et facile à utiliser pour
tous les utilisateurs, qu'ils soient des administrateurs, des propriétaires de salles
de sport ou des sportifs.
Sécurité : les données des utilisateurs doivent être protégées contre les accès
non autorisés, les attaques et les tentatives de piratage.
Les performances : l'application doit être rapide et réactive, pour assurer une
expérience utilisateur agréable et éviter les temps d'attente.
La compatibilité : l'application doit être compatible avec les différents
navigateurs web, les systèmes d'exploitation et les appareils utilisés par les
utilisateurs.
Dans cette section, nous allons formaliser les besoins du système en utilisant le langage de
modélisation UML et plus précisément le diagramme de cas d'utilisation.
Ce dernier va nous permettre d'avoir une vue d'ensemble sur le comportement fonctionnel de
notre système logiciel. Il est important de souligner que tous les cas d'utilisation de notre
projet nécessitent une authentification préalable. De plus, pour répondre aux besoins
ergonomiques des utilisateurs, toutes les interfaces doivent être conçues de manière à garantir
une utilisation facile et intuitive .
Figure 2.1 « Diagramme de cas d’utilisation global »
Interface Gérer sportif : l'utilisateur peut accéder à toutes les informations et peut aussi fait une mise à
jour leur compte
Le back log de produit est un élément essentiel de Scrum, car il permet de recueillir
tous les besoins du client que l'équipe projet doit satisfaire. Notre application dispose
également d'un back log, présenté dans le tableau 1, qui résume les éléments clés de
notre produit, tels que les histoires utilisateurs.
Ces histoires sont rédigées en une ou deux phrases décrivant clairement et précisément
les fonctionnalités souhaitées par le client, et suivent généralement la structure « En
tant que X, je veux Y, afin de Z ». Chacune d'entre elles est également identifiée par
un ID, qui correspond à sa priorité dans le back log (décrite dans la section 3 de ce
chapitre).
Nous avons choisi de traiter en premier lieu les cas d'utilisation les plus prioritaires de
notre back log. Chaque histoire utilisateur est également accompagnée d'une
estimation initiale de l'effort nécessaire pour la réaliser, mesurée en points d'histoire
(équivalent à des jours/homme idéaux). Cette estimation nous permet de planifier et de
suivre l'avancement de nos développements de manière précise.
7) Architecture de la solution
7.1 Architecture logique
L'architecture logique est un processus qui permet d'identifier les différents
composants logiciels nécessaires à l'implémentation d'une solution. Elle décrit
également les relations et les interactions entre ces composants afin de garantir un
fonctionnement cohérent et efficace du système.
8) Conclusion
Ce chapitre a permis de définir clairement les contours du projet en identifiant les besoins
fonctionnels et non fonctionnels, les acteurs impliqués et le Back log du produit. Ensuite, il a
permis de planifier le temps nécessaire à la réalisation du projet en établissant les sprints.
L'architecture et l'environnement matériel et logiciel ont également été définis. La prochaine
étape consistera à lancer la phase d'initialisation du projet.
Chapitre 3
Mise en œuvre de release 1
1. Introduction
Le présent segment se concentre sur l'intégration de la méthode Scrum, une approche Agile,
dans notre projet. Nous prévoyons d'effectuer une analyse approfondie afin de répartir les
différentes fonctionnalités de l'application dans un Backlog. Nous prévoyons également de
planifier les sprints et d'estimer le temps nécessaire pour achever la release. Le Product
Owner, en collaboration avec les autres membres de l'équipe, est chargé de déterminer la
durée des releases. Notre première release se composera de deux sprints, chacun ayant une
durée de 14 jours et une vélocité totale de 28 jours. Le présent chapitre marque le début de
notre premier sprint, durant lequel nous examinerons le Backlog du Sprint afin de détailler les
multiples fonctionnalités à implémenter. Nous envisageons d'y parvenir en concevant et en
effectuant les travaux nécessaires (l’analyse, la conception, la réalisation et les tests
fonctionnels de chaque sprint).
2. Sprint 1
Sprint est un cycle de projet défini par le Framework Agile Scrum, dans lequel une série de
tâches est exécutée pour progresser dans une nouvelle phase de développement d'un produit.
Il s'agit d'une itération agile d'une durée de 1 à 4 semaines, durant laquelle l'équipe du projet
réalise un travail défini et fournit un incrément pour atteindre un objectif spécifique. Le travail
effectué dans ces cycles courts permet une adaptation rapide aux évolutions et facilite la
collecte des commentaires des utilisateurs.
a) Backlog de produit
Au cours de cette section, nous allons présenter le Backlog de produit sous forme d'un
tableau. Le Backlog consiste en une liste de fonctionnalités requises pour le produit. Chaque
fonctionnalité est exprimée sous la forme d'une "User Story", qui est une explication non-
formelle et générale du point de vue de l'utilisateur final. Nous allons spécifier la priorité de
chaque User Story ainsi qu'un nombre appelé "Story Points", qui représente le niveau de
difficulté de la tâche. Ce nombre est estimé en utilisant la suite de Fibonacci.
Cas Authentification
Acteur Administrateur
Résumé L’administrateur s’authentifié avec son
login et son mot de passe
Pré condition(s) Système opérationnel et paramètres saisis
Post condition(s) Administrateur authentifié
Gestion administrateur
Ajouter administrateur
La gestion des administrateurs est une tâche assignée à l'administrateur qui peut ajouter des
nouveaux comptes. Cependant, ces fonctionnalités ne sont accessibles qu'après une
authentification préalable pour des raisons de sécurité.
Modifier administrateur
Cas Modifier administrateur
Acteur Administrateur
Résumé Il s'agit d'une tâche qui vise à modifier les
anciennes données enregistrées des
administrateurs.
Pré condition(s) Administrateur est authentifié
Administrateur déjà présent.
Post condition(s) Les données ont été correctement modifiées
Scénario nominal 1. L’administrateur clique sur le bouton «
Modifier ».
2. Le système affiche le formulaire de
modification d’administrateur choisit.
3. L’administrateur modifié les anciennes
données.
4. L’administrateur valide le remplissage.
5.Le système vérifie les données et les
ajoutées dans la base de données.
Scénario(s)alternatif
A : En cas de champ manquant,
- 4 Le système affiche un message d’erreur
- L’administrateur vérifie et valide le
remplissage.
Gérer sportif
Ajouter sportif
Modifier sportif
Supprimer sportif
d. conception
À ce stade, notre approche commence par la conception statique du système en examinant
les différents cas d'utilisation qui ont été présentés en détail dans la section précédente. Nous
cherchons à déterminer les différentes entités impliquées dans chaque cas d'utilisation et les
relations entre ces entités. Cette étape nous permettra de définir les classes du système et leur
hiérarchie, ainsi que les attributs et les méthodes de chaque classe. Cette conception statique
est essentielle pour assurer une implémentation efficace et bien structurée du système.
Conception statique du sprint
Dans notre approche de conception statique, nous décrivons les différents composants
du système indépendamment de leur évolution dans le temps.
Un élément clé de cette conception est le diagramme de classe, qui exprime la structure
statique du système en décrivant toutes les classes et leurs associations. Chaque classe décrit
un ensemble d'objets, c'est-à-dire les instances de cette classe. En d'autres termes, la classe
représente les caractéristiques communes à un groupe d'objets, en ignorant les différences
individuelles. Lors de l'analyse et de la conception, il est préférable de réfléchir en termes de
classes plutôt que d'objets individuels. Les diagrammes de conception de classes sont
généralement divisés en trois compartiments : le compartiment supérieur contient le nom de la
classe, le compartiment du milieu contient les attributs de la classe, et le compartiment
inférieur contient les méthodes de la classe.
a) Backlog de sprint 2
Après avoir établi l'objectif du sprint, il est temps de sélectionner les histoires à inclure. Ainsi,
le tableau suivant présente le Backlog de notre deuxième sprint.
4 Gérer facture :
-Consulter facture L’administrateur peut Haut 1
consulter les factures.
-Télécharger facture L’administrateur peut Haut 1
télécharger les factures.
c. Analyse
Identification des acteurs et des cas d’utilisation
-Administrateur :
Gérer compte
Maintenance du site
Gérer facture
-propriétaire de salle de sport et sportif :
Inscription
Consulter compte
Cas Consulter compte
Acteur Administrateur
Résumé L’administrateur peut consulter son compte.
Modifier compte
Maintenir de site
En tant qu'administrateur de site web, la maintenance peut inclure plusieurs tâches,
notamment :
-Mise à jour du contenu - Il est important que le contenu du site web reste à jour pour
assurer que les informations présentées aux utilisateurs sont précises et pertinentes.
-Résolution de problèmes techniques - Lorsqu'un problème technique survient sur le site
web, l'administrateur est responsable de le résoudre pour s'assurer que le site est toujours
accessible aux utilisateurs.
-Ajout de nouvelles fonctionnalités - Si le site web a besoin de nouvelles fonctionnalités
pour améliorer l'expérience utilisateur, l'administrateur peut travailler avec l'équipe de
développement pour les ajouter.
-Gestion de la sécurité - L'administrateur peut mettre en place des mesures de sécurité
pour protéger le site web contre les cyberattaques et surveiller les activités suspectes.
-Optimisation de la vitesse de chargement - L'administrateur peut optimiser la vitesse de
chargement du site web pour garantir une expérience utilisateur rapide et fluide.
-Surveillance de la disponibilité du site web - L'administrateur doit surveiller la
disponibilité du site web et réagir rapidement en cas d'indisponibilité ou de panne du site.
En fin de compte, l'administrateur est responsable de s'assurer que le site web est à jour,
fonctionnel, sécurisé et répond aux besoins des utilisateurs.
Gestion des factures
Consulter facture
Télécharger facture
Cas Télécharger facture
Acteur Administrateur
Résumé Cette fonctionnalité permet à
l’administrateur de télécharger la facture
après le paiement de sportif
Pré condition(s) - L’administrateur est authentifié.
-l’administrateur consulter la facture
Post condition(s) Le téléchargement des factures se fait avec
succès
Scénario nominal 1. L’administrateur clique sur le bouton de
téléchargement après avoir choisir la facture
exacte.
2. Le système affiche un message de
confirmation.
3.L'administrateur confirme sa décision.
4.Le système fait le téléchargement.
Inscription
Pour bénéficier de toutes les fonctionnalités offertes par le site, le sportif et le propriétaire
de salle de sport doivent s'inscrire en remplissant un formulaire d'inscription. Le cas
d'utilisation « s'inscrire » peut être décrit en détail dans un tableau, comme suit :
Cas S’inscrire
Acteur Sportif / Propriétaire de salle de sport
Résumé Le sportif / Propriétaire de salle de sport
doit remplir un formulaire d'inscription
pour accéder à toutes les fonctionnalités du
site.
Pré condition(s) Le sportif / Propriétaire de salle de sport
doit avoir accès à internet et à un navigateur
web.
Post condition(s) Le sportif / Propriétaire de salle de sport est
enregistré sur le site et peut accéder à toutes
les fonctionnalités.
Scénario(s)alternatif
A : Si une information obligatoire est
manquante ou invalide :
- 3 le système affiche un message d'erreur et
demande à l'utilisateur de corriger les
informations saisies.
B Si l'adresse email fournie est déjà utilisée
pour un autre compte :
4-le système affiche un message d'erreur
demandant à l'utilisateur d'en choisir une
autre.
d. Conception
Cette partie commence par aborder la conception statique des différents cas d'utilisation qui
ont été détaillés dans la section précédente.
Conception statique du sprint
Digramme de classe
Diagramme de séquence
Une fois les cas d'utilisation décrits de manière textuelle, il est possible de les
représenter à l'aide de diagrammes de séquence. Ces diagrammes permettent de visualiser la
chronologie des interactions entre les acteurs et le système, cela permet également de
comprendre le sens et l'importance de ces interactions.
Gestion compte
Consulter compte
Consulter facture
Afin de clarifier cette fonctionnalité, nous allons nous pencher sur le cas d'utilisation
"consulter facture". Le diagramme fournit un aperçu des différentes étapes nécessaires à cette
opération. Une fois l'authentification effectuée, l'administrateur demande l'affichage de la liste
des factures en envoyant une requête au système de gestion de base de données, qui répond en
conséquence.
Télécharger facture
Cette étape concerne le processus de téléchargement d'une facture. Après que l'administrateur
s'est authentifié et a accédé à la liste des factures, il doit sélectionner celle qu'il souhaite
télécharger. Le système affiche ensuite un message de confirmation. Si l'administrateur
confirme le téléchargement, le système envoie une demande qui s'exécute et permet de
télécharger la facture. Si l'administrateur annule la demande en cliquant sur le bouton prévu à
cet effet, le processus de téléchargement est alors interrompu.
Inscription
Le diagramme de séquence ci-dessous décrit les étapes du processus d'inscription pour
les sportifs et les propriétaires de salle de sport. Lorsque l'utilisateur clique sur le bouton
"Inscrire", le système affiche un formulaire d'inscription. L'utilisateur remplit le
formulaire et clique sur le bouton "Enregistrer". Le système vérifie les données et envoie
une requête d'insertion pour ajouter un nouvel utilisateur à la table d'utilisateurs dans la
base de données. Le SGBD exécute la requête et renvoie le résultat. Si l'enregistrement est
réussi, la page privée de l'utilisateur est affichée. Sinon, le système affiche à nouveau la
page d'inscription avec un message d'erreur
Conclusion :
Le résultat final d'une release est le produit livrable qui est remis au client. Contrairement au
résultat d'un sprint, qui peut être considéré comme un produit potentiellement livrable, une
release doit être un produit totalement fonctionnel et prêt pour une utilisation en production. À
la fin de ce chapitre, nous avons réussi à produire un produit incrémental qui offre une valeur
suffisante aux clients et peut être utilisé en production. Dans le prochain chapitre, nous nous
concentrerons sur la création d'une nouvelle release pour améliorer davantage le produit et
répondre aux besoins changeants des clients.