2022.RAPPORT.3idl - Malak Bendalla
2022.RAPPORT.3idl - Malak Bendalla
2022.RAPPORT.3idl - Malak Bendalla
Par
Par
C’est grâce à Allah que j’ai élaboré ce modeste travail que je dédie :
ii
Remerciements
C’est avec plaisir, que nous dédions ces lignes afin d’exprimer notre profonde
leurs disponibilités et pour les directives qu’il nous a fournies pendant la durée
de stage.
ont accepté de juger notre travail, tout en espérant qu’ils trouvent dans ce
rapport les qualités de clarté et de motivation qu’ils attendent.
iii
Table des matières
Introduction générale 1
1 Contexte général 3
1.1 Organisme d’accueil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.1 Bee Coders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.2 Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Présentation du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.2 Étude de l’ éxistant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.3 Critique de l’éxistant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Solution envisagée et objectifs gloabaux . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.1 Solution envisagée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.2 Objectifs globaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Méthodologie de gestion du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.1 Choix méthodologique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.2 Pourquoi Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Langage de Modélisation UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
iv
2.7.2 Architecture logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.8 Environnement du travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.8.1 Environnement matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.8.2 Environnement logiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3 Sprint 1 30
3.1 Spécification et analyse des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1.1 Backlog du sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1.2 Diagramme de cas d’ utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2 Description détaillée des cas d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.1 Description du cas d’utilisation "S’ authentifier" . . . . . . . . . . . . . . . . 33
3.2.2 Description du cas d’utilisation " Activer un compte utilisateur" . . . . . . . 34
3.3 Diagrammes de séquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3.1 Diagramme de séquences " S’ authentifier " . . . . . . . . . . . . . . . . . . . 36
3.3.2 Diagramme de séquences « Activer compte utilisateur » . . . . . . . . . . . . 37
3.4 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4 Sprint 2 40
4.1 Spécification et analyse des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.1.1 Backlog du sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.1.2 Diagramme de cas d’ utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2 Description détaillée des cas d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.2.1 Description du cas d’utilisation " Poser une question " . . . . . . . . . . . . . 43
4.2.2 Description du cas d’utilisation " Répondre à une question " . . . . . . . . . 44
4.3 Diagrammes de séquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.3.1 Diagramme de séquences " Poser une question " . . . . . . . . . . . . . . . . 46
4.3.2 Diagramme de séquences « Répondre à une question » . . . . . . . . . . . . . 47
4.4 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5 Sprint 3 51
5.1 Spécification et analyse des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.1.1 Backlog du sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.1.2 Diagrammes de cas d’ utilisation . . . . . . . . . . . . . . . . . . . . . . . . . 55
v
5.2 Description détaillée des cas d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.3 Diagrammes de séquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.4 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Conclusion générale 64
Bibliographie 65
vi
Table des figures
vii
5.7 Interface des lessons du cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.8 Interface des notes de l’ étudiant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.9 Interface d’ évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.10 Interface du choix du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.11 Interface du choix du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.12 Interface du choix du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
viii
Liste des tableaux
ix
Liste des abréviations
— XP = EXtreme Programming
x
Introduction générale
En faisant de la matière grise l’un des principaux déterminants de notre croissance future et
en particulier la plus grande richesse d’un pays, l’économie de l’immatériel impose de disposer des
meilleures institutions permettant de la valoriser.
L’ école n’est plus suffisante pour acquérir toutes les connaissances désirées tandis que le
monde est maintenant plus que jamais, concernés par les effets de la mondialisation dont les nouvelles
technologies de l’information et de la communication, alors nous devons penser à un « apprentissage
efficace, rapide et flexible », avec un minimum de problèmes d’organisation, de logistique et surtout
de perte de temps, puisque la distanciation sociale oblige nombre d’entre nous à passer beaucoup
plus de temps en ligne . De ce fait, l’apprentissage en ligne est la solution.
À cet égard, notre projet de fin d’études consiste à concevoir et développer des modules pour
9antra.tn pour passer d’ un site vitrine à une plateforme e-learning. L’ objectif est de réaliser une
application d’ apprentissage tunisienne 100% en ligne qui aide les étudiants et les apprenants en
technologie de l’informatique à enrichir leurs connaissances et acquérir de nouvelles compétences
afin de décrocher rapidement le métier de leurs rêves.
Le présent rapport montre en détail la progression de notre travail. Il s’articule alors, autour
de cinq chapitres : Le premier chapitre, intitulé « Contexte général », comporte une présentation de
l’organisme d’accueil.Il expose aussi une critique de l’ existant, et l’ étude des applications similaires
que nous avons fait. Ensuite, il démontre la solution proposée et ses objectifs. Enfin, nous présentons
la méthodologie de développement à suivre pour mettre en œuvre le travail.
Le deuxième chapitre, intitulé « Analyse et planification du projet », présente notre sprint de
1
Introduction générale
démarrage. Il montre en premier lieu, les acteurs ainsi que les besoins fonctionnels et non fonctionnels
de notre solution, il expose aussi le backlog du produit et l’identification des sprints Ensuite, il
montre le diagramme de cas d’utilisation et des classe générals. Enfin, il décrit l’architecture globale
à implémenter, l’environnement matériel et logiciel à adopter au cours du développement.
Les trois chapitres qui suivent font l’objet des sprints à réaliser pour atteindre les objectifs
de notre solution. Dans chaque sprint, nous allons débuter avec la partie analyse puis le diagramme
de séquence, ainsi la réalisation.
Enfin, nous clôturons ce rapport par une conclusion générale dans laquelle nous évaluons le
travail travaillé et nous proposons de nouvelles perspectives dans le main d’améliorer notre projet.
2
Chapitre 1
Contexte général
Plan
1 Organisme d’accueil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Présentation du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Introduction
Ce chapitre a pour objectif de situer notre sujet dans son contexte général. Nous commençons
par une présentation de l’ organisme d’ accueil Bee Coders. Ensuite, nous décrivons le cadre de
notre projet, critiquant l’ existant pour proposer notre solution. Nous terminons ce chapitre par une
présentation de la méthodologie de travail.
Dans cette section, nous présentons l’organisme d’accueil dans lequel s’est déroulé notre stage
de fin d’études et ses services.
bee Coders est une société tunisienne née en 2018, spécialisée en développement web et
mobile, composée d’un groupe jeune, dynamique et expérimenté combinant différentes compétences.
Elle met en disposition la compétence de ses experts pour développer le produit digital qui
peut correspondre à : un site internet, une application mobile, un logiciel, etc.
1.1.2 Services
Pour les entreprises : Bee Coders garantit le développement des projets en web design,
développement web et en Graphic design dans les meilleures conditions en facteur d’une puissante
capacité d’adaptation et d’intégration. Elle offre aussi des services de consulting pour booster les
performances des employés dans le secteur des technologies de l’ information.
Pour les apprenants/ étudiants : Bee coders offre des modalités d’apprentissage en ligne
souples, assistées par un coach compétent, dans le but d’obtenir votre certificat et avec un acquis
pratique considérable et un accès gratuit.
4
Chapitre 1. Contexte général
Notre projet, intitulé « Conception et développement des modules pour la plateforme E-learning
9antra.tn » s’inscrit dans le cadre du stage de fin d’études de la troisième année cycle ingénieur de
l’ISI (Institut Supérieur de l’Informatique de Ariana). Il a pour but d’approfondir les connaissances
en matière de conception, du langages de programmation et du travail collaboratif qui prépare les
apprenants et lés étudiants davantage pour le monde professionnel.
1.2.1 Problématique
8 contraintes géographiques
8 contraintes pour les apprenants qui ont une handicape physique ou un problème de communication
Afin de résoudre ces inconvénients, plusieurs outils ont été créés à base des nouvelles technologies.
Donc, pour approfondir notre compréhension du sujet et avoir une idée plus claire sur les objectifs
de notre projet et ses fonctionnalités attendues, une étude de ces outils existants est nécessaire.
5
Chapitre 1. Contexte général
Parmi les applications qui répondent aux problèmes cités précédemment, nous avons choisi
d’ étudier deux plateformes l ’une mondiale et l’autre tunisienne :
l Coursera
C’ est une plate-forme mondiale d’ apprentissage en ligne. Elle offre à tous, où qu’ils se
trouvent, un accès à des cours et à des diplômes en ligne en collaboration avec certaines meilleures
universités et entreprises du monde entier [2].
l Studytn
C’ est une plateforme e-learning tunisienne destinée à tout le monde. Elle a différentes
formations programmées en ligne de divers contenus et d’activités. Les cours sont publiés à travers
des instructeurs qui veulent partager leurs connaissances [3].
6
Chapitre 1. Contexte général
Le tableau 1.1 présente une étude comparative entre les différentes solutions.
Coursera
Studytn
7
Chapitre 1. Contexte général
Faisant référence aux sections précédentes, nous identifions l’ensemble des limites suivantes :
• Manque d’ interaction : l’ apprenant ne peut pas poser une question qu’ il a besoin de
clarifications.
Afin de remédier aux limites des applications citées précédemment, l’équipe développement
au sein de Bee Coders a décidé de réaliser une solution qui répond aux objectifs et qui pallie aux
lacunes constatées.
Dans ce cadre, notre projet sert à la mise en place d’ une application web, plateforme
e-learning 9antra.tn qui apporte :
• Forum pour faciliter l’interaction et poser des questions en cas de besoin de clarification pour
les apprenants
— Une partie Back-End : pour la gestion des utilisateurs, sécurisation des information personnelles,
gestion des cours, gestion du forum
— Une partie Front-End : c’est un ensemble des composants graphiques joue le rôle de l’IHM
pour faciliter les fonctionnalités de l’administrateur et l’ accès aux cours et au forum aux
utilisateurs.
8
Chapitre 1. Contexte général
L’ une des étapes les plus importantes pour mener à bien un travail est de choisir la bonne
façon de procéder. C’est pourquoi nous considérons le choix de la méthodologie de travail la mieux
adaptée à notre travail comme une étape importante pour assurer une bonne organisation des tâches.
La sélection de la méthodologie diffère d’un projet à l’autre selon des critères spécifiques
parmi lesquels on mentionne la nature et la taille du projet. Les objectifs de la gestion de projet
sont d’augmenter le niveau de satisfaction des clients et de diminuer la complexité du travail de
développement.
Il existe principalement deux méthodes de gestion de projet :
Ces méthodes sont prévisibles, elles se caractérisent par des étapes préorganisées du cycle de
vie du développement logiciel, une planification rigide et une documentation lourde telle que le cycle
vie en cascade. Ces méthodes se caractérisent par l’absence de communication avec le client et la
difficulté de prendre en compte les nouveaux besoins lorsque le projet est en cours.
Elles peuvent être définies comme une variété de bonnes pratiques en développement logiciel
et contrairement aux approches traditionnelles, elles sont précises et conviviales. Les méthodes agiles
telles que SCRUM et XP encouragent la collaboration avec le client qui a l’opportunité d’apporter
des modifications tout au long des phases de développement du projet, et c’est ce qui fait que ces
9
Chapitre 1. Contexte général
méthodes se caractérisent par une meilleure visibilité puisque le client connaît très bien ses besoins
et la priorité des tâches à accomplir et ils assurent l’acceptation du changement.
Pour notre projet, nous avons choisi une méthode du type AGILE, plus particulièrement
SCRUM.
Scrum est l’une des approches les plus utilisées en Agile. Au contraire de la méthode XP où
le délai de livraison du produit souhaité par le client est incertain, la méthode Scrum propose une
approche temporelle du développement où le délai de livraison du produit souhaité par le client est
certain et bien déterminé.
1.4.2.1 Définition
Scrum est un framework qui est utilisé pour implémenter la méthode agile. Il définit les tâches
comme des user stories qui décrivent quelles fonctionnalités sont nécessaires et à quel point elles sont
importantes, puis passe par une série de sprints basée sur des courtes itérations incrémentales qui
visent à fournir un logiciel fonctionnel livrable et testable. Le principe de Scrum est de maximiser
la productivité et d’assurer en même temps la satisfaction du client. Scrum repose aussi sur trois
grands principes : la transparence, l’inspection et l’adaptation.
L’équipe Scrum est auto-organisée et prend les décisions sur la manière dont le travail sera
réalisé pour atteindre l’objectif du sprint, elle est composée d’ un propriétaire de produit„d’un Scrum
Master et d’ une équipe de développement :
Product Owner : qui a la vision du produit, la connaissance de toutes les exigences et la
valeur commerciale de chacun pour le client. Il peut s’agir du client ou d’une autre personne qui a
la vision du client sur le produit.
Scrum Master : son objectif est d’aider et de soutenir l’équipe et le product owner dans
l’application de Scrum. Cela inclut d’ éliminer les obstacles et d’isoler l’équipe Scrum des autres
problèmes externes.
Equipe Scrum : ou équipe de développement a pour mission de délivrer le produit. C’est une
équipe interfonctionnelle qui s’ organise elle-meme avec toutes les compétences et les connaissances
nécessaires pour développer le produit.
10
Chapitre 1. Contexte général
Outils de SCRUM
Google Meet : Pour la communication et les réunions.
Jira : Pour la gestion du projet.
GIT/GITLAB : Pour la gestion des travaux.
LaTex : Outils de rédaction du rapport.
Afin de modéliser nos idées, nous avons choisi UML comme un langage de modélisation. En
effet, UML est un langage standard pour spécifier, visualiser, construire et documenter les artefacts
des systèmes logiciels.
Dans notre projet, nous avons modélisé notre solution au moyen de [4] :
-Diagrammes de cas d’utilisation : il donne un aperçu sur les fonctionnalités du système
sans entrer dans les détails de mise en œuvre. Il illustre les exigences fonctionnelle du système et
son interaction avec les acteurs externes. Un diagramme de cas d’utilisation représente différents
scénarios dans lesquels le système peut être utilisé.
11
Chapitre 1. Contexte général
-Diagrammes de classes : il est utilisé pour décrire la structure statique d’un système en
montrant les classes du système, leurs méthodes et leurs attributs. Le diagramme de classes aide
également à identifier la relation entre ces classes ou objets.
-Diagramme de séquence : Il est également connu sous le nom de diagramme d’événements,
il vise à représenter l’interaction entre les objets dans un ordre séquentiel. Les diagrammes de
séquence décrivant comment et dans quel ordre les objets d’un système fonctionnent.
Conclusion
Le premier chapitre est une étape essentielle pour donner une vision sur le projet. Après
avoir présenté l’organisme d’accueil et identifié les objectifs du projet, nous avons déterminé le
cadre de travail utilisé pour réaliser la solution. Dans le chapitre suivant, nous allons présenter les
spécifications des besoins, le backlog du produit, l’architecture et l’environnement du travail.
12
Chapitre 2
Plan
1 Identification des acteurs du système . . . . . . . . . . . . . . . . . . . . 14
3 Backlog du produit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
7 Architecture du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
8 Environnement du travail . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Chapitre 2. Analyse et planification du projet
Introduction
Pour une meilleure conception du projet, l’étude des besoins est une étape primordiale. Dans
ce chapitre, nous nous intéressons à l’identification des différents acteurs du projet et les besoins
fonctionnels et non fonctionnels demandés par la société, par la suite, nous exposerons notre backlog
du produit, l’architecture du projet et l’environnement du travail.
Un acteur [5] est un rôle joué par une entité extérieure représentant une personne ou un
système informatique qui attend un ou plusieurs services à offrir par l’application. Il interagit avec
le système en consultant ou en modifiant son état par l’envoi ou par la réception des messages .
Par conséquent, nous identifions trois acteurs principaux :
• Visiteur : C’est l’acteur qui a pour rôle la consultation des cours et du forum et de s’ inscrire.
• Administrateur : C’est un responsable qui dispose de tous les privilèges. Il gére les cours et le
forum, il a aussi la possibilité de gérer les utilisateurs.
Lors de l’analyse des besoins, nous devons faire la distinction entre les besoins fonctionnels
et non fonctionnels. En effet, les besoins fonctionnels sont l’expression de ce que le produit ou le
service délivré par le projet devrait être ou faire, et les besoins non fonctionnels sont les contraintes
liées à l’implémentation et la mise en œuvre de produit.
l’ application à réaliser doit offrir un ensemble de fonctionnalités qui doivent être mises
en relation avec un ensemble de besoins utilisateur. Ces derniers définissent les services que les
utilisateurs s’attendent à voir fournis par cette application. Les principales exigences métiers de
notre application se résument dans les fonctionnalités suivantes :
• Inscription à la plateforme.
• Authentification par un login et un mot de passe pour accéder aux différentes fonctionnalités.
14
Chapitre 2. Analyse et planification du projet
15
Chapitre 2. Analyse et planification du projet
— S’ inscrire à un cours.
Dans l’intention de réussir notre solution, l’application doit vérifier quelques propriétés et
doit tenir compte de certaines contraintes et exigences.
— Confidentialité : Toutes les informations sont partagées uniquement avec les membres qui
ont un besoin de savoir.
16
Chapitre 2. Analyse et planification du projet
— Sécurité :
• Les informations personnelles ainsi que les transactions sont protégées et ne risquent pas
d’être mutables.
• L’accès aux informations n’est possible qu’après vérification des privilèges et des droits
d’accès. Tous les services web développés nécessitent une phase d’autorisation avec les
jetons avant les utiliser grâce à l’authentification et le cryptage des mots de passe.
— Fiabilité : Les résultats apportés par l’application doivent être fiables et reflètent effectivement
l’état de la base au moment de son interrogation, c’est-à-dire lors de la mises à jour des données.
— Robustesse : En présence de données invalides, le système doit gérer les exceptions pour
garantir un fonctionnement stable.
— Maintenabilité : Nous allons travailler avec une architecture modulaire pour bien séparer et
organiser le code, ainsi l’utilisation d’un outil de versioning "Gitlab" pour garder toutes les
traces de changement.
— Ergonomie : Nous allons suivre les maquettes faites par un spécialiste en design graphique
afin de garantir une navigation aisée et intuitive pour les étudiants.
Après avoir présenté les besoins de notre solution, nous allons détailler dans cette section le
backlog du produit,qui décrit la liste des besoins sous forme des users stories.
Nous présontons le tableau 2.1, qui résume le Backlog du produit relatif à notre solution et
qui énumère les champs suivants :
— User Story : C’est une description courte de la tâche à réaliser et qui se définit de la manière
suivante : En tant que "acteur" , je souhaite ...
— P : Priorité
Pour prioriser nos besoins, nous avons opté pour la méthode «MoSCoW» qui se base sur les
acronymes suivants :
17
Chapitre 2. Analyse et planification du projet
• M signifie «Must Have» : la tâche doit être faite, elle est très prioritaire.
• S signifie «Should Have » : la tâche devrait être faite, elle est essentielle dans la mesure du
possible.
• C signifie «Could Have» : la tâche pourrait être faite, à condition qu’elle n’affecte pas le bon
avancement des autres tâches et elle permet de donner de la valeur ajoutée au projet.
• W signifie «Won’t Have» : l’exigence est classée comme étant un «Luxe», elle ne sera pas faite
durant cette version mais pourra être ajoutée dans d’autres versions plus élaborées.
1 Authentification Administrateur M 7j
et Gestion des — S’ authentifier
utilisateurs
— Consulter et activer les
comptes utilisateurs.
18
Chapitre 2. Analyse et planification du projet
6 Gestion d’ Administrateur S 4j
évaluations — Créer une nouvelle évaluation
par section.
19
Chapitre 2. Analyse et planification du projet
7 Gestion Administrateur S 5j
des options — Créer une nouvelle option d’
d’évaluation évaluation.
— Modifier un projet.
— Supprimer un projet.
20
Chapitre 2. Analyse et planification du projet
12 Demande d’ Visiteur M 5j
inscription — S’ inscrire
21
Chapitre 2. Analyse et planification du projet
14 Gestion de Étudiant S 4j
forum — Demander une question.
— Supprimer l’ inscription au
cours
22
Chapitre 2. Analyse et planification du projet
En se basant sur le backlog du produit illustré dans la section précédente, l’équipe a décidé
de trier les users stories par ordre de priorité et dépendance selon les fonctionnalités attendues et
ces derniers sont répartis entre les sprints comme le montre le tableau 2.2 ci-dessous.
Afin de donner une vision globale sur le comportement fonctionnel de notre application, nous
utilisons le diagramme de cas d’utilisation permettant de représenter de façon intuitive les différentes
interactions entre les acteurs et le système sans se soucier du fonctionnement interne de l’application.
Le diagramme de cas d’utilisation global représenté par la figure 2.1 , modélise les fonctionnalités
attendues par notre solution. Ce diagram sera découpé et raffiné lors de la phase d’ identification
des besoins de chaque sprint.
23
Chapitre 2. Analyse et planification du projet
24
Chapitre 2. Analyse et planification du projet
Le diagramme des classes est considéré comme le plus important dans la modélisation orienté
objet. Il s’ agit d’ une vue statique, du fait qu’ on ne tient pas compte au facteur temporelle dans le
comportement du système.
Indépendamment d’ un langage de programmation particoulier, le diagramme des classes
permet de modéliser les classes du sysème et leurs relations , illustré par la figure 2.2.
25
Chapitre 2. Analyse et planification du projet
L’architecture est le point de départ pour créer une application bien structurée, en fait une
architecture décrit la manière dont les éléments sont organisés. Dans cette section, nous montrons
le choix opté pour l’organisation physique et logique de notre projet.
Notre choix est orienté vers l’architecture trois tiers pour notre application web qui s’ applique
au modèle MVC. La figure présente les parties primordiales pour mettre en place cette structure.
— Serveur web : Le premier tiers prend en charge la présentation de notre application, il utilise
un navigateur web pour créer un lien de communication avec le serveur d’application afin
d’envoyer des demandes de traitement sous forme des requêtes HTTP.
— Serveur base de données : Assure la persistance des données et la gestion des flux de
données avec le serveur d’application.
Dans l’ architecture 3-tiers, nous avons utilisé le modèle de conception MVC comme architecture
logique.
L’architecture logicielle s’intéresse plutôt au découpage logique de l’application et la façon
de regrouper les composants selon le type de fonction et traitements qu’ils effectuent. La figure 2.4
montre le schéma de l’architecture logique détaillée de notre projet.
26
Chapitre 2. Analyse et planification du projet
• Couche Modèle : c’est la couche d’ accès aux données qui permet le stockage et la récupération
des données traitées par la couche applicative.
• Couche Vue : Elle correspond à la couche présentation puisque c’ est la partie visible qui
permet à l’ utilisateur d’ interagir avec l’application. Elle affiche les données qu’elle a récupérées
auprès de la couche applicative en se basant sur le protocole de communication Http.
• Couche Contrôleur : cette couche représente la logique métier qui gère les requêtes des
utilisateurs puis retourne une réponse à l’ aide mutuelle des couches Modèle et Vue. La couche
Contrôleur est composée par des différents modules d’application :
- Couche d’accès aux données (DAO) : cette couche contient les classes d’accès à la base de
données et de traitement des requêtes sur les entités.
- Couche de service métier : elle contient les classes de traitement de logique métier.
- Couche d’exposition des services : cette couche contient les classes d’exposition des services
REST (ou web services) de notre application.
Dans cette partie, nous allons indiquer les différentes caractéristiques qui constituent l’environnement
de travail à savoir l’environnement matériel et logiciel requis pour effectuer la conception, le développement
et le test de l’application.
27
Chapitre 2. Analyse et planification du projet
Au cours du développement de notre projet nous avons utilisé, un poste de travail ayant les
caractéristiques suivantes :
Marque Lenovo
Disque dur 1 TO
RAM 12 GO
Dans cette section nous énumérons les différents outils de développement que nous avons
utilisés au cours de la réalisation du système. Cette solution était développée sous l’environnement
Ubuntu avec l’utilisation de plusieurs logiciels ou éditeurs dont nous pouvons citer :
• Angular 12
Angular est un Framework Javascript, développé par Google et écrit avec Typescript, il permet
de créer la partie front-end des applications web de type SPA (Single Page Application), des
applications web accessibles à partir d’une page web unique.
• Spring Boot
• Spring Security
Pour une utilisation plus simplifiée de la base de données Relationnelles MySQL, nous avons
choisi d’opter pour la MySQL Connector Java à l’ aide de Spring Data JPA, ces dernièrss
28
Chapitre 2. Analyse et planification du projet
sont une implémentation qui fournit une couche d’abstraction au client Java, il offre les
fonctionnalités nécessaires en s’intégrant avec le framework Spring.
• MySQL
C’ est une base de données relationnelle open source basée sur des tableaux. Elle étend le
langage SQL combiné à des nombreuses fonctionnalités qui stockent et adaptent en toute
sécurité les charges de travail de données complexes[8].
• Gitlab
C’ est une plate-forme de développement collaborative open source qui permet aux professionnels
de gérer et d’exécuter diverses tâches de projet, telles que la gestion du code source, la
planification de projet, la surveillance et le maintien de la sécurité[9].
Nous avons utilisé Gitlab pour assurer la traçabilité des modifications de notre code source.
• Visual Studio Code Visual Studio Code est un éditeur de code extensible développé par
Microsoft. Cet outil intègre plusieurs fonctionnalités telles que la prise en charge du débogage,
la mise en évidence de la syntaxe, l’auto-complétion du code, la refactorisation du code ainsi
qu’un git intégré[10].
Nous avons utilisé cet éditeur pour développer la partie fron-tend et back-end de notre application.
• Swagger
C’ est un outil de outil de développement open course. Il permet de tester les API afin de les
consommer convenablement dans la partie front-end[11].
• Draw.io
C’ est une plateforme en ligne open source pour le développement extensible et libre en UML.
il possède une variété d’outils permettant une large possibilité de modélisation en UML.
Nous avons utilisé cet outil dans la partie conception de notre projet.
Conclusion
Dans ce chapitre, nous avons spécifié nos besoins fonctionnels et non fonctionnels ainsi que
les acteurs de notre solution, cette étude nous a donné une vision plus claire sur la finalité du projet,
aussi nous avons exposé notre backlog du produit et l’architecture à adopter. Dans le chapitre suivant,
nous allons entamer le sprint 1.
29
Chapitre 3
Sprint 1
Plan
1 Spécification et analyse des besoins . . . . . . . . . . . . . . . . . . . . . 31
3 Diagrammes de séquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Chapitre 3. Sprint 1
Introduction
Après avoir analysé et déterminé les objectifs globaux du notre solution, nous présentons en
détail les différentes phases exécutées durant ce premier sprint, ayant pour objectif la réalisation des
fonctionnalités suivantes : Gestion des comptes et authentification à l’application. Nous commençons
par la spécification et l’analyse des besoins du sprint 1. Par la suite, nous faisons une description
détaillée des cas d’utilisation, les diagrammes de séquence et nous terminons par la réalisation.
Dans cette partie, nous allons entamer l’analyse et la spécification des besoins de ce sprint.
Nous allons commencer par présenter le backlog, ensuite établir le diagramme de cas d’utilisation
raffiné, et finir par détailler la description des cas d’utilisation.
31
Chapitre 3. Sprint 1
32
Chapitre 3. Sprint 1
Dans cette partie, nous allons commencer par décrire les grandes fonctionnalités, et par la
suite nous allons approfondir sur quelques cas d’utilisation :
• S’ authentifier :
L’ administrateur doit s’ authentifier pour accéder à son espace il trouve les comptes étudiants,
qui visualise leurs noms, prénoms, usernames et leurs états actifs ou non actifs. L’ administrateur
a la main de supprimer un étudiant ou modifier son état.
L’ étudiant doit s’ authentifier et être actif pour accéder à son espace il trouve son compte,
qui visualise son nom, prénom, username. L’ étudiant a la main de modifier son username et
changer son mot de passe.
Titre S’ authentifier
Acteurs Étudiant
33
Chapitre 3. Sprint 1
Acteurs Administrateur
34
Chapitre 3. Sprint 1
Dans cette partie, nous allons montrer les diagrammes de séquences de quelques cas d’utilisation,
en détaillant l’interaction entre les différents objets.
35
Chapitre 3. Sprint 1
Pour avoir la sécurité voulue dans notre projet dans les informations personnelles des utilisateurs,
nous avons conçu une authentification et autorisation basées sur les jetons JSON Web token (JWT).
La figure 3.2 illustre le diagramme de séquence et les interactions entre les objets qui se
produisent lors du cas d’utilisation « S’ authentifier ».
36
Chapitre 3. Sprint 1
37
Chapitre 3. Sprint 1
3.4 Réalisation
Dans cette partie, nous allons présenter les interfaces développées dans ce sprint.
• Interface d’ authentification Chaque utilisateur doit remplir le formulaire avec les données
nécessaires et ces infor- mations doivent être enregistrées dans la base de données. Tous les
champs doivent être remplis pour accéder à son espace. la figure 3.4 montre l ’interface d’
authentification.
38
Chapitre 3. Sprint 1
• Interface d’activation des comptes utilisateurs Les figures 3.1 et l’interface graphique d’administration
dédiée à la consultation de la liste des comptes des utilisateurs et à l’activation ou la suppression
de ces derniers.
Conclusion
Ce chapitre nous a permis de présenter notre premier sprint. Nous avons commencé par décrire
les différentes fonctionnalités, ensuite nous avons fait une description détaillée des cas d’utilisation, et
leurs diagrammes de séquence, nous avons terminé par l’affichage de notre produit. Dans le chapitre
suivant, nous allons détailler le sprint 2 qui est consacré à la gestion des questions et des réponses,
et l’ accès au forum.
39
Chapitre 4
Sprint 2
Plan
1 Spécification et analyse des besoins . . . . . . . . . . . . . . . . . . . . . 41
3 Diagrammes de séquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Chapitre 4. Sprint 2
Introduction
Ce chapitre est dédié à la réalisation de la partie de gestion des questions et des réponses et
d’ accès et aux forum de notre projet. Ce chapitre illustre le cycle de vie du deuxième sprint à savoir
le backlog du sprint avec les priotités, la description des cas d’utilisation, le diagramme de cas d’
utilisation détaillé ainsi des diagrammes de séquence de quelques cas d’utilisation et nous finissons
par la réalisation.
Dans cette partie, nous allons entamer l’analyse et la spécification des besoins de ce sprint.
Nous allons commencer par présenter le backlog, ensuite établir le diagramme des cas d’utilisation
de l’ étudiant et l’ administrateur, et finir par détailler la description des cas d’utilisation.
41
Chapitre 4. Sprint 2
42
Chapitre 4. Sprint 2
Nous allons commencer par décrire les fonctionnalitées , et par la suite nous allons concentrer
sur quelques cas d’utilisation pour les détailler :
Sans authentification, un visiteur peut consulter le forum qui représente un ensemble des
questions publieés par les étudiants de la plateforme, puis voir les détails et les réponses d’
une question choisite. Il peut aussi chercher une question par mot clé pour vérifier sa question
a déja une réponse.
L’ administarteur a la main d’ accéder à la liste des réponses et supprimer des réponses non
convenables.
Tableau 4.2: Description textuelle du cas d’utilisation " Poser une question "
Acteurs Étudiant
43
Chapitre 4. Sprint 2
Tableau 4.3: Description textuelle du cas d’utilisation " Répondre à une question "
Acteurs Étudiant
44
Chapitre 4. Sprint 2
Dans cette partie, nous allons montrer les diagrammes de séquences de quelques cas d’utilisation,
en détaillant l’interaction entre les différents objets.
45
Chapitre 4. Sprint 2
La figure 4.2 illustre le diagramme de séquence et les interactions entre les objets qui se
produisent lors du cas d’utilisation « Poser une question ».
46
Chapitre 4. Sprint 2
47
Chapitre 4. Sprint 2
4.4 Réalisation
Dans cette partie, nous allons présenter les interfaces développées dans ce sprint.
• Interface Forum L’ Étudiant peut accéder au Forum, voir les questions publiées ou chercher
une question. Au cas d’ authentification, il peut s’ interragir par l’ ajout d’ une question ou
par répondre à une quetion.
48
Chapitre 4. Sprint 2
Conclusion
Au cours de ce chapitre, nous avons mis en place la partie traitée durant le sprint 2, nous
avons fait recours aux diagrammes de cas d’utilisationpour démontrer la vue statique du projet, et
49
Chapitre 4. Sprint 2
ensuite nous avons utilisé les diagrammes de séquence pour détailler le comportement dynamique.
Et avant de clôturer le chapitre, nous avons exposé la partie réalisation, . Dans le prochain chapitre,
nous allons entamer la phase de sprint 3.
50
Chapitre 5
Sprint 3
Plan
1 Spécification et analyse des besoins . . . . . . . . . . . . . . . . . . . . . 52
3 Diagrammes de séquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Chapitre 5. Sprint 3
Introduction
Ce chapitre représente notre dernier sprint, il englobe les fonctionnalités : gestion des cours,
des sections, des lessons, des évaluations et des projets et l’ accès aux cours inscrits. Ce chapitre
illustre le cycle de vie du troixième sprint à savoir le backlog du sprint avec les priotités, la description
des cas d’utilisation, le diagramme de cas d’ utilisation détaillé ainsi des diagrammes de séquence
de quelques cas d’utilisation et nous finissons par la réalisation.
Dans cette partie, nous allons entamer l’analyse et la spécification des besoins de ce sprint.
Nous allons commencer par présenter le backlog, ensuite établir le diagramme des cas d’utilisation,
et finir par détailler la description des cas d’utilisation.
52
Chapitre 5. Sprint 3
53
Chapitre 5. Sprint 3
54
Chapitre 5. Sprint 3
55
Chapitre 5. Sprint 3
Dans cette partie, nous allons commencer par décrire les grands cas d’utilisation, et par la
suite nous allons approfondir sur quelques cas d’utilisation :
56
Chapitre 5. Sprint 3
Tableau 5.2: Description textuelle du cas d’utilisation " S’ inscrire à un cours "
Acteurs Étudiant
Tableau 5.3: Description textuelle du cas d’utilisation " Ajouter une lesson "
Acteurs Administrateur
57
Chapitre 5. Sprint 3
La figure 5.3 illustre le diagramme de séquence et les interactions entre les objets qui se
produisent lors du cas d’utilisation « S’ inscrire à un cours ».
58
Chapitre 5. Sprint 3
5.4 Réalisation
Dans cette partie, nous allons présenter les interfaces développées dans ce sprint.
La figure 5.4 ci-dessous présente l’ interface ajouter une lesson.
59
Chapitre 5. Sprint 3
60
Chapitre 5. Sprint 3
61
Chapitre 5. Sprint 3
62
Chapitre 5. Sprint 3
Conclusion
Au cours de ce chapitre, nous avons mis en place la partie traitée durant le sprint 2, nous
avons fait recours aux diagrammes de cas d’utilisationpour démontrer la vue statique du projet, et
ensuite nous avons utilisé les diagrammes de séquence pour détailler le comportement dynamique.
Et avant de clôturer le chapitre, nous avons exposé la partie réalisation, . Dans le prochain chapitre,
nous allons entamer la phase de sprint 3.
63
Conclusion générale
Ce projet de fin d’études élaboré au sein de la société Bee Coders, a pour objectif de doter
les cours en ligne pour attirer l’ attention sur l’ importance de l’ e-learning.
L’idée est de concevoir et d’implémenter une plateforme e-learning, qui offre aux étudiants la
possibilité d’ apprendre en ligne à travers des cours en vidéos et aussi d’ interragir grâce au forum
en posant des questions pour avoir des réponses à travers des autres étudiants.
Pour aboutir aux objectifs visés, nous avons d’abord commencé par une étude approfondie
des besoins et des solutions existantes dans le marché. Ensuite, nous avons traité les différentes
phases du projet, tout en respectant le cadre du travail choisi qui est “Scrum”.
Ce stage a été une opportunité riche sur le plan personnel et technique puisqu’il constitue
une véritable porte d’entrée au monde professionnel.
Cette période nous a permis de consolider les connaissances techniques, en effet, ce projet
a été une occasion pour monter en compétence dans le développement front-end et back-end, et
pratiquer les connaissances académiques acquises tout au long de notre cursus universitaire.
64
Bibliographie
[2] digitiz team. (Octobre. 2018). « Que vaut Coursera ? » [Accès le 25-Mars-2022], digitiz, adresse :
https://digitiz.fr/blog/coursera/.
[3] F. Team. (Jan. 2018). « STUDY.TN. » [Accès le 25-Mars-2022], Flat6Lab, adresse : https:
//www.flat6labs.com/fr/Company/study-tn/.
[4] P. Gérard. (Jan. 2013). « Conception orientée objets. » [Accès le 09-October-2022], IUT de
Villetaneuse, adresse : https://lipn.univ-paris13.fr/~gerard/uml-s2/.
[6] (Avril. 2019). « Le Tutoriel de Spring Boot pour débutant. » [Accès le 19-Aout-2022], devstory,
adresse : https://devstory.net/11267/tutoriel-spring-boot-pour-debutant.
[7] Q. LEULY. (octobre. 2017). « Preuve d’authentification avec JWT. » [Accès le 19-Aout-2022],
devstory, adresse : https://blog.ippon.fr/2017/10/12/preuve- dauthentification-
avec-jwt/.
[8] JDN. (Janvier. 2019). « MySQL (My Structured Query Language). » [Accès le 19-Aout-2022],
JDN Site, adresse : https://devstory.net/11267/tutoriel-spring-boot-pour-debutant.
[9] A. Pathak. (Février. 2021). « Qu’est-ce que GitLab et où l’héberger ?. » [Accès le 24-Aout-2022],
GeekFlare, adresse : https://geekflare.com/fr/gitlab-hosting/.
[10] wikipedia. (Février. 2021). « Visual Studio Code. » [Accès le 24-Aout-2022], wikipedia, adresse :
https://fr.wikipedia.org/wiki/Visual_Studio_Code.
[11] I. Team. (Février. 2021). « Qu’est-ce que Swagger ? . » [Accès le 24-Aout-2022], GeekFlare,
adresse : https://www.ionos.fr/digitalguide/sites- internet/developpement- web/
quest-ce-que-swagger/.
65
PÌl
2021-2022 Ty`A Tnsl Ty®² ¨A` dh`m ¨ x¤Cd t CAV ¨ Pr mR ¤rKm @¡ Cdn§
rhJ TtF dm ¤rKm @¡z d¤ .Tywwnkt ¤ TyqybWt wl` ¨ xdnhml TynVw AhK Yl wOl
. Aftl «dtn ryw ¤ yml`tml C¤ ¨ yst , x¤Cd C ¯ ybW r§wW dh EC wk-¨ TrJ ¨
MySQL , Angular , API , SpringBoot , MVC : y Af Aml
Résumé
Ce travail s’inscrit dans le cadre de notre Projet de Fin d’ Études pour l’obtention du diplôme
d’ingénieur en informatique à l’Institut Supérieur de l’Informatique de l’ Ariana pour l’année
universitaire 2021-2022, fait au sein de l’entreprise bee coders. L’objectif de ce PFE consiste à
concevoir et à développer une plateforme permettant la gestion des cours, l’ inscription au cours.
Cette applcation offre également la possibilité de poser une question et d’ avoir des réponses à
partir d’ un forum.
Abstract
This work is part of our End of Studies Project to obtain the national software engineer diploma
at the Higher Institute of Informatics for the 2021-2022 academic year. We completed a six-month
internship at bee coders with the objective of developing a plateform that ensure course manage-
ment and course registration. This application offers also the possibility to ask a question and
get answers from the forum.
contact@company.com : ¨¤rtk¯ d§rb 71 222 222 : HAf 71 111 111 : Ah Hw - ryb AfR - C® ry h
Rue du Lac Malaren, Les Berges du Lac 1053 Tunis Tél : 71 111 111 Fax : 71 222 222 Email : contact@company.com
isi@isim.rnu.tn : ¨¤rtk¯ d§rb 71 706 698 : HAf 71 706 164 : Ah TA§C 2080 ¨¤CAb A§r w h 2
2, Abou Raihane Bayrouni 2080 l’Ariana Tél : 71 706 164 Fax : 71 706 698 Email : isi@isim.rnu.tn