Vous êtes sur la page 1sur 89

Département de TIC

République du Burundi

Ministère de l’Enseignement
Supérieur et de la Recherche Mastère en Génie
Informatique
Scientifique

Année Académique:
Université du Burundi
2021-2023
Faculté des Sciences de l’Ingénieur

MISE EN PLACE D’UNE APPLICATION WEB


AVEC MODE D’AUTHENTIFICATION « ONE TIME
PASSEWORD »DE GESTIONS DES STAGIAIRES

MEMOIRE
Présentée Par

IRAMBONA Méthode
à la

Faculté des Sciences de l’Ingénieur (FSI)


En vue de l’obtention du grade de

MASTER
en

Génie Informatique
Soutenu le /10/2023, devant le jury composé
de :
Dr. NDAYISABA Longin Président
Dr. MUKESHIMANA Michèle Vice-Président
Dr. NKUNZIMANA Hilaire Secrétaire
Pr. Jérémie NDIKUMAGENGE Directeur
Dr. SAHINGUVU William Membre
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

DEDICACES

A DIEU tout puissant ;


A mes parents ;
A mes frères et sœurs ;
A mes oncles et tantes ;
A tous mes camarades de classe ;
A tous mes amis et connaissances.

i
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

REMERCIEMENTS

Ce travail est le fruit des efforts conjugues de plusieurs personnes envers


lesquelles j’adresse mes sincères remerciements :
Mes sincères remerciements s’adressent en premier lieu à DIEU tout puissant,
source de toute connaissance qui ma garde et protégé jusqu’à cet heure-ci.
Mes sincères remerciements s’adressent également à mes parents, qui se sont
donne corps et âmes pour mon éducation et bien-être. De plus mes sincères
remerciements s’adressent plus particulièrement à mon encadreur Prof. Jérémie
NDIKUMAGENGE et l’étudiant doctorant Msc.Ir.NTIRANDEKURA Vércus
qui, malgré leurs multiples occupations et lourdes fonctions a accepté de diriger
ce travail. Ses conseils judicieux, ses critiques et remarques pertinentes m’ont
été d’une très grande utilité.
Il serait ingrat de ma part si j’oublie de remercier mes éducateurs depuis l’école
primaire jusqu’à l’université, plus particulièrement à tous les enseignants du
département de Technologie de l’Information et de la communication pour la
formation tant intellectuelle que morale qu’ils ont inculquées en moi, qu’ils
trouvent ici le couronnement de leurs efforts. Enfin que toutes personnes qui
directement ou indirectement, ont contribué matériellement ou moralement à
l’aboutissement de ce travail, trouve ici l’expression de me vifs remerciements.
A chaque et à tous je dis merci.

ii
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

LISTE DES SIGLES ET ABLREVIATIONS

BANCOBU : Banque Commerciale du Burundi

CNTC : Cibitoke New Technology Center

CSS : Cascading Style Sheets

FSI : Faculté des Sciences de l’Ingénieur

HMAC : Hash-based message authentication code

HOTP :HMAC-based One-Time Password

HTML : HyperText Markup Language

HTTP : HyperText Transfer Protocol

IG : Informatique de Gestion

IM : Informatique de Maintenance

IT : Informatique de Télécommunication

JS : Javascript

LTC : Lycée Technique Communal

MFA : Authentification multifactorielle

OMG : Object Management Group

OMT : Object Modelling Technique

OOD : Object Oriented Design

OOSE : Object Oriented Software Engineering

OTP : One Time password

PHP : Hypertext Preprocessor

POO : Programmation Oriente objet

iii
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

RDC : République Démocratique du Congo

RN5 : Route Nationale numero5

SDLC : Software Development Life Cycle

SGBDR : Système de gestion de bases de données relationnelles

SQL : Structured Query Language

TIC : Technologie de l’information et de la communication

TOTP : Time based One Time Password

UML : Unified Modeling Language

UPI : Université polytechnique intègres

XAMPP : XAMPP Apache + MariaDB + PHP + Perl

XML Extensible Markup Language

iv
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

LISTE DES FIGURES

Figure 1:Structure Organisationnelle du centre CNTC .................................. 15


Figure 2: Modèle du cycle de vie en cascade ................................................. 20
Figure 3 : Modèle du cycle de vie en V. ........................................................ 20
Figure 4: Schéma d’ensemble des diagrammes d’UML 2 .............................. 23
Figure 5:Formalisme général de la classe ....................................................... 26
Figure 6 :Une classe avec des attributs et méthodes ....................................... 28
Figure 7:Formalisme générale de l’héritage ................................................... 30
Figure 8:Diagramme de cas d’utilisation du système ..................................... 32
Figure 9:Diagramme de cas d’utilisation de l’administrateur......................... 33
Figure 10:Diagramme de cas d’utilisation du secrétaire................................. 34
Figure 11:Diagramme de cas d’utilisation du stagiaire .................................. 35
Figure 12:Diagramme de classe de notre système .......................................... 42
Figure 13:Diagramme de séquence d’authentification ................................... 43
Figure 14:Diagramme de séquence de demande du stage .............................. 44
Figure 15:Diagramme de séquence de rechercher .......................................... 44
Figure 16:Page d'Authentification pour les utilisateurs du système .............. 62
Figure 17: Interface pour entre le code OTP.................................................. 63
Figure 18: Formulaire d'inscription du stagiaire ............................................. 63
Figure 19: Interface de demande du stage ...................................................... 64
Figure 20:Interface de résultat si la demande n'est pas encore traite .............. 64
Figure 21: Interface de résultat si la demande n'est acceptée ......................... 65
Figure 22: La page d'accueil pour l'admin ...................................................... 65
Figure 23: formulaire d'ajout du nouvel utilisateur ......................................... 66
Figure 24: Liste de demandes de stage ........................................................... 67
Figure 25: formulaire pour faire la présence du stagiaire ............................... 67
Figure 26: Liste de présence des stagiaires ..................................................... 68
Figure 27: Liste pour marquer la présence...................................................... 68
Figure 28 : Affectation dans un service et cotation du stagiaire ..................... 69
Figure 29: Désaffectation du stagiaire dans le service pour réaffecter dans
l'autre service ................................................................................................... 69
Figure 30: Liste des stagiaires qui ont terminés le stage (archivés) ............... 70
Figure 31: Tableau de distribution des droits et permission ........................... 71
Figure 32: Fiche du stagiaire ........................................................................... 72
Figure 33: attestation de service rendue .......................................................... 73

v
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

LISTE DES TABLEAUX

Tableau 1: valeurs de multiplicité ................................................................... 29


Tableau 2:Identification des cas d’utilisation de notre système ..................... 31
Tableau 3:Description textuelle du cas d'utilisation « Ajouter stagiaire », .... 36
Tableau 4:Cas d'utilisation « S’Authentifier » ................................................ 37
Tableau 5:Cas d'utilisation « modifier stagiaire »........................................... 38
Tableau 6:Cas d'utilisation « Rechercher stagiaire » ..................................... 39
Tableau 7:Cas d'utilisation « Imprimer » ........................................................ 40
Tableau 8:Operateurs de l’algèbre Relationnelle ............................................ 48

vi
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

RESUME

Le monde est très actif et continuellement évolutif, il a besoin des moyens


performants et fiables de gestion, de communication et d’échange d’informations
pour sa meilleure évolution. C’est dans ce cadre qu’une révolution
numérique/digitale axée/basée sur la disponibilité des données et l’accès aux
informations en temps réel reste pertinente. Ainsi, l’usage de l’internet revêt un
caractère accentué dans la bonne marche de la révolution digitale/numérique.
La sécurité des données/informations des entreprises et/ou des organisations reste
un défi à relever pour le management et l’échange de ces dernières sur le réseau.
C’est dans cette perspective que notre travail se penchera sur la mise en place d’un
outil logiciel de gestion des stagiaires avec intégration d’un mode d’authentification
OTP afin de se protéger contre toute usurpation des données du système.
Notre travail sera détaillé selon les différentes phases de mise en place du nouvel
outil dont la conceptualisation, le développement et la présentation des résultats
obtenus dans l’optique d’aboutir à un outil satisfaisant.

Les mots clés : Authentification, outil logiciel, information, internet, sécurité,


gestion;

vii
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

ABSTRACT

The world is very active and continuously evolving, it needs efficient and reliable
means of management, communication and information exchange for its best
evolution. It is in this context that a digital/digital revolution centered/based on the
availability of data and access to information in real time remains relevant. Thus, the
use of the Internet is accentuated in the smooth running of the digital/digital
revolution.
The security of data/information of companies and/or organizations remains a
challenge to be met despite the management and exchange of these on the network.
It is in this perspective that our work will focus on the implementation of a software
tool for managing trainees with the integration of an OTP authentication mode in
order to protect against any usurpation of system data.
Our work will be detailed according to the different phases of implementation of the
new tool, including the conceptualization, development and presentation of the
results obtained with a view to achieving a satisfactory tool.

Key words: software tool, information, internet, security, management,


trainees;

viii
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

TABLE DE MATIERE

DEDICACES ..................................................................................................... i

REMERCIEMENTS ......................................................................................... ii

LISTE DES SIGLES ET ABLREVIATIONS ................................................ iii


LISTE DES FIGURES ...................................................................................... v

LISTE DES TABLEAUX ................................................................................ vi

RESUME ......................................................................................................... vii

ABSTRACT ................................................................................................... viii

INTRODUCTION GENERALE ...................................................................... 1


CHAP I : JUSTIFICATION DU CONTEXTE ET CADRE DU PROJET .. 2
I.1 Généralité .................................................................................................. 2
I.1.1 Quelques terminologies ...................................................................... 2
I.1.2. Authentification en mode OTP .......................................................... 2
I.1.3 Fonctionnement du mode d’authentification OTP ............................. 3
I.2. Objectifs du projet ................................................................................... 3
I.2.1. Objectif Global .................................................................................. 3
I.2.2. Objectifs spécifiques.......................................................................... 4
I.3. Problématique .......................................................................................... 4
I.4. Etude de l’existant ................................................................................... 5
I.4.1 Description de l’existant ........................................................................ 5
I.4.2 Critique de l’existant .......................................................................... 5
I.4.3 Délimitation du champ d’études ......................................................... 6
I.6 Résultats attendus .................................................................................... 7
I.7 Apports scientifiques et technologiques ................................................... 8
I.8 Domaines d’application ............................................................................ 8
I.9 Methodologies .......................................................................................... 8
I.10. Outils de développement utilisés ......................................................... 9

conlusion ......................................................................................................... 10

ix
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

CHAP II.PRESENTATION DE CIBITOKE NEW TECHNOLOGY


CENTER……………………… .................................................................... 11
II.1.1 Historique ........................................................................................ 11
II.1.2 Présentation du centre ..................................................................... 12
II.2. Situation géographique ......................................................................... 13
II.3. Adresse du centre CNTC ...................................................................... 14
II.4 Mission du centre .................................................................................. 14
II.5 Objectifs du centre................................................................................. 14
II.6 Structure Organisationnelle du centre CNTC ....................................... 15
II.9 Partenaires de CNTC ............................................................................. 16

CHAP III : CONCEPTION DU SYSTEME D’INFORMATION DE


GESTION DES STAGIAIRES .................................................................... 17
III.0 Généralités et plan prévisionnel de la réalisation du projet ................. 17
III.1. Introduction ......................................................................................... 17
III.2 Intérêt de la modélisation ..................................................................... 18
III.3 Le cycle de vie d'un logiciel................................................................. 18
III.4. modèle de Cycle de vie d’un logiciel .................................................. 19
III.5 Notion d’UML ..................................................................................... 22
III.6 Diagrammes d’UML ............................................................................ 22
III.6.1 Diagrammes UML structurels ....................................................... 23
III.6.2 Diagrammes UML comportementaux ........................................... 24
III.7 Composants du diagramme de classe ................................................. 25
III.8 Identification des acteurs du système .................................................. 31
III.9 Diagramme de cas d’utilisation du système ....................................... 32
III.10 Diagramme de cas d’utilisation de l’administrateur .......................... 33
III.11 Diagramme de cas d’utilisation du secrétaire .................................... 34
III.12 Diagramme de cas d’utilisation du stagiaire ...................................... 35
III.13 Description contextuelle de quelques cas d’utilisation ...................... 36
III.13.1Description contextuelle de Cas d'utilisation « ajouter » ............. 36
III.13.2 Description contextuelle de Cas d'utilisation « s’authentifier » . 37
III.13.3 Description contextuelle de Cas d'utilisation : « modifier »........ 38

x
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

III.13.4 Description contextuelle de Cas d'utilisation : « Rechercher » ... 39


III.13.5 Description contextuelle de Cas d'utilisation : « Imprimer » ...... 40
III.14 Diagramme de classe ......................................................................... 41
III.15 Les diagrammes de séquences .......................................................... 43
III.15.1.Diagramme de séquence d’authentification................................. 43
III.15.2 Diagramme de séquence de demande du stage............................ 44
III.15.4 Diagramme de séquence de rechercher ....................................... 44

CHAP IV : MODELISATION MATHEMATIQUE AVEC ALGEBRE


RELATIONNELLE ...................................................................................... 45
IV.1 Définition ............................................................................................ 45
IV.2 Introduction .......................................................................................... 45
IV.3 Modèle Relationnelle ........................................................................... 46
IV.3.1 Historique et description du modèle .............................................. 46
IV.3.2 Justification du choix de ce modèle ............................................... 47
IV.3.3 Operateurs de l’algèbre Relationnelle ........................................... 47
IV.3.4 Fonctions d’agrégat en algèbre relationnelle ................................ 52
IV.3.5 Traduction d’opérateurs de l’algèbre relationnels en SQL ........... 52
IV.4 Optimisation des requêtes SQL ........................................................... 55
IV.5 Règles d'optimisation pour les requêtes SQL ...................................... 57
IV.5.1 Optimisation AND ......................................................................... 58
IV.5.2 Optimisation OR ............................................................................ 58
IV.5.3 Réorganisation des prédicats ......................................................... 59

CHAPITRE V: IMPLEMENTATION DU SYSTEME DE GESTION


DES STAGIAIRES ....................................................................................... 62
V.1 présentation de l’application ................................................................. 62
V.2 Les Fonctionnalités de l’application ..................................................... 62
V.2.1 L’interface d’Authentification pour des utilisateurs du système .... 62
V.2.2 L’interface d’Authentification pour l’OTP ..................................... 63
V.2.3 Formulaire d’inscription du stagiaire ............................................. 63
V.2.4 L’interface de demande du stage .................................................... 64
V.2.5 L’interface de résultat de demande du stage ................................... 64
V.2.6 La page d’accueil pour l’administrateur du système ...................... 65
V.2.7 Le formulaire d’ajout des nouveaux utilisateurs ............................ 66
V.2.8 Liste de demandes de stage ............................................................. 67
V.2.9 Formulaire pour faire la présence ................................................... 67

xi
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

V.2.10 Liste de présence des stagiaires .................................................... 68


V.2.11 Tableau de marque de présences des stagiaires ............................ 68
V.2.12 Liste d’affectation des stagiaires à un encadreur selon le service 69
V.2.13 Liste de désaffectation d’un stagiaire dans un service.................. 69
V.2.14 Liste des stagiaires qui ont terminés la période de stage .............. 70
V.2.15 Page d’attribution des droits d’axes aux données ......................... 71
V.2.16 Fiche du stagiaire à imprimer ....................................................... 72
V.2.17 attestation de service rendue ......................................................... 73

CONCLUSION GENERALE ET RECOMMANDATIONS ................... 74


Conclusion générale ..................................................................................... 74
Recommandations ........................................................................................ 74

REFERENCES BIBLIOGRAPHIQUES ET WEBOGRAPHIQUES ..... 75

ANNEXES ...................................................................................................... 76

xii
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

INTRODUCTION GENERALE

Depuis l’arrivée du nouveau système éducatif au Burundi, le nombre des


écoliers au niveau des écoles secondaires et supérieurs est de plus en plus
augmenté par rapport à l’ancien système éducatif, raison pour laquelle la
recherche des stages est très compliquée pour les élèves qui terminent les
écoles secondaires et universitaires afin de mettre en pratique les
connaissances théoriques acquises en classe.
Avant l’arrivée de la FSI au Burundi en particulier la technologie de
l’information et des communications TIC, Le Burundi était parmi l’un des
pays qui ne connaissaient pas la nouvelle technologie de l’informatisation et
l’automatisation des taches dans des entreprises car il était habitué à
l’utilisation des systèmes manuels et les données sont stockées dans des
archives au lieu de les stocker électroniquement dans des bases de données.
Le monde d’aujourd’hui évolue de temps à temps et la technologie doit être
appliquée dans tous les domaines d’activité ; Cela entraine le passage des
systèmes manuels vers la modélisation donc l’informatisation des données et
automatisation des taches.
En effet, toute entreprise publique ou privée est susceptible d’un traitement
des informations nécessaires à sa gestion. Toute structure professionnelle
offrant des stages a nécessairement besoin d'un système informatique de
gestion des stagiaires afin de mieux organiser et suivre ses stagiaires.

1
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

CHAP I : JUSTIFICATION DU CONTEXTE ET CADRE DU PROJET

I.1 Généralité

L'informatisation est le phénomène le plus important de notre époque.


Actuellement, l'informatique est au cœur de toutes les grandes entreprises. Le
système d'information d'une entreprise est composé de matériels et de logiciels.

I.1.1 Quelques terminologies

Du point de vue général la gestion désigne l'action ou la manière de gérer,


d'administrer, de diriger, d'organiser l'exécution d'une tâche.
Le stage quant à lui peut se définir comme étant une période pendant laquelle
une personne exerce une activité temporaire dans une entreprise, en vue de sa
formation. Le stagiaire quant à lui désigne toute personne qui effectue un stage.

I.1.2. Authentification en mode OTP

Un mot de passe à usage unique (OTP) est une séquence de caractères


numériques ou alphanumériques générée automatiquement qui permet
d'authentifier un utilisateur pour une seule connexion ou transaction. Cela
signifie qu'une fois qu'un utilisateur s'est connecté avec un mot de passe à usage
unique, celui-ci n'est plus valide et ne peut plus être utilisé pour des connexions
ultérieures. [7][13]
Il est utilisé dans le cadre d'un processus d'authentification multifactorielle
(MFA ) pour sécuriser l'accès aux données. Il est créé de manière aléatoire par
un algorithme, le code OTP se présente sous forme d'une séquence de caractères
(généralement alphanumérique) et peut être envoyé par e-mail, par SMS, par
message vocal ou encore via une application.
Un mot de passe à usage unique est un mot de passe qui possède deux propriétés
fondamentales : il expire rapidement et il ne peut pas être réutilisé. Vous
entendrez fréquemment l'abréviation OTP ainsi que les termes "OTP key " et
"OTP code ". [13]

2
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

I.1.3 Fonctionnement du mode d’authentification OTP

Les mots de passe à usage unique sont basés sur un algorithme qui crée un
nouveau code aléatoire chaque fois qu'un mot de passe est demandé. Mais pour
bien comprendre le fonctionnement d’OTP, il faut tenir compte de deux
éléments : le générateur OTP et le serveur d'authentification. Nous allons nous
pencher plus en détail sur ces deux composants.
Le générateur OTP fournira à l'utilisateur un mot de passe unique généré sur :
quelque chose que l'utilisateur possède (un jeton d'authentification) ;
Un mot de passe unique basé sur le temps (TOTP), il s'agit d'un mot de passe
OTP dont le facteur de déplacement est basé sur le temps ;Un algorithme de
mot de passe à usage unique basé sur HMAC (HOTP) qui est un algorithme
basé sur les événements OTP où le facteur de déplacement est basé sur les
compteurs plutôt que sur le temps.
En fonction de la solution MFA qui est à l'origine d’OTP, le générateur OTP
peut également inclure un élément connu de l'utilisateur. C'est pourquoi il est
important de vérifier soigneusement si votre solution MFA est basée sur
plusieurs facteurs ou sur un seul.
Le serveur d’authentification : Une fois que le générateur OTP a fourni à
l'utilisateur un mot de passe unique, comme indiqué ci-dessus, le serveur
d'authentification doit vérifier l’OTP. [13]

I.2. Objectifs du projet

I.2.1. Objectif Global

L’objectif principal est de mettre en place une application web avec mode
d’authentification « One Time Password » de gestion des stagiaires dans le
Centre de Nouvelle Technologie de Cibitoke

3
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

I.2.2. Objectifs spécifiques

Les objectifs spécifiques du nouveau système sont :


1) Assurer une authentification en mode OTP ;
2) Tracer la matrice des responsabilités pour le nouveau système ;
3) Sécuriser les données contre les accès non autorisés ;
4) Réduire la multiplication des supports papier ;
5) Digitaliser l’acquisition des demandes des stages ;
6) Permettre la recherche automatique des informations ;
7) Automatiser l’attribution des stages ;
8) Générer et envoyer des attestations aux stagiaires ;
9) Concevoir une base de données pour le stockage des données.
10) Archiver électroniquement des données relatives aux stagiaires.

I.3. Problématique

Le management quasi manuel des stagiaires relève le risque de perte de données


et la prise de décision erronée conduisant à un système éducatif moins
performant.
Les problèmes liés à ce système de gestion manuelle des stagiaires sont les
suivants :
1. Les Difficultés d’acquérir et attribuer les encadreurs aux stagiaires
puisqu’il s’agit d’un nombre très important des dossiers;
2. La recherche des stagiaires est compliquée ;
3. La difficulté d'élaboration des listes des stagiaires selon les domaines ;
4. La presque impossibilité d'élaborer les attestations de stage aux les
stagiaires ;
5. Le manque d’une base de donnes pour stocker les informations ;
6. La perte des informations ;

4
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

I.4. Etude de l’existant

I.4.1 Description de l’existant

Depuis sa création, Le CNTC reçoit plusieurs stagiaires au cours de l’année


afin de contribuer activement à la formation des futurs diplômés.
Les stagiaires qui désirent effectuer un stage dans la société doivent postuler
et déposer leurs demandes, directement au sein de la société.
Actuellement, la société ne dispose d’aucun outil informatique permettant la
gestion des stagiaires et leurs documents, ce qui nécessite une gestion manuelle.
Pour chaque stagiaire, le secrétaire réserve un dossier qui sera archivé dès que
le stagiaire termine son stage.
Les stagiaires sont obligés de ne pas s’absenter sans aucun motif, en cas
d’absence le secrétaire doit marquer l’absence du stagiaire en cherchant, à
chaque fois, son dossier afin de trouver sa fiche d’absence. Pour consulter une
information sur le stagiaire ou bien sur son stage (nom et prénom, durée
du stage, …) le secrétaire doit toujours chercher son dossier parmi les dossiers
existants.
Pour les stagiaires qui demandent leurs attestations du stage (en cours /
terminé), ils doivent attendre jusqu’à ce que le secrétaire le génère, de manière
personnalisée, leurs attestations à l’aide d’un éditeur de texte (Word ou Excel).
Pour faire les affectations des stages et des encadrants, Le secrétaire maintient
une table Excel qui contient 5 colonnes (nom et prénom du stagiaire, sujet de
stage, encadrant, date début du sage, date fin du stage). Chaque ligne dans la
table représente l’affection d’un encadrant à un stagiaire et de ce dernier à un
stage.

I.4.2 Critique de l’existant

Après l’analyse de l’existant, nous avons pu relever un certain nombre de


difficultés que rencontrent les employés de la société dans la gestion
actuelle des stages et des stagiaires : La tâche de recherche du dossier d’un
stagiaire et très lourde à faire lorsque le nombre des stagiaires est important,
L’accès aux informations des stagiaires est difficile vu qu’il faut à chaque fois
chercher leurs dossiers, Le secrétaire doit organiser manuellement les
documents et les dossiers des stagiaires et des stages, Le classement des
dossiers et très compliqué (par nom du stagiaire/par durée de stage …), les

5
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

documents peuvent être perdus, mal reclassées ou bien détériorés par l’usage
fréquent, les dossiers occupent beaucoup d’espace, les dossiers ne sont pas
sécurisés, n’importe quelle personne peut y accéder, vu qu’il n’y a pas d’un
système de génération automatique des attestations, les stagiaires doivent
toujours attendre le secrétaire pour qu’elle génère leurs attestations.

Récemment, un effort de la part de la secrétaire a été mis en place. Cela


consiste à enregistrer les informations des stagiaires dans des tableaux Excel
pour éviter le recours à chaque fois aux dossiers mais cette solution manque
d'interaction et n’évite pas la redondance des informations, ainsi elle n’est
pas très sécurisée.
Actuellement à la CNTC il n'existe pas un logiciel spécialisé pouvant assurer
la gestion des stagiaires. En effet, les différentes tâches de gestion s'effectuent
manuellement. Quand un stagiaire arrive à la CNTC, le chef de service lui fait
signer la convention dont il garde une copie. Puis il fait sortir une nouvelle liste
des stagiaires en utilisant des logiciels non adaptés tels que : Word, Excel.
Ensuite, lors de son départ le stagiaire dépose deux (02) imprimés de son
mémoire et une note ainsi qu'une attestation de fin de stage lui sont délivrées.
Ainsi CNTC ne garde ni la note ni le service où le stage a été effectué.

I.4.3 Délimitation du champ d’études

Notre étude porte essentiellement sur la gestion des stagiaires dans CNTC. En
effet la gestion des stagiaires consiste à faciliter la recherche des stagiaires, la
traçabilité des stages, l'impression des attestations du stagiaire ainsi que la
définition des profils des stagiaires. Il est donc important pour la CNTC de
mettre sur pied un système compétent pour palier à ce problème, un système
qui n'est autre que le Système Informatique de Gestion des Stagiaires de CNTC
d'où le choix de notre Thème.

6
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

I.5 Solutions proposées

Afin de pallier au problème observé, et de faciliter la tâche de la Gestion des


stagiaires, nous avons proposé une solution informatique comportant plusieurs
fonctionnalités. Cette solution est de développer une application web de gestion
des stagiaires qui doit être exploitée d’une manière facile et efficace.
1. Le nouveau système offre des solutions variées entre autre :
2. L’attribution des profils aux stagiaires ;
3. La traçabilité des différents stages effectués ;
4. La recherche automatique des informations ;
5. La Génération automatique des rapports ;
6. L’authentification en mode OTP pour l’accès aux informations ;
7. La Demande de stage à distance ;
8. L’Acceptation ou refus de la demande du stage à distance ;
9. La Gestion des retards et absences des stagiaires ;
10.L’Affectation automatique des stagiaires dans les différents services ;
11.La Consultation du résultat de demande en ligne ;
12.L’Evaluation automatique des stagiaires ;
13.La Conception d’une base de données pour Stocker les données

I.6 Résultats attendus

Les résultats attendus pour le nouveau système sont :


1) Les stages sont gérés de façon automatique ;
2) Les données sont stockées dans une base de données ;
3) La sécurité des données du nouveau système établie ;
4) La recherche des informations du stagiaire est automatique ;
5) La disponibilité des données en temps réel garantie ;
6) Pas des documents dans des archives ;
7) Tout le processus de gestion des stages se fait en ligne;
8) Les rapports sont générés automatiquement ;
9) Le réseau internet performant existe.

7
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

I.7 Apports scientifiques et technologiques

Ce travail a pour principaux apports comme :


1) Livraison des attestations aux stagiaires justifiant que l’étudiant a suivi
le stage régulièrement dans une période prévue ;
2) Documents attestatifs numériques ou traçables numériquement sur les
prestations des stagiaires disponibles pour les institutions hôtes ;
3) Evaluation automatique des stagiaires et transmission automatique des
résultats ;
4) Automatisation des opérations.

I.8 Domaines d’application

Les principaux domaines d’application sont :


1) Industries de transformation et de production de biens et services ;
2) Réseautage informatiques ;
3) Optimisation des systèmes d’information ;
4) Systèmes informatiques de gestion des entreprises ;
5) Institution publique ou privée ;

I.9 Methodologies

Pendant la phase de recherche d’information sur ce travail, on a dû recourir à


diverses méthodes.
Les techniques et les méthodologies utilisées pour collecter et analyser les
données sont les suivantes :
La technique documentaire : Nous avons fait recourt à des documents dans
l’entreprise CNTC, dans certains travaux scientifiques, livres, sites ou nous
avons pu récolter les informations nécessaires et exactes pour la réalisation de
ce travail.
Technique d'observation: C'est une technique qui permet aux chercheurs
d'entrer personnellement en contact avec la réalité qu'ils étudient, elle nous a
aussi permis de descendre sur terrains pour voir le déroulement des opérations
afin de critiquer les informations reçues

8
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Technique d’interview : nous a permis d'être en contact direct avec le


responsable de l’entreprise. (les employés et les chefs de service).

I.10. Outils de développement utilisés

PHP (HyperText Preprocessor), plus connu sous son sigle PHP, est un langage
de programmation libre, principalement utilisé pour produire des pages Web
dynamiques via un serveur HTTP. PHP est un langage impératif orienté
objet. Il s'agit d'un langage de script interprété côté serveur. Même s'il peut être
utilisé en ligne de commande, PHP est principalement associé à un serveur Web
utilisant le protocole HTTP dans le cadre d'une architecture client/serveur.
HTML signifie « HyperText Markup Language » qu'on peut traduire par
« langage de balises pour l'hypertexte ». Il est utilisé afin de créer et de
représenter le contenu d'une page web et sa structure.
CSS (Cascading Style Sheets : feuilles de style en cascade) est un langage
informatique qui sert à décrire la présentation des documents HTML et XML.
Les standards définissant CSS sont publiés par le World Wide Web Consortium
(W3C).
JavaScript (souvent abrégé JS) est un langage de programmation de scripts
principalement utilisé dans les pages web interactives
Bootstrap est un Framework destiné aux applications web. Développé par
Twitter et distribué sous licence Apache 2, c'est un outil à considérer lors du
développement rapide d'applications web.
APACHE est un serveur HTTP créé et maintenu au sein de la fondation
Apache. Jusqu'en avril 2019, ce fut le serveur HTTP le plus populaire du World
Wide Web.
MySQL est un système de gestion de bases de données relationnelles
(SGBDR). Il fait partie des logiciels de gestion de base de données les plus
utilisés au monde, autant par le grand public (applications web principalement)
que par des professionnels, en concurrence avec Oracle, PostgreSQL et
Microsoft SQL Server.
Sublimetext est un éditeur de texte générique codé en C++ et Python,
disponible sur Windows, Mac et Linux. Le logiciel a été conçu tout d'abord
comme une extension pour Vim, riche en fonctionnalités.

9
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Xampp est un ensemble de logiciels permettant de mettre en place un serveur


Web local, un serveur FTP et un électronique. Il s'agit d'une distribution de
logiciels libres offrant une bonne souplesse d'utilisation, réputée pour son
installation simple et rapide. Officiellement, XAMPP permet de configurer un
serveur de test local avant la mise en œuvre d'un site Web.
Astah UML Anciennement appelé Jude, Astah est un outil de modélisation
UML créé par la compagnie japonaise Change Vision.
Codigniter est un framework d'application Web PHP qui aide les développeurs
à créer des sites Web dynamiques à l'aide du modèle architectural Model-View-
Controller (MVC). Il fournit une boîte à outils simple et élégante pour créer des
applications Web robustes avec un code propre et concis. Codigniter est connu
pour sa rapidité, sa flexibilité et sa facilité d'utilisation, ce qui en fait un choix
populaire parmi les développeurs PHP.

conlusion

Après avoir évoqué les généralités sur la gestion des stagiaires et décrit le
problème dans le cadre de notre étude, nous nous intéresserons dans le chapitre
suivant à l'analyse et à la conception du système de gestion des stagiaires où
nous présentons tout d'abord le langage de modélisation, ensuite la démarche
de développement et enfin la modélisation du système.

10
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

CHAP II.PRESENTATION DE CIBITOKE NEW TECHNOLOGY


CENTER

II.1. Historique et présentation du centre

II.1.1 Historique

L’existence de Cibitoke New Technology Center émane de plusieurs versions.


Comme tant d’autre projets, dès l’idée à la réalisation passent aussi pas mal de
temps et de sessions d’épreuves.
Après ses études en informatique à l’université de Ngozi, le promoteur du projet
de faire naître le Centre des Nouvelles technologies de Cibitoke, Monsieur
l’Ingénieur Olivier NDATIMANA, a travaillé dans de différentes écoles
publiques et privées à Cibitoke où il a trouvé un problème majeur que malgré
la multiplicité des écoles techniques, la plus part des élèves terminent leurs
études secondaires sans avoir maitrisé la manipulation de l’outil informatique,
surtout, l’ordinateur à cause de la manque de matériel pour les pratiques. Outre
est que la plupart de la population instruite de cette province ne sait pas
manipuler l’ordinateur.

Pour faire face à ces problèmes, il a envisagé de mettre en place un centre qui
permettra à la population de cette localité d’apprendre et accroitre l’utilisation
des nouvelles technologies et qui permettra aussi aux élèves des écoles
techniques de cette province qu’ailleurs, de trouver un milieu adéquat des
pratiques sur l’ordinateur. Même si le CNTC a été créé en juillet 2018, il a resté
dans les idées du fondateur durant une année.
- Par exemple, un certain lundi du 05 juin 2017, le fondateur s’est réuni avec
quelques élèves finalistes de la section « informatique des
télécommunications » qu’il enseignait pour leur expliquer le projet et les
inciter à y participer ;
- En février 2018, il s’est réuni pour la 2ème fois avec les chômeurs techniciens
A2 en différentes sections informatiques comme IG, IM et IT pour planifier
comment on peut débuter ledit projet mais là aussi, il n’a pas réussi à
commencer suite au manque de moyens vu que à cette époque, le projet lui
demandait au minimum 5 million qu’il ne pouvait pas trouver sur place.

11
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

En se basant sur l’un des piliers de l’esprit entrepreneurial « la résilience » qui


consiste à continuer d’avancer malgré les difficultés, le fondateur avait la soif
de voir le CNTC en train de fonctionner. Voilà, en juillet 2018, il commence à
mettre à la disposition de tout le monde son Entreprise.

II.1.2 Présentation du centre

Le Centre des Nouvelles Technologies de Cibitoke est un centre qui offre de


divers services, entre autres : de formations en bureautique, maintenance des
ordinateurs, et autres ; le cyber ; de stages ordinaires et professionnels ; de
secrétariat publique ; et d’autres.
Outre, notre centre a pour mission de promouvoir la nouvelle technologie basée
surtout sur l’information qui permet d’accroitre le développement. Pour ce
faire, la CNTC constitue un environnement doux où l’accès à la manipulation
de l’ordinateur est familier à tout le monde.

Notre projet est bénéfique non seulement pour nous, mais aussi pour la
population locale puisque notre centre constitue un environnement adéquat
pour la manipulation de la machine ordinateur et ainsi, offre des satisfactions
aux divers besoins de la population en rapport avec l’information et la
communication.
Nous rémunérons nos travailleurs.

Notre centre se localise à Cibitoke-Rugombo Tr.7, au cours des premières


années, nous accomplissons nos activités dans un local loué couvrant une
superficie de 54 m2 (6 × 9 𝑚) organisée en deux appartements dont l’un
constitue la salle polyvalente et l’autre sert pour l’administration du centre. Le
coût mensuel de location s’élève à une somme de 100. 000 Fr bu. La structure
organisationnelle dudit centre interpelle 6 employeurs dont connait le centre
comme personnel. Ce qui exige le plus, les qualités de résiliences,
persévérances, dévouements, habiletés et expertises ardentes pour pouvoir
répondre avec pertinence et fiabilité aux besoins de tous genres des demandeurs
de services.

12
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

II.2. Situation géographique

Le centre « Cibitoke New Technology Center » se situe dans la province de


Cibitoke, précisément, au chef-lieu de ladite province, juste au 8ème transversale
sur la route nationale (RN5) Bujumbura-Rugombo. Le CNTC dispose deux
locaux qui résultent du louage. L’un de ces locaux est le siège social et l’autre
correspond en atelier pour des campagnes des pratiques accueillants des
effectifs élevés des participants tels les stages et autres.

Le siège social dudit centre se situe entre une pharmacie vétérinaire et le local
de l’ATRABU-Cibitoke.
Par rapport aux quatre points cardinaux et les points stratégiques :
- Au Nord, se trouve le Bar-Guest house HOME SAINT JOSEPH des
Frères BENEYOZEFU de Cibitoke;
- Au Nord-Ouest, se trouve la station KOBIL de Cibitoke ;
- A l’Ouest, se trouve le Quartier social A;
- Au Sud, se trouve la Paroisse Catholique Christ-Roi de Cibitoke ;
- Et en fin, à l’Est, se trouve l’ECOFO Cibitoke.

Quant au local-atelier, ce local se situe par rapport aux quatre points cardinaux :
- Au Nord, se trouve le 112ème Bataillon de Cibitoke;
- Au Nord-Ouest, l’Université UPI de Cibitoke et le palais provincial ;
- Au Nord-Est, se trouve l’Hôpital de Cibitoke ;
- A l’Est, se trouve la rivière Nyamagana ;
- A l’Ouest, sur la route nationale 5, le principal chemin qui mène à ce
local passe par la BANCOBU-Cibitoke;
- Au Sud-Ouest, se trouve le chef-lieu de la Zone Cibitoke ;
- Au sud, se trouve l’Ecole des Techniciens de Laboratoire de Cibitoke ;
- Et enfin, au Sud-Est, se trouve le camp de transit des déplacées
Cishemere.
C’est juste au Nord-Ouest du Burundi, la province qui partage les frontières
avec le Rwanda au Nord, la province de Kayanza à l’Est, la RDC à l’Ouest ainsi
que la province de Bubanza au sud (voir Sud-Est, Sud).

13
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

II.3. Adresse du centre CNTC

Vis-à-vis que c’est une institution à caractère de technologie avancée, le centre


CNTC est joignable aussi via ses lignes téléphoniques dont : 68 217 793 /
69 543 392 / 79 443 441 mais aussi sur son adresse électronique de type mail :
cntcbdi@gmail.com .

II.4 Mission du centre

Le Centre de Nouvelles Technologies de Cibitoke a pour mission de


promouvoir les nouvelles technologies basées sur l’information et la
communication afin de participer à l’accroissement du développement.

II.5 Objectifs du centre

Le Centre des Nouvelles Technologies de Cibitoke est un centre qui offre de


divers services, entre autres : de formations en bureautique, maintenance des
ordinateurs, et autres ; le cyber ; de stages ordinaires et professionnels ; de
secrétariat publique ; et d’autres. Le principal objectif de Cibitoke New
Technology Center est de sensibiliser la population surtout instruite de la
province de Cibitoke qu’ailleurs d’abandonner le système archaïque
d’information et de communication afin d’adopter les nouvelles technologies
qui permet d’accélérer le développement et de faciliter la vie.

Les objectifs spécifiques sont entre autres : Former la population à manipuler


l’ordinateur et à utiliser les différents logiciels d’application ; Octroyer les
stages aux élèves finalistes des écoles secondaires techniques et aussi ceux des
universités ; Mettre à la disposition des élèves et étudiants un lieu de se
familiariser aux pratiques ; Participer au développement de la province ; Lutter
contre le chômage en octroyant du travail aux chômeurs ;Sensibiliser la
population à acheter et utiliser l’ordinateur ; Sensibiliser les entreprises
publiques et privées d’utiliser les outils informatiques pour améliorer la
rentabilité de leurs entreprises ; Présenter une image de spécialiste et bâtir une
organisation professionnelle ; Participer à la maintenance des équipements
informatiques des entreprises ; Etc.

14
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Les objectifs à atteindre à court terme : Faire connaitre l’importance tant


scientifique qu’économique d’utiliser la machine ordinateur ; Satisfaire à
majorité les divers besoins de la population locale en rapport avec l’information
et la communication.

Les objectifs à atteindre à long terme sont: Arriver à créer les agences du centre
dans les communes de la province Cibitoke ainsi qu’ailleurs ; Développer un
site web de notre centre pour faire connaître plus loin le dit centre et ainsi
accéder à concourir à des marchés nationaux, interrégionaux et même
internationaux surtout en programmation et de diverses formations (cas des
séminaires et ateliers, etc.).

II.6 Structure Organisationnelle du centre CNTC

Figure 1:Structure Organisationnelle du centre CNTC


La structure organisationnelle dudit centre interpelle 6 employeurs dont connait
le centre comme personnel. Ce qui exige le plus, les qualités de résiliences,
persévérances, dévouements, habiletés et expertises ardentes pour pouvoir
répondre avec pertinence et fiabilité aux besoins de tous genres des demandeurs
de services.

15
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

II.9 Partenaires de CNTC

1) CJED BLC : Dès 2020, partenariat dans le fonctionnement (offre du


local pour atelier multimédia) ;
2) ETB : Dès 2019, partenariat dans le renforcement des capacités (offre de
stagiaires de la section IM) ;
3) GTHS : Dès 2019, partenariat dans le renforcement des capacités (offre
des lauréats de GTHS aux travaux pratiques chez CNTC pour renforcer
les programmes ; les sections de IM, IT, Mécanique, IG, etc). Ainsi que
le partenariat en technologie (offre des terrains au CNTC pour les
pratiques en maintenance);
4) LTC Rugombo : Dès 2019, assistance aux stagiaires ; les sections de IM
et Electromécanique. Dès 2020, partenariat dans le renforcement des
capacités (offre de stagiaires de la section IM) ;
5) Lycée Technique KIRIBA de la commune Mabayi: Dès 2020,
partenariat dans le renforcement des capacités (offre de stagiaires de la
section IT) ;
6) Lycée Technique Rugendo de la commune Mugina: Dès 2019,
partenariat dans le renforcement des capacités (offre des lauréats aux
travaux pratiques chez CNTC pour renforcer les programmes ; la section
de IG. Assistance aux stagiaires de la section EI ainsi que le partenariat
en technologie (offre des terrains au CNTC pour les pratiques en
maintenance). Dès 2020, assistance aux stagiaires de la section IG;
7) UCODE-AMR : Dès 2019, partenariat en technologie (offre des terrains
au CNTC pour les pratiques en maintenance) ;
8) EDNOS : Dès 2020, partenariat dans le fonctionnement (assistance en
soumission des projets).

16
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

CHAP III : CONCEPTION DU SYSTEME D’INFORMATION DE


GESTION DES STAGIAIRES

III.0 Généralités et plan prévisionnel de la réalisation du projet

Dans le cadre de ce chapitre, nous allons définir quelques généralités portant


sur les méthodes et outils mettant en évidence la réalisation de notre projet.
Nous allons commencer par présenter le langage de modélisation unifié UML
(Unified Modeling Language), définir la démarche générique du processus de
développement logiciel qui l’accompagne ainsi que la description de quelques
cas d’utilisation du système.

III.1. Introduction

Pour faire face à la complexité croissante des systèmes d’information, de


nouvelles méthodes et outils ont été créées. La principale avancée des quinze
dernières années réside dans la programmation orientée objet(P.O.O.). Face à
ce nouveau mode de programmation, les méthodes de modélisation classique
(telle MERISE) ont rapidement montré certaine limites et ont dû s’adapter. De
très nombreuses méthodes ont apparues comme Booch, OMT, OOSE,…
Les langages orientés objet dominent le monde de la programmation parce
qu'ils modélisent des objets du monde réel. L'UML combine plusieurs notations
orientées objet : Object-Oriented Design (conception orientée objet), Object
Modeling Technique (technique de modélisation objet) et Object-Oriented
Software Engineering (génie logiciel orienté objet).[1]
C’est ainsi qu’est apparu UML (Unified Modified Language « langage de
modélisation objet unifié »), qui est issu de la fusion des méthodes Booch,
OMT (Object Modelling Technique) et OOSE (Object Oriented Software
Engineering).
L'UML utilise les points forts de ces trois approches pour présenter une
méthodologie plus cohérente et plus facile à utiliser. Il représente les meilleures
pratiques de création et de documentation des différents aspects de la
modélisation des systèmes logiciels et d'entreprise. [1]

17
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

III.2 Intérêt de la modélisation

La modélisation permet de prédire un fonctionnement ou des événements à


venir ; De mieux comprendre, d’expliquer et de maîtriser le fonctionnement
d’un système (un dessin vaut mieux que mille discours) et par conséquent de
faciliter sa réalisation puis sa maintenance. Elle Permet aussi dans certains cas
d’automatiser certaine tâches (génération automatique du squelette du
programme à partir d’un modèle).

III.3 Le cycle de vie d'un logiciel

Le cycle de vie d'un logiciel (en anglais software lifecycle), désigne toutes les
étapes du développement d'un logiciel, de sa conception à sa disparition.
L'objectif d'un tel découpage est de permettre de définir des jalons
intermédiaires permettant la validation du développement logiciel, c'est-à-dire
la conformité du logiciel avec les besoins exprimés, et la vérification du
processus de développement, c'est-à-dire l'adéquation des méthodes mises en
œuvre.
L'origine de ce découpage provient du constat que les erreurs ont un coût
d'autant plus élevé qu'elles sont détectées tardivement dans le processus de
réalisation. Le cycle de vie permet de détecter les erreurs au plus tôt et ainsi de
maîtriser la qualité du logiciel, les délais de sa réalisation et les coûts associés.
Le cycle de vie du logiciel comprend généralement au minimum les étapes
suivantes :
Analyse des besoins et faisabilité signifie l'expression, le recueil et la
formalisation des besoins du demandeur (le client) et de l'ensemble des
contraintes, puis l'estimation de la faisabilité de ces besoins ;
Spécifications ou conception générale c’est une élaboration des
spécifications de l'architecture générale du logiciel ;
Conception détaillée est une étape qui consiste à définir précisément chaque
sous-ensemble du logiciel ;
Codage (Implémentation ou programmation) :c'est la traduction dans un
langage de programmation des fonctionnalités définies lors de phases de
conception ;

18
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Tests unitaires : ils permettent de vérifier individuellement que chaque sous-


ensemble du logiciel est implémenté conformément aux spécifications ;
Intégration : l'objectif est de s'assurer de l'interfaçage des différents éléments
(modules) du logiciel. Elle fait l'objet de tests d'intégration consignés dans un
document ;
Qualification (ou recette) : c'est-à-dire la vérification de la conformité du
logiciel aux spécifications initiales ;
Documentation : elle vise à produire les informations nécessaires pour
l'utilisation du logiciel et pour des développements ultérieurs ;
Mise en production : c'est le déploiement sur site du logiciel ;
Maintenance : elle comprend toutes les actions correctives (maintenance
corrective) et évolutives (maintenance évolutive) sur le logiciel.
La séquence et la présence de chacune de ces activités dans le cycle de vie
dépendent du choix d'un modèle de cycle de vie entre le client et l'équipe de
développement. Le cycle de vie permet de prendre en compte, en plus des
aspects techniques, l'organisation et les aspects humains. [3]

III.4. modèle de Cycle de vie d’un logiciel

Le cycle de vie du développement logiciel (Cycle de vie d'un projet


informatique) fait référence à la conception, le développement et le test des
logiciels de qualité optimale. SDLC (plus clairement Software Développent
Life Cycle), définit le cycle complet de développement.
Modèle de Cycle de vie en cascade a été mis au point dès 1966, puis formalisé
aux alentours de 1970.
Dans ce modèle le principe est très simple : chaque phase se termine à une date
précise par la production de certains documents ou logiciels. Les résultats sont
définis sur la base des interactions entre étapes, ils sont soumis à une revue
approfondie et on ne passe à la phase suivante que s'ils sont jugés satisfaisants.

19
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Figure 2: Modèle du cycle de vie en cascade [3]


Le modèle original ne comportait pas de possibilité de retour en arrière. Celle-
ci a été rajoutée ultérieurement sur la base qu'une étape ne remet en cause que
l'étape précédente, ce qui, dans la pratique, s'avère insuffisant.
L'inconvénient majeur du modèle de cycle de vie en cascade est que la
vérification du bon fonctionnement du système est réalisée trop tardivement :
lors de la phase d'intégration, ou pire, lors de la mise en production.
Modèle de Cycle de vie en V demeure actuellement le cycle de vie le plus
connu et certainement le plus utilisé. Il s'agit d'un modèle en cascade dans
lequel le développement des tests et du logiciel sont effectués de manière
synchrone.

Figure 3 : Modèle du cycle de vie en V. [3]

20
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Le principe de ce modèle est qu'avec toute décomposition doit être décrite la


recomposition et que toute description d'un composant est accompagnée de
tests qui permettront de s'assurer qu'il correspond à sa description.
Ceci rend explicite la préparation des dernières phases (validation-vérification)
par les premières (construction du logiciel), et permet ainsi d'éviter un écueil
bien connu de la spécification du logiciel : énoncer une propriété qu'il est
impossible de vérifier objectivement après la réalisation.
Cependant, ce modèle souffre toujours du problème de la vérification trop
tardive du bon fonctionnement du système.
Modèle du cycle de vie en spirale proposé par B. Boehm en 1988, ce modèle
est beaucoup plus général que le précédent. Il met l'accent sur l'activité
d'analyse des risques : chaque cycle de la spirale se déroule en quatre phases :
Détermination : à partir des résultats des cycles précédents, ou de l'analyse
préliminaire des besoins, des objectifs du cycle, des alternatives pour les
atteindre et des contraintes ;
Analyse des risques : évaluation des alternatives et, éventuellement
maquettage ; Développement et vérification de la solution retenue : un modèle
« classique » (cascade ou en V) peut être utilisé ici ; Revue des résultats et
vérification du cycle suivant : L'analyse préliminaire est affinée au cours des
premiers cycles. Le modèle utilise des maquettes exploratoires pour guider la
phase de conception du cycle suivant. Le dernier cycle se termine par un
processus de développement classique.
Modèle du cycle de vie en incrément un logiciel est décomposé en
composants développés séparément et intégrés à la fin du processus dans les
modèles précédents.
Dans les modèles par incrément un seul ensemble de composants est développé
à la fois : des incréments viennent s'intégrer à un noyau de logiciel développé
au préalable. Chaque incrément est développé selon l'un des modèles
précédents.
Les avantages de ce type de modèle sont les suivants :
Chaque développement est moins complexe ; les intégrations sont
progressives ; il est ainsi possible de livrer et de mettre en service chaque
incrément ; il permet un meilleur lissage du temps et de l'effort de
développement grâce à la possibilité de recouvrement des différentes phases.
21
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Les risques de ce type de modèle sont les suivants :


Remettre en cause les incréments précédents ou pire le noyau ; Ne pas pouvoir
intégrer de nouveaux incréments.
Les noyaux, les incréments ainsi que leurs interactions doivent donc être
spécifiés globalement, au début du projet. Les incréments doivent être aussi
indépendants que possible, fonctionnellement, mais aussi sur le plan du
calendrier du développement. [3]

III.5 Notion d’UML

UML (Unified Modeling Language), se définit comme un langage de


modélisation graphique et textuel destiné à comprendre et à définir des besoins,
spécifier et documenter des systèmes, esquisser des architectures logicielles,
concevoir des solutions et communiquer des points de vue.
UML modélise l’ensemble des données et des traitements en élaborant des
différents diagrammes. En clair, il ne faut pas designer UML en tant que
méthode (Il y manque la démarche) mais plutôt comme une boite d’outils qui
sert à améliorer les méthodes de travail.

III.6 Diagrammes d’UML

UML dans sa version 2 s’articule autour de treize diagrammes, chacun d’entre


eux est dédié à la représentation d’un système logiciel suivant un point de vue
particulier.
Ces diagrammes sont regroupés dans deux grands ensembles: les diagrammes
structurels et les diagrammes de comportement.
L’ensemble des 13 types de diagrammes UML peut ainsi être résumé sur la
figure ci- dessous :

22
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Figure 4: Schéma d’ensemble des diagrammes d’UML 2[14] [15]


L'UML utilise des éléments et les associe de différentes manières pour former
des diagrammes qui représentent les aspects statiques ou structurels d'un
système, ainsi que des diagrammes comportementaux qui capturent les aspects
dynamiques d'un système.

III.6.1 Diagrammes UML structurels

Les diagrammes UML structurels, comme leur nom l’indique, illustrent la


structure d’un système, notamment les classes, les objets, les paquetages, les
composants, etc., et les relations entre ces éléments.
Diagramme de classes : Diagramme UML le plus couramment utilisé et
fondement de toute solution orientée objet. Classes d'un système, attributs et
opérations, et relations entre chaque classe.

23
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Les classes sont regroupées pour créer des diagrammes de classe lors de la
modélisation de systèmes de grande taille.
Diagramme de composants : Représente la relation structurelle entre les
éléments d'un système logiciel, le plus souvent utilisé avec des systèmes
complexes disposant de multiples composants. Les composants communiquent
à l'aide d'interfaces.
Diagramme de structure composite : Les diagrammes de structure composite
sont utilisés pour présenter la structure interne d'une classe.
Diagramme de déploiement : Illustre les infrastructures physique et logicielle
d'un système. Ils sont utiles lorsqu'une solution logicielle est déployée sur de
nombreuses machines avec des configurations uniques.
Diagramme d'objets: Montre les relations entre des objets à travers des
exemples tirés du monde réel et permet de voir l'apparence d'un système à
n'importe quel instant donné. Les données sont disponibles à l'intérieur des
objets, elles peuvent donc être utilisées pour clarifier les relations entre des
objets.
Diagramme de paquetages : Il existe deux types de dépendances spéciales entre
les paquetages : l'importation de paquetages et la fusion de paquetages. Les
paquetages peuvent représenter les différents niveaux d'un système pour en
révéler l'architecture. Les dépendances des paquetages peuvent être marquées
pour mettre en avant le mécanisme de communication entre les différents
niveaux. [1][14]

III.6.2 Diagrammes UML comportementaux

Les diagrammes de comportement (behavior diagrams) rassemblent :


Diagrammes d'activités : Flux de travail d'entreprise ou opérationnels
représentés graphiquement pour montrer l'activité de chacune des composantes
du système. Les diagrammes d'activités sont utilisés comme une alternative aux
diagrammes états-transitions.
Diagramme de communication Semblable à un diagramme de séquence, mais
l'accent est mis sur les messages transmis entre les objets. La même information
peut être représentée par un diagramme de séquence et différents objets.

24
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Diagramme global d'interaction. Il existe sept types de diagrammes


d'interaction, et ce diagramme montre l'ordre dans lequel ils agissent.
Diagramme de séquence Montre comment les objets interagissent les uns avec
les autres et dans quel ordre. Ils représentent les interactions d'un scénario
particulier.
Diagramme états-transitions Semblable à un diagramme d'activités, il décrit le
comportement des objets qui se comportent de diverses manières dans leur état
actuel.
Diagramme de temps À l'instar d'un diagramme de séquence, le comportement
des objets est représenté sur un laps de temps donné. S'il y a un seul objet, le
schéma est simple. S'il y a plus d'un objet, les interactions des objets sont
présentées sur ce laps de temps précis.
Diagramme de cas d'utilisation Il représente une fonctionnalité spécifique dans
un système et est créé pour illustrer comment différentes fonctionnalités sont
interconnectées et montrer leurs contrôleurs (ou acteurs) internes et
externes[1][14].

III.7 Composants du diagramme de classe

Le diagramme de classe constitue l’un des pivots essentiels de la modélisation


avec UML. En effet, ce diagramme permet de donner la représentation statique
du système à développer. Cette représentation est centrée sur les concepts de
classe et d’association. Chaque classe se décrit par les données et les traitements
dont elle est responsable pour elle-même et vis-à-vis des autres classes. Les
traitements sont matérialisés par des opérations. Le détail des traitements n’est
pas représenté directement dans le diagramme de classe; seul l’algorithme
général et le pseudocode correspondant peuvent être associés à la modélisation.
[2]
La description du diagramme de classe est fondée sur : le concept d’objet ; le
concept de classe comprenant les attributs et les opérations ;les différents types
d’association entre classes.
Le concept d’objet : Un objet est un concept, une abstraction ou une chose qui
a un sens dans le contexte du système à modéliser. Chaque objet a une identité
et peut être distingué des autres sans considérer a priori les valeurs de ses
propriétés.

25
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

- Un objet est caractérisé par les valeurs de ses propriétés qui lui confèrent
des états significatifs suivant les instants considérés.
- Concept de classe.
- Une classe décrit un groupe d’objets ayant les mêmes propriétés
(attributs), un même comportement (opérations), et une sémantique
commune (domaine de définition).
- Un objet est une instance d’une classe. La classe représente l’abstraction
de ses objets. Au niveau de l’implémentation, c’est-à-dire au cours de
l’exécution d’un programme, l’identificateur d’un objet correspond une
adresse mémoire [10].
Une classe se représente à l’aide d’un rectangle comportant plusieurs
compartiments.
-Les trois compartiments de base sont : La désignation de la classe ; La
description des attributs ; La description des opérations.
-Deux autres compartiments peuvent être aussi indiqués : La description des
responsabilités de la classe ; La description des exceptions traitées par la classe.
Cependant Il est possible de manipuler les classes en limitant le niveau de
description à un nombre réduit de compartiments selon les objectifs poursuivis
par le modélisateur.
Ainsi les situations suivantes sont possibles pour la manipulation d’une
description restreinte de classe: description uniquement du nom et des
caractéristiques générales de la classe ;description du nom de la classe et de la
liste d’attributs.
La figure suivante montre le formalisme général des comportements d’une
classe:

Nom de la classe

Attributs

Operations

Figure 5:Formalisme général de la classe

26
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Attributs est une propriété élémentaire d’une classe. Pour chaque objet d’une
classe, l’attribut prend une valeur (sauf cas d’attributs multivalués).
La description complète des attributs d’une classe comporte un certain nombre
de caractéristiques qui doivent respecter le formalisme suivant :
Visibilité/Nom attribut : type [= valeur initiale {propriétés}]
Visibilité : Chaque attribut d’une classe peut être de type public, protégé,
privé ou paquetage ;
Nom d’attribut : nom unique dans sa classe ;
Type: type primitif (entier, chaîne de caractères…) dépendant des
types disponibles dans le langage d’implémentation ou type classe
matérialisant un lien avec une autre classe.
Valeur initiale : valeur facultative donnée à l’initialisation d’un objet de la
classe.
Propriétés : valeurs marquées facultatives (ex. : « interdit » pour mise à jour
interdite).
Opération : Une opération est une fonction applicable aux objets d’une classe.
Une opération permet de décrire le comportement d’un objet. Une méthode est
l’implémentation d’une opération.
-Caractéristiques d’une opération:
Visibilité : Chaque opération d’une classe peut être de type public, protégé,
privé ou paquetage.
Nom d’opération : utiliser un verbe représentant l’action à réaliser.
Paramètres : liste de paramètres (chaque paramètre peut être décrit, en plus de
son nom, par son type et sa valeur par défaut). L’absence de paramètre est
indiquée par ( ).
Type résultat : type de (s) valeur(s) retourné(s) dépendant des types disponibles
dans le langage d’implémentation.
Propriétés : valeurs facultatives applicables (ex. : {query} pour un
comportement sans influence sur l’état du système).
Visibilité des attributs et opérations
Nous avons vu que chaque attribut ou opération d’une classe peut être de type
public, protégé, privé ou paquetage.
27
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Les symboles + (public), # (protégé), - (privé) et ~ (paquetage) sont indiqués


devant chaque attribut ou opération pour signifier le type de visibilité autorisé
pour les autres classes.Les droits associés à chaque niveau de confidentialité
sont :
Public (+) : Attribut ou opération visible par tous.
Protégé (#) : Attribut ou opération visible seulement à l’intérieur de la classe
et pour toutes les sous-classes de la classe.
Privé (-) : Attribut ou opération seulement visible à l’intérieur de la classe.
Paquetage (~) : Attribut ou opération ou classe seulement visible à l’intérieur
du paquetage où se trouve la classe .
On peut montrer quelques notions évoquées ci-haut avec la classe ci-dessus :

Stagiaire

-Idstagr : int
-Nomstgr : String
-Prenomstgr :String

+ Enregistrer() :void
+Modifier() : void
+Supprimer() : void

Figure 6 : une classe avec des attributs et méthodes


-Relation entre les classes
Les classes ne valent que par les relations qu'elles tissent entres elles. Ces
relations ne sont pas exclusives au diagramme de classe, elles peuvent
également s'appliquer à l'ensemble des diagrammes statiques.
Association ou relation structurelle exprime une connexion sémantique
bidirectionnelle entre classes. C’est une abstraction des liens qui existent entre
les objets instances des classes associées
Une association est représentée par un trait plein, pouvant être orienté. La
multiplicité est notée du côté du rôle cible de l'association.

28
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Elle spécifie le nombre d'instances pouvant être associées (liées) avec une seule
instance source de la relation. Exemple : Une personne peut posséder plusieurs
voitures (entre zéro et un nombre quelconque) ; une voiture est possédée par
une seule personne.
Les associations comportent des cardinalités : Cette notion est identique à celle
contenue dans Merise. Dans UML, on parle de valeurs de multiplicité.
Interprétation : Une revue est disponible dans un ou plusieurs points de vente.
Un point de vente distribue de une à plusieurs revues.
Commentaire: Le nombre de classes participant à l'association définissent
l'arité de l'association. L’exemple précédent montre une association d'arité 2,
Ceci sera le plus fréquent.
Valeurs de multiplicité :
Tableau 1: valeurs de multiplicité

1..1 Un et un seul

1 Un et un seul

0..1 Zéro ou un

m..n De m à n

* De zéro à plusieurs

0..* De zéro à plusieurs

1..* De un à plusieurs

Relation de spécialisation/généralisation
Relation d'héritage, dans laquelle les objets de l'élément spécialisé (classe
enfant) peuvent remplacer les objets de l'élément général (classe parent).

29
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Notation UML : Un trait plein, orienté de la classe spécialisée (enfant) vers son
modèle (parent) et se terminant par une flèche fermée.

utilisateur Encadreur

Figure 7: Formalisme générale de l’héritage


Relation de dépendance : Cette relation est simple à comprendre : elle
présente l'utilisation que fait une classe d'une autre. Une classe dépend d'une
autre si ses méthodes manipulent l'objet de cette classe. En UML, une
dépendance est représentée par une ligne en tirets, terminée par une simple
flèche.Autrement dit, une dépendance est une relation entre deux éléments dans
laquelle une modification à un élément (l'élément indépendant : par
exemple fournisseur) provoque des modifications sur l'autre élément (l'élément
dépendant : exemple client).
Une dépendance est représentée graphiquement sous la forme d'une ligne
dirigée de pointillés, dirigée vers l'élément indépendant (fournisseur):
Agrégation: Une relation d'agrégation indique un principe de subordination
entre l'agrégat (classe qui regroupe les classes agrégées) et les agrégées.
Concrètement, elle indique une "possession" : l'agrégat peut contenir plusieurs
objets d'un type. Réservation Par exemple, une classe peut contenir un ou
plusieurs objets de type Place de Cinéma.
En UML, une agrégation est représentée par une ligne entre deux classes,
terminée par un losange vide du côté de l'agrégat.
Exemple : La relation entre une Personne est son adresse peut être vue comme
une agrégation : la classe Personne possède une adresse, mais l'Adresse ne
meurt pas forcément quand la Personne déménage, ou "décède".
Composition aussi appelée "agrégation forte" ou "agrégation par valeur", il
s'agit en fait d'une agrégation à laquelle on impose des contraintes internes : un
seul objet peut faire partie d'un composite (l'agrégat de la composition), et
celui-ci doit gérer toutes ses parties.

30
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

En clair, les composants sont totalement dépendants du composite. En UML,


la composition est représentée de la même manière que l'agrégation, mais le
losange est plein. [2]

III.8 Identification des acteurs du système

Le tableau ci-dessous illustre l’identification des cas d’utilisation de notre


système
Tableau 2:Identification des cas d’utilisation de notre système

Acteurs Cas d’utilisation

Tous les acteurs S’authentifier

Administrateur du système -Gérer les utilisateurs


-accepter /refuser les demande
-imprimer les rapports
-supprimer le stagiaire
-affecter le stagiaire dans le service
-affecter l’encadreur au stagiaire
-afficher les listes

Secrétaire -accepter /refuser les demande


-imprimer les rapports
-supprimer le stagiaire
-affecter le stagiaire dans le service
-affecter le stagiaire à un encadreur
-afficher les listes des stagiaires

Stagiaire -faire la demande de stage ??


-consulter le résultat de la demande
de stage

Encadreur -afficher la liste des stagiaires

31
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

III.9 Diagramme de cas d’utilisation du système

Figure 8:diagramme de cas d’utilisation du système

32
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

III.10 Diagramme de cas d’utilisation de l’administrateur

Figure 9:Diagramme de cas d’utilisation de l’administrateur

33
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

III.11 Diagramme de cas d’utilisation du secrétaire

Figure 10:Diagramme de cas d’utilisation du secrétaire

34
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

III.12 Diagramme de cas d’utilisation du stagiaire

Figure 11:Diagramme de cas d’utilisation du stagiaire

35
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

III.13 Description contextuelle de quelques cas d’utilisation

III.13.1Description contextuelle de Cas d'utilisation « ajouter »

Le tableau suivant présente la description textuelle du cas d'utilisation Ajouter


stagiaire, pour enrichir le diagramme de cas d'utilisation :
Tableau 3:Description textuelle du cas d'utilisation « Ajouter stagiaire »,

Nom Ajouter stagiaire

Résume Ce cas d'utilisation permet à l'administrateur


d'accepter ou de refuse la demande d’un nouveau
stagiaire.

Acteurs primaires Administrateur, secrétaire

Acteurs
secondaires

Précondition Le stagiaire n'est pas inscrit

Scenario nominal 1. le stagiaire envoie la demande


2. L'administrateur vérifie la demande
3. l’administrateur clique sur le bouton accepter ou
refuse
2. Le système lui propose l'interface d'enregistrement
3. L'administrateur entre les données puis clique sur le
bouton d'envoi
4. Le système envoie un message de confirmation de
l'ajout à l'administrateur.
Scénario alternatif A1 : le profil n’est pas demande
6- Le système informe notifie au stagiaire que la
demande est refusée
Scénario d'erreur

Post – condition Le système a enregistré un nouvel stagiaire dans la


base de données. Un nouvel stagiaire vient d'être
ajouté.

36
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

III.13.2 Description contextuelle de Cas d'utilisation « s’authentifier »

Tableau 4:Cas d'utilisation « S’Authentifier »

Nom Authentification
Résume Ce cas d'utilisation permet à un utilisateur de se
connecter à la plateforme et d'avoir accès à son compte
Acteurs primaires Utilisateur,
Acteurs
secondaires
Précondition Avoir les informations (email, mot de passe)
enregistrées dans la base de données du système
Scenario nominal 1. L'utilisateur lance l'application
2. Le système affiche l'interface de connexion
3. L'utilisateur saisie les informations de son compte
4. Le système vérifie les informations entrées
5. Le système envoie le mot de passe unique en mode
OTP sur mail
6. L’utilisateur entre le mot de passe provenant sur son
mail
7. Le système affiche la page d'accueil (utilisateur,
administrateur, secrétaire)

Scénario alternatif A1 : les informations du compte sont incorrectes


L'enchainement A1 commence au point 3
5- Le système informe l'utilisateur de l'erreur
Le scénario reprend au point 2

Scénario d'erreur Le profil n’est pas demande


Post – condition L'utilisateur est connecté à l’application.

37
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

III.13.3 Description contextuelle de Cas d'utilisation : « modifier »

Le tableau suivant présente la description textuelle du cas d'utilisation Modifier


stagiaire, pour enrichir le diagramme de cas d'utilisation :
Tableau 5:Cas d'utilisation « modifier stagiaire »

Nom Modifier stagiaire

Résume Ce cas d'utilisation permet à l'administrateur d'ajouter


un nouveau stagiaire dans la base de données

Acteurs primaires Administrateur, secrétaire

Acteurs
secondaires

Précondition Le stagiaire est déjà inscrit

Scenario nominal 1. L'administrateur ou secrétaire clique sur le lien de


modification de stagiaire
2. Le système lui propose l'interface de modification
3. L'administrateur entre les données puis clique sur le
bouton d'envoi
4. Le système contrôle les informations entrées puis
envoie un message sur l'état de la modification à
l'administrateur ou secrétaire.

Scénario alternatif

Scénario d'erreur

Post – condition Le système a modifié un stagiaire dans la base de


données.

38
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

III.13.4 Description contextuelle de Cas d'utilisation : « Rechercher »

Le tableau suivant présente la description textuelle du cas d'utilisation


Rechercher stagiaire, pour enrichir le diagramme de cas d'utilisation :
Tableau 6:Cas d'utilisation « Rechercher stagiaire »

Nom Recherche stagiaire


Résume Ce cas d'utilisation permet à l'administrateur ou secrétaire ainsi
que l’encadreur de rechercher un stagiaire dans la base de
données
Acteurs Administrateur, secrétaire, encadreur
primaires
Acteurs
secondaire
s
Préconditi - La base de données doit être renseignée
on - La base de données doit être mise à jour
Scenario 1. L'administrateur, secrétaire, encadreur clique sur le lien de
nominal de recherche stagiaire
2. Le système lui propose l'interface de recherche
3. L'administrateur choisit le critère de recherche puis entre les
données et tape sur la touche rechercher
4. le système fouille le résultat avec les données choisies
5. le système affiche le résultat de recherche
Scénario A1: pas de résultat
alternatif A1 commence au point 4 du scénario nominal
5- le système informe l'administrateur de l'indisponibilité du
résultat
le scénario reprend au point 2
Scénario
d'erreur
Post – La recherche a abouti à un résultat valable
condition désiré par l'administrateur.

39
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

III.13.5 Description contextuelle de Cas d'utilisation : « Imprimer »

Le tableau suivant présente la description textuelle du cas d'utilisation


Imprimer le rapport du stagiaire, pour enrichir le diagramme de cas
d'utilisation
Tableau 7:Cas d'utilisation « Imprimer »

Nom Recherche stagiaire


Résume Ce cas d'utilisation permet à l'administrateur de rechercher un
stagiaire dans la base de données
Acteurs Administrateur, secrétaire
primaires
Acteurs
secondaires
Précondition - La base de données doit être renseignée
- La base de données doit être mise à jour
Scenario 1. L'administrateur, secrétaire, clique sur le lien d’impression
nominal du stagiaire
2. Le système lui propose l'interface de recherche
3. L'administrateur choisit le critère de recherche puis entre
les données et tape sur la touche rechercher
4. le système fouille le résultat avec toutes les informations
du stagiaire
5. l’administrateur, ou le secrétaire clique sur le bouton
imprimer
6. Le système imprime les informations demandées
Scénario A1: pas de résultat
alternatif A1 commence au point 3 du scénario nominal
5- le système informe l'administrateur de l'indisponibilité du
résultat
le scénario reprend au point 2
Scénario
d'erreur
Post – Le rapport désire par l’administrateur est disponible.
condition

40
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

III.14 Diagramme de classe

Le diagramme de classes est un schéma utilisé en génie logiciel pour présenter


les classes et les interfaces des systèmes ainsi que leurs relations.
Il 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.
En effet, le diagramme de classes 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. Il est important de noter qu'un même objet
peut très bien intervenir dans la réalisation de plusieurs cas d'utilisation. Les
cas d'utilisation ne réalisent donc pas une partition des classes du diagramme
de classes. Un diagramme de classes n'est donc pas adapté
(sauf cas particulier) pour détailler, décomposer, ou illustrer la réalisation d'un
cas d'utilisation particulier.

41
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Figure 12:Diagramme de classe de notre système

42
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

III.15 Les diagrammes de séquences

Les diagrammes de séquences sont la représentation graphique des interactions


entre les acteurs et le système selon un ordre chronologique dans la formulation
Unified Modeling Language.

III.15.1.Diagramme de séquence d’authentification

Figure 13:Diagramme de séquence d’authentification

43
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

III.15.2 Diagramme de séquence de demande du stage

Figure 14:Diagramme de séquence de demande du stage

III.15.4 Diagramme de séquence de rechercher

Figure 15:Diagramme de séquence de rechercher

44
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

CHAP IV : MODELISATION MATHEMATIQUE AVEC ALGEBRE


RELATIONNELLE

IV.1 Définition

Un modèle mathématique est une traduction de la réalité pour pouvoir lui


appliquer les outils, les techniques et les théories mathématiques, puis
généralement, en sens inverse, la traduction des résultats mathématiques
obtenus en prédictions ou opérations dans le monde réel. [16][17]
Les modèles mathématiques représentent une représentation formalisée d'un
système en utilisant un langage abstrait, en utilisant des relations
mathématiques qui reflètent le processus de fonctionnement du système. Pour
compiler des modèles mathématiques, vous pouvez utiliser n'importe quel
moyen mathématique - calcul algébrique, différentiel, intégral, théorie des
ensembles, théorie des algorithmes, etc. En substance, toutes les
mathématiques sont créées pour la compilation et l'étude de modèles d'objets et
de processus. [16]

IV.2 Introduction

La représentation d'information sous forme relationnelle est intéressante car


les fondements mathématiques du relationnel, outre qu'ils permettent une
modélisation logique simple et puissante, fournissent également un ensemble
de concepts pour manipuler formellement l'information ainsi modélisée.
Ainsi une algèbre relationnelle, sous forme d'un ensemble d'opérations
formelles, permet d'exprimer des questions, ou requêtes, posées à une
représentation relationnelle, sous forme d'expressions algébriques.[9]
L'algèbre relationnelle est un support mathématique cohérent sur lequel
repose le modèle relationnel. L'objet de cette section est d'aborder l'algèbre
relationnelle dans le but de décrire les opérations qu'il est possible
d'appliquer sur des relations pour produire de nouvelles relations.
L'approche suivie est donc plus opérationnelle que mathématique.[10]
On peut distinguer trois familles d'opérateurs relationnels :
Les opérateurs unaires (Sélection, Projection) :ce sont les opérateurs les plus
simples, ils permettent de produire une nouvelle table à partir d'une autre table.

45
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Les opérateurs binaires ensemblistes (Union, Intersection Différence) :ces


opérateurs permettent de produire une nouvelle relation à partir de deux
relations de même degré et de même domaine.
Les opérateurs binaires ou n-aires (Produit cartésien, Jointure, Division). Ils
permettent de produire une nouvelle table à partir de deux ou plusieurs autres
tables.

IV.3 Modèle Relationnelle

IV.3.1 Historique et description du modèle

L’Algèbre Relationnelle a été inventée par E.Codd comme un ensemble


d’opérateurs pour manipuler les relations ou tables d’une base des données
relationnelle.
Nous pouvons faire un parallélisme avec l’arithmétique qui fournit les
opérations de base pour manipuler les nombres (addition, soustraction,
multiplication et division). Tout comme l’arithmétique, ces opérateurs
d’algèbre relationnelle prennent en entrée des relations et produisent en sortie
des relations ou tables.
L’algèbre relationnelle constitue le fondement théorique du langage standard
SQL qui est utilisée pour localiser des données dans la base répondant à un
critère. Notons tout de même une certaine nuance entre l’algèbre relationnelle
et le SQL. Le SQL est un langage déclaratif qui permet de caractériser le
résultat attendu sans dire comment l’obtenir. Par contre, l’algèbre
relationnelle est un langage procédural qui permet de décrire l’enchaînement
des opérateurs qui permettront d’obtenir un résultat.
C’est ainsi que tous les SGBD relationnels utilisent l’algèbre relationnelle
pour trouver des plans d’exécution en vue d’optimiser les requêtes. En effet,
pour une requête SQL donnée, il existe plusieurs requêtes algébriques
équivalentes (ie plusieurs requêtes en algèbre relationnelles qui retournent les
mêmes tuples ou résultats) obtenus en appliquant des règles de réécriture
appelées aussi lois algébriques. Tout dépend de la façon dont les opérations
qui composent le plan d’exécution sont organisées. [11]

46
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

IV.3.2 Justification du choix de ce modèle

Le choix du type de modèle est déterminé par les caractéristiques du système


à l'étude et les objectifs de la modélisation, puisque l'étude du modèle permet
d'obtenir des réponses à un groupe spécifique de questions. D'autres
informations peuvent nécessiter un type de modèle différent. Les modèles
mathématiques peuvent être classés en déterministes et probabilistes,
analytiques, numériques et simulation.

IV.3.3 Operateurs de l’algèbre Relationnelle

L'algèbre relationnelle est principalement composée par les cinq opérateurs


de base et les trois opérateurs additionnels suivants : [10][18]
Les opérateurs de base : Union, Différence, Projection, Restriction ou
sélection, Produit cartésien
Les opérateurs additionnels : Intersection, jointure, Division
Voici les huit opérations de base de l'algèbre relationnelle du Docteur CODD
et leur transcription en SQL.

47
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Tableau 8:Operateurs de l’algèbre Relationnelle

OPERATEUR
S SYNTAXE EN SQL

PROJECTION SELECT [ALL] [DISTINCT] liste d'attributs


FROM table

SELECTION SELECT liste d'attributs FROM table WHERE condition

JOINTURE SELECT liste d'attributs FROM table1 JOIN table2 ON


table1.attribut1=table2.attribut1 ...

DIVISION SELECT attributs FROM table1 JOIN table2


ON,table1_id=table2.id.table1.id WHERE condition

UNION SELECT liste d'attributs FROM table


UNION SELECT liste d'attributs FROM table

INTERSECTI SELECT liste d'attributs FROM table


ON INTERSECT SELECT liste d'attributs FROM table
on peut aussi utiliser une clause WHERE avec le NOT IN
SELECT liste d'attributs FROM table1 WHERE attribut1
NOT IN SELECT liste d'attributs FROM table2

DIFFERENCE SELECT liste d'attributs FROM table


EXCEPT SELECT liste d'attributs FROM table

PRODUIT SELECT * FROM table1 CROSS JOIN table2


CARTESIEN

48
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

1. Sélection ou Restriction

La restriction est une opération unaire (c'est à dire portant sur une seule
relation). La restriction de R1, étant donnée une condition C, produit une
relation R2 de même schéma que R1 et dont les tuples sont les tuples de R1
vérifiant la condition C : R = Restriction (R1, condition)
Elle est notée : 𝜎𝑝𝑟𝑒𝑑𝑖𝑐𝑎𝑡(𝑅)
2. Projection

La projection est une opération unaire (c'est à dire portant sur une seule
relation). La projection de R1 sur une partie de ses attributs {A1, A2, ...}
produit une relation R2 dont le schéma est restreint aux attributs mentionnés en
opérande, comportant les mêmes tuples que R1, et dont les doublons sont
éliminés.
R = Projection (R1, a1, a2, ...)
Elle est notée : 𝜋𝑎1, 𝑎2 … , 𝑎𝑘𝜋(𝑅)
3. Union

L'union de deux relations R1 et R2 de même schéma produit une relation R3


de même schéma constituée de l'ensemble des tuples appartenant à R1 et/ou à
R2.
R = Union (R1, R2)
Elle se note : 𝑅∪𝑇
4. Différence

La différence entre deux relations R1 et R2 de même schéma produit une


relation R3 de même schéma constituée de l'ensemble des tuples de R1
n'appartenant pas à R2. Notons que la différence entre R1 et R2 n'est pas égale
à la différence entre R2 et R1.
R = Différence (R1, R2)
Elle se note : 𝑅−𝑇
5. Produit cartésien

Le produit cartésien est une opération binaire (c'est à dire portant sur deux
relations). Le produit de R1 par R2 (équivalent au produit de R2 par R1) produit
une relation R3 ayant pour schéma la juxtaposition de ceux des relations R1 et

49
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

R2 et pour tuples l'ensemble des combinaisons possibles entre les tuples de R1


et ceux de R2.
R = Produit (R1, R2)
Elle se note : 𝑅1 × 𝑅2
6. Renommage

Le renommage est une opération qui permet de redéfinir les noms des attributs
d'une relation R
Syntaxe :
R = Renommage (R1, a1, a2, ...)
Elle est notée : ∝ [𝑛𝑜𝑚_𝑎𝑡𝑡𝑟1: 𝑛𝑜𝑢𝑣𝑒𝑎𝑢_𝑛𝑜𝑚 𝑝𝑜𝑢𝑟 𝑎𝑡𝑡𝑟1, … ]𝑅
7. Intersection
L'intersection de deux relations R1 et R2 de même schéma produit une relation
R3 de même schéma constituée de l'ensemble des tuples appartenant à la fois à
R1 et à R2. Notons que l'intersection n'est pas une opération de base, car elle
est équivalente à deux opérations de différence successives.
R = Intersection (R1, R2)
Elle se note : 𝑅∩𝑆
8. Jointure
La jointure est une opération binaire (c'est à dire portant sur deux relations).
La jointure de R1 et R2, étant donné une condition C portant sur des attributs
de R1 et de R2, de même domaine, produit une relation R3 ayant pour schéma
la juxtaposition de ceux des relations R1 et R2 et pour tuples l'ensemble de
ceux obtenus par concaténation des tuples de R1 et de R2, et qui vérifient la
condition C.
R = Jointure (R1, R2, condition) ;
Elle est notee : 𝑅 ⋈ 𝑆|𝜃
 R et S sont deux relations
 θ est une condition entre les attributs de R et S
La jointure est l'opération qui permet de rassembler les informations séparées
entre plusieurs tables et référencées par des clés étrangères.

50
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

La theta-jointure produit une relation qui contient tous les tuples qui satisfont
la condition θ. La condition θ est une expression booléenne qui compare les
valeurs des attributs de R et S.
Exemple :𝑡𝑏𝑙_𝑢𝑠𝑒𝑟 ⋈ 𝑡𝑏𝑙_𝑠𝑒𝑟𝑣𝑖𝑐𝑒|𝑡𝑏_𝑢𝑠𝑒𝑟. 𝑢𝑠𝑒𝑟_𝑖𝑑 = 𝑡𝑏𝑙_𝑠𝑒𝑟𝑣𝑖𝑐𝑒. 𝑢𝑠𝑒𝑟_𝑖𝑑
9. Equi-jointure
Une équi-jointure est une jointure dont la condition est un test d'égalité.
𝑅 =⋈ (𝑅1, 𝑅2, 𝑐𝑜𝑛𝑑𝑖𝑡𝑖𝑜𝑛)
𝑅 = 𝑅1 ⋈ (𝑐𝑜𝑛𝑑𝑖𝑡𝑖𝑜𝑛)𝑅2
10. Jointure naturelle
La jointure naturelle entre R1 et R2 est une jointure pour laquelle la condition
est l'égalité entre les attributs de même nom de R1 et de R2. Il est donc inutile
de spécifier la condition dans une jointure naturelle, elle reste toujours
implicite.
R = Jointure Naturelle (R1, R2)
Syntaxes alternatives :
𝑅 =⋈ (𝑅1, 𝑅2)
𝑅 = 𝑅1 ⋈ 𝑅2
11. Division
La division est une opération binaire (c'est à dire portant sur deux relations).
La division de RD par Rd a pour résultat RQ tel que RQ comporte le plus grand
ensemble possible de tuples qui concaténés à ceux de Rd donnent toujours un
tuple de RD.
Fondamental :
𝑅𝑄 = 𝑅𝐷 ÷ 𝑅𝐷 Si et seulement si :
𝑅𝑑 × 𝑅𝑄 ⊆ 𝑑𝑎𝑛𝑠 𝑅𝐷
∄ RQ' tel que 𝑅𝑄 ⊂ 𝑅𝑄′et 𝑅𝑑 × 𝑅𝑄′ ⊆ 𝑑𝑎𝑛𝑠 𝑅𝐷
Syntaxe
𝑅𝑄 = 𝐷𝑖𝑣𝑖𝑠𝑖𝑜𝑛(𝑅𝐷, 𝑅𝑑)

51
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

IV.3.4 Fonctions d’agrégat en algèbre relationnelle

En algèbre relationnelle, les fonctions d'agrégat sont des fonctions qui


effectuent un calcul sur un ensemble de valeurs et renvoient une seule valeur.
Les fonctions d'agrégat courantes sont :
SUM : calcule la somme des valeurs d'une colonne
AVG : calcule la moyenne des valeurs d'une colonne
COUNT : compte le nombre de lignes dans une table ou le nombre de valeurs
non nulles dans une colonne
MAX : renvoie la valeur maximale d'une colonne
MIN : renvoie la valeur minimale d'une colonne
Ces fonctions sont souvent utilisées avec la clause GROUP BY pour regrouper
les données en fonction de certaines colonnes et calculer les agrégats pour
chaque groupe.

IV.3.5 Traduction d’opérateurs de l’algèbre relationnels en SQL

Le but pour cette partie était de choisir une forme très simpliste de la requête
SQL en l’analysant sous l’angle algèbre relationnelle.
Nous pouvons présenter d’autres requêtes SQL avec leurs expressions
équivalentes en algèbre relationnel de la manière suivante :
– Sélection

1. affichage de tous les stagiaires qui ont une note inferieur à 80%
SELECT * FROM `tbl_affectation` WHERE cotation <80;
𝜎 𝑐𝑜𝑡𝑎𝑡𝑖𝑜𝑛 < 80(𝑡𝑏𝑙_𝑎𝑓𝑓𝑒𝑐𝑡𝑎𝑡𝑖𝑜𝑛)
2. affichage de tous les utilisateurs.
SELECT*FROM tbl_user;
𝜋 ∗ (𝑡𝑏𝑙_𝑢𝑠𝑒𝑟)

52
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

– Projection

Exemple : Affichage du nom des stagiaire ,leurs encadreurs,la date


d’affectation ainsi que la note obtenue.
SELECT tbl_inscription.nom,tbl_user.username,tbl_affectation.dateaffection,
tbl_affectation.cotation FROM tbl_user JOIN tbl_affectation ON
tbl_user.user_id=tbl_affectation.user_id JOIN tbl_inscription ON
tbl_inscription.idinscription=tbl_affectation.idstagiaire ;
𝜋nom, username, dateaffection, cotation(σuser_id
= user_id(tbl_user JOIN tbl_affectation) JOIN tbl_inscription ON tbl_affectation. idstagi
= tbl_inscription. idinscription)
– Union

Exemple : Affichage du nom, prénom des encadreurs dont les grades


est ‘docteur’ OU ‘Master ‘
SELECT * FROM tbl_user UNION SELECT * FROM tbl_inscription
𝜋 ∗ (𝑡𝑏𝑙_𝑢𝑠𝑒𝑟 ∪ 𝑡𝑏𝑙_𝑖𝑛𝑠𝑐𝑟𝑖𝑝𝑡𝑖𝑜𝑛)
Ou encore : tbl_user ∪ 𝑡𝑏𝑙_𝑖𝑛𝑠𝑐𝑟𝑖𝑝𝑡𝑖𝑜𝑛
– Intersection

Exemple : Affichage les services qui ont les memes nons ques les
département :
SQL:SELECT DISTINCT nomservice FROM tbl_service WHERE
nomservice IN (SELECT nomdepartement FROM tbl_departement
𝜋nomservice (σnomservice = nomdepartement(tbl_departement)
⋈ tbl_service
 Différence
Si les deux tables n'ont pas la même structure, vous pouvez utiliser l'opérateur
EXCEPT. L'opérateur EXCEPT fonctionne de la même manière que l'opérateur
MINUS, mais il prend en charge les tables qui n'ont pas la même structure.
Exemple : Affichage du nom, prénom, grade des utilisateurs dont le niveau
n’est pas bachelier
SELECT nom, prenom, telephone, nomgrade FROM
tbl_inscription,tbl_grade EXCEPT WHERE nomgrade = 'bachelier';

53
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Ou, SELECT nom, prenom ,telephone, nomgrade FROM


tbl_inscription,tbl_grade MINUS WHERE nomgrade != 'bachelier'
𝜋𝑛𝑜𝑚, 𝑝𝑟𝑒𝑛𝑜𝑚, 𝑡𝑒𝑙𝑒𝑝ℎ𝑜𝑛𝑒, 𝑛𝑜𝑚𝑔𝑟𝑎𝑑𝑒(𝑡𝑏𝑙_𝑖𝑛𝑠𝑐𝑟𝑖𝑝𝑡𝑖𝑜𝑛) −
𝜋𝑛𝑜𝑚, 𝑝𝑟𝑒𝑛𝑜𝑚, 𝑡𝑒𝑙𝑒𝑝ℎ𝑜𝑛𝑒, 𝑛𝑜𝑚𝑔𝑟𝑎𝑑𝑒(𝜎𝑛𝑜𝑚𝑔𝑟𝑎𝑑𝑒 ! =
𝑏𝑎𝑐ℎ𝑒𝑙𝑖𝑒𝑟(𝑡𝑏𝑙_𝑔𝑟𝑎𝑑𝑒));
– Produit Cartésien

Le produit cartésien de deux tables est l'ensemble de toutes les combinaisons


possibles de lignes des deux tables. Pour calculer le produit cartésien de deux
tables en SQL, vous pouvez utiliser l'opérateur : cross join
Exemple : 1 Affichage du produit cartésien entre la table demande et
la table affectation.
SELECT *FROM tbl_demande CROSS JOIN tbl_affectation;
R=tbl_demande × tbl_affectation
2 Affichage du produit cartésien entre la table user et la table presence
SELECT *FROM tbl_user CROSS JOIN tbl_presence
– Jointure

Exemple : Affichage le nom, prénom, téléphone, mailrel et la note


obtenue des stagiaires.
SELECT nom, prenom, telephone, mailreel, cotation FROM `tbl_inscription`
JOIN`tbl_affectation`ON`tbl_inscription`.`idinscription`=`tbl_affectation`.`u
ser_id`and nom is not null
δnom, prenom, telephone, mailreel(tbl_inscription)
⋈ cotisation(affectation)
– Renommage

Exenple : Renommage de l’attribut ’username’ de la table tbl_user en


nom_utilisateur.
ALTER TABLE tbl_user RENAME COLUMN username TO nom_utilisateur;
∝ [user_name ÷ nom_utilisateur](tbl_user)

54
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

– Division

Si vous souhaitez diviser uniquement les enregistrements de la table


tbl_inscriptionqui ont une correspondance dans la table tbl_demande, vous
pouvez utiliser la clause WHERE pour préciser la condition de
correspondance.[10]
SELECT nom, prénom, téléphone FROM tbl_inscription JOIN tbl_demande
ON tbl_inscription.idinscription=tbl_demande.idstagiaire WHERE
nometablisseemnt = 'Universite du burundi'
R = tbl_inscription ÷ 𝑡𝑏𝑙_𝑑𝑒𝑚𝑎𝑛𝑑𝑒

IV.4 Optimisation des requêtes SQL

Pour optimiser les requêtes SQL, on peut suivre certaines bonnes pratiques et
utiliser des techniques spécifiques pour améliorer les performances de vos
requêtes. Voici quelques conseils d'optimisation et des exemples : [5]
1. Utiliser des index :
Utilisez des index : Les index permettent d'accélérer les requêtes en fournissant
un accès plus rapide aux données.
Les index accélèrent les recherches dans une table en créant une copie triée des
données, permettant ainsi d'accéder rapidement aux enregistrements. Il est
essentiel d'indexer les colonnes utilisées fréquemment dans les clauses
WHERE, JOIN et ORDER BY. [6][20]

Exemple :
Utilisez la INDEX()fonction pour créer un index sur les colonnes nom
et prénom
CREATE INDEX idx_nom_prenom ON tbl_inscription (nom, prénom);
2. Éviter les étoiles (*) dans la clause SELECT : Spécifiez explicitement les
colonnes dont vous avez besoin pour éviter de récupérer des données inutiles.

55
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Exemple :

sql non optimisé

SELECT * FROM tbl_inscription WHERE nom = 'methode';

Sql optimisé

SELECT nom,prenom,telephone,mailreel FROM tbl_inscription WHERE


nom= 'methode';

3. Utiliser des jointures appropriées : Utilisez les types de jointures


appropriés (INNER JOIN, LEFT JOIN, RIGHT JOIN, etc.) pour obtenir
uniquement les données nécessaires.
Exemple :Jointure interne pour récupérer les noms des utilisateurs et leurs
grades
SELECT username, nomgrade FROM tbl_user INNER JOIN tbl_grade ON
tbl_grade.idgrade=tbl_grade.user_id;
4. Limiter les résultats : Utilisez la clause LIMIT pour récupérer uniquement
un nombre spécifique de résultats, surtout lorsque vous n'avez besoin que de
quelques-uns.
Exemple : Récupérer les 5 premiers stagiaires
SELECT * FROM tbl_inscription LIMIT 10;
On peut aussi optimiser la requête ci-dessus en éliminant l’étoile (*) pour bien
déterminer les données qu’on veut récupérer pour minimiser le temps
d’exécution.
SELECT nom, prenom, telephone, mailreel FROM tbl_inscription LIMIT 10;
5. Éviter les sous-requêtes coûteuses (imbriquée): Les sous-requêtes
peuvent être lentes, essayez de les remplacer par des jointures ou des requêtes
indépendantes si possible.

56
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Exemple : affichage des services qui ont les mêmes noms que les départements

sql non optimisé

SQL:SELECT DISTINCT nomservice FROM tbl_service WHERE


nomservice IN (SELECT nomdepartement FROM tbl_departement

Sql optimisé

SELECT DISTINCT nomservice FROM tbl_service JOIN tbl_departement


ON tbl_service.nomservice = tbl_departement.nomdepartement

6. Éviter les fonctions dans les clauses WHERE : L'utilisation de fonctions


dans les clauses WHERE peut empêcher l'utilisation d'index et ralentir la
requête.
Exemple: affichage des stagiaires qui ont eu la note inférieures ou égales à 80

sql non optimisé

SELECT * FROM tbl_affectation WHERE cotation<=80 ;

Sql optimisé

SELECT * FROM tbl_affectation WHERE cotation<=80 AND cotation


>=30

7. Maintenance régulière de la base de données : Assurez-vous de maintenir


régulièrement la base de données en effectuant des tâches telles que la mise à
jour des statistiques, la réorganisation des index, la suppression des données
inutiles, etc. Cela contribue à maintenir de bonnes performances.

IV.5 Règles d'optimisation pour les requêtes SQL

Lorsque l'optimisation de requête SQL survient, toutes les règles d'optimisation


sont appliquées à la condition dans la requête. Les prédicats sont ensuite
réorganisés.

57
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

L'optimisation AND et OR, et la réorganisation des prédicats sont appliquées


aux requêtes SQL de la manière suivante : optimisation AND , optimisation
OR, Réorganisation des prédicats.

IV.5.1 Optimisation AND

Si une clause WHERE se compose de plusieurs prédicats connectés par


l'opérateur AND, l'optimisation survient uniquement si la même colonne et le
même opérateur de comparaison sont utilisés dans chaque prédicat et que
l'opérateur de comparaison est LIKE ou égal à (=).

Exemple: affichage du stagiaire dont le nom est methode et le prenom est


irambona
Requête SQL d'origine :
SELECT * FROM tbl_inscription where nom like 'methode' and prenom like
'irambona';
Requête optimisée :
SELECT * FROM tbl_inscription
WHERE CONCAT(nom, ' ', prenom) LIKE '%methode irambona%';

IV.5.2 Optimisation OR

Si une clause WHERE se compose de plusieurs prédicats connectés par


l'opérateur OR, l'optimisation survient uniquement si la même colonne et le
même opérateur de comparaison sont utilisés dans chaque prédicat et que
l'opérateur de comparaison est LIKE ou égal à (=).
Dans cette clause WHERE, la variable opérateur est LIKE ou = uniquement.
Exemple
Requête SQL d'origine :
SELECT * FROM tbl_inscription where nom like 'methode' or prenom like
'irambona';
Requête optimisée :
SELECT *FROM tbl_inscription WHERE nom IN ('methode', 'irambona');

58
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

IV.5.3 Réorganisation des prédicats

Les prédicats servent très souvent à spécifier quelles lignes sont incluses dans
une sélection de données, via une clause Where dans une instruction SQL
Select, Update, ou Delete.
Les prédicats sont utilisés dans la condition de recherche des clauses WHERE
et HAVING, dans les conditions de jointure des clauses FROM ainsi que dans
d'autres constructions où une valeur booléenne est nécessaire.
L'optimiseur réorganise l'évaluation des prédicats dans une clause WHERE
selon le coût d'exécution qui leur est affecté. Si le premier prédicat d'une
optimisation OR est défini sur TRUE, les prédicats suivants n'ont pas besoin
d'être définis. De même, dans une optimisation AND, si le premier prédicat est
défini sur FALSE, les prédicats suivants n'ont pas besoin d'être définis. [5]
Le coût d'exécution affecté dans l'ordre croissant est le suivant :
1. True/False
2. Comparaison d'entier
3. Comparaison de chaîne
4. Entier ANY/ALL/IN
5. Chaîne ANY/ALL/IN
6. Sous-requête : il s'agit d'une instruction SELECT imbriquée
Exemple d’optimisation AND (a AND b AND c)

Requête SQL d'origine :

SELECT nom, prenom, nomservice,cotation FROM tbl_inscription JOIN


tbl_affectation ON tbl_inscription.idinscription=tbl_affectation.idstagiaire JOIN
tbl_service ON tbl_service.iddeservice=tbl_affectation.idservice WHERE cotation IN
(15,18,45) AND nomservice IN ('Maintenance','reseau','gestion') AND cotation<20;

Requette reorganisee

SELECT nom, prenom, nomservice,cotation FROM tbl_inscription JOIN


tbl_affectation ON tbl_inscription.idinscription=tbl_affectation.idstagiaire JOIN
tbl_service ON tbl_service.iddeservice=tbl_affectation.idservice WHERE cotation<20,
AND cotation IN (15,18,45) AND nomservice IN ('Maintenance','reseau','gestion') ;

59
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Exemple d’optimisation OR (a OR b OR c)

Requête SQL d'origine :

SELECT nom, prenom, nomservice,cotation FROM tbl_inscription JOIN


tbl_affectation ON tbl_inscription.idinscription=tbl_affectation.idstagiaire JOIN
tbl_service ON tbl_service.iddeservice=tbl_affectation.idservice WHERE
cotation IN (15,18,45) OR nomservice IN ('Maintenance','reseau','gestion') OR
cotation<20;

Requête réorganisée optimisée :

SELECT nom, prenom, nomservice,cotation FROM tbl_inscription JOIN


tbl_affectation ON tbl_inscription.idinscription=tbl_affectation.idstagiaire JOIN
tbl_service ON tbl_service.iddeservice=tbl_affectation.idservice WHERE
cotation<20, OR cotation IN (15,18,45) OR nomservice IN
('Maintenance','reseau','gestion') ;

Ces exemples illustrent quelques techniques courantes pour optimiser les


requêtes SQL. N'oubliez pas que l'optimisation des requêtes peut varier en
fonction de la base de données que vous utilisez et de la complexité de vos
données. L'utilisation d'outils d'analyse de requêtes et la compréhension des
plans d'exécution peuvent également vous aider à identifier les points
d'optimisation. Parmi ces outils on peut parler par exemple :
EverSQL est un optimiseur de requêtes qui améliore les performances du
serveur de base de données en accélérant l’exécution des requêtes.
Crapaud SQL Optimizer pour oracle (Toad SQL Optimizer) prend en charge
les bases de données Oracle.
SQL Query Tuner est un module complémentaire pour SQL Diagnostic
Manager.
SentryOne est un outil de surveillance des performances de la base de données
qui se concentre sur le dépannage des problèmes de performances.
Redgate SQL Monitor est un outil d’optimisation des requêtes qui propose
des alertes personnalisables, des rapports personnalisés et un tableau de bord
pour surveiller les performances SQL.

60
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Idera DB Optimizer est un optimiseur de base de données compatible avec


SQL Server, Oracle, DB2 et Sybase, et il est excellent pour les entreprises de
taille moyenne.
Microsoft SMSS est un outil de base de données relationnelle gratuit pour
Microsoft SQL Server.
AppOptics APM est un outil de surveillance des performances basé sur le
cloud qui propose des utilitaires d’optimisation de base de données.
AppOptics APM se concentre sur les systèmes de gestion de bases de données
MySQL, Microsoft SQL Server, Oracle, Postgres et Apache.

Conclusion

Toutes les fonctionnalités du système se traduisent par une sorte des requêtes à
construire. Dans ce chapitre nous avons présenté les opérateurs de l’algèbre
relationnelle et montrer son importance dans la construction des requêtes SQL.
Le code SQL est traduit dans le code relationnel avec son exécution dans ces
environnements. La plupart des solutions que nous préconisons dans ce présent
travail consiste à l’élaboration des requêtes SQL. C’est pourquoi, il nous a été
utile de les construire en utilisant l’algèbre relationnelle. Ainsi, Nous avions
présenté dans ce chapitre les opérateurs de l’algèbre relationnelle,
l’optimisation des requêtes SQL et enfin la manière dont nous avions
réalisé nos propres requêtes en vue de minimiser le temps d’exécution et
d’obtenir les résultats dans un moment réduit.

61
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

CHAPITRE V: IMPLEMENTATION DU SYSTEME DE GESTION DES


STAGIAIRES

V.1 présentation de l’application

L’application que nous avons mis en place a pour objectif de gérer les
demandes des stages en linge et le suivi des stagiaires dans le centre technique
de Cibitoke; elle permet aussi d’approuver ou de refuser les demande si c’est
le cas du profil non demande ,et d’attribuer l’encadreur aux stagiaires selon les
services auxquels sont affectés .

V.2 Les Fonctionnalités de l’application

Notre application de gestion des stagiaires a plusieurs interfaces mais nous


pouvons présentes les principaux :

V.2.1 L’interface d’Authentification pour des utilisateurs du système

Cette interface permet à l’utilisateur de saisir son adresse mail et mot de passe
correspondant à celui qui se trouve dans la base de données pour qu’il puisse
recevoir l’OTP générer aléatoirement par le système.

Figure 16:page d'Authentification pour les utilisateurs du système

62
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

V.2.2 L’interface d’Authentification pour l’OTP

Cette interface permet à l’utilisateur d’entrer le code envoyer sur son mail pour
accéder à la page d’accueil

Figure 17: Interface pour entre le code OTP

V.2.3 Formulaire d’inscription du stagiaire

Ce formulaire permet aux stagiaires de s’inscrire avant la demande le stage.

Figure 18: Formulaire d'inscription du stagiaire

63
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

V.2.4 L’interface de demande du stage

Ce formulaire permet aux stagiaires de saisir ses informations et d’envoyer la


demande.

Figure 19: Interface de demande du stage

V.2.5 L’interface de résultat de demande du stage

Cette interface permet aux stagiaires de consulter le résultat de la demande,


elle contient le message d’approbation ou de refus envoyé par l’administrateur
du système. Si la demande est approuvée le message doit contenir la date de
début et de fin du stage.
Si la demande n’est pas encore traitée le résultat se présente ainsi :

Figure 20:Interface de résultat si la demande n'est pas encore traite

64
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

Si la demande est acceptée voici le résultat :

Figure 21: Interface de résultat si la demande n'est acceptée

V.2.6 La page d’accueil pour l’administrateur du système

Cette page montre l’espace administrateur avec toutes les fonctionnalités du


système

Figure 22: La page d'accueil pour l'admin

65
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

V.2.7 Le formulaire d’ajout des nouveaux utilisateurs

Ce formulaire permet à l’administrateur du système tout d’abord d’enregistrer


les informations du nouvel utilisateur dans la base des données avant de se
connecter au système

Figure 23: formulaire d'ajout du nouvel utilisateur

66
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

V.2.8 Liste de demandes de stage

Cette liste permet à l’administrateur du système de consulter les demandes


envoyées par les stagiaires ; Soit il peut approuver ou refuser la demande

Figure 24: Liste de demandes de stage

V.2.9 Formulaire pour faire la présence

Ce formulaire permet à l’utilisateur de sélectionner le nom du stagiaire et de


marquer l’heure d’arrivée

Figure 25: formulaire pour faire la présence du stagiaire

67
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

V.2.10 Liste de présence des stagiaires

La liste de présence des stagiaire montre les heures que le stagiaires ont
travaillés dès l’heure d’arrivée jusqu’ à l’heure de départ.

Figure 26: Liste de présence des stagiaires

V.2.11 Tableau de marque de présences des stagiaires

Ce tableau permet de comparer le nombre de présence et le nombre d’absence


pour prendre une décision, si le nombre d’absence est supérieur ou égal à 5 le
système va suspendre le stagiaire pour se justifier à l’administrateur. Apres
avoir se justifier l’administrateur peut lui autorise de continuer le stage.

Figure 27: Liste pour marquer la présence

68
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

V.2.12 Liste d’affectation des stagiaires à un encadreur selon le service

Chaque stagiaire doit être affecté dans un service et à un encadreur

Figure 28 : Affectation dans un service et cotation du stagiaire

V.2.13 Liste de désaffectation d’un stagiaire dans un service

L’utilisateur doit désaffecter un stagiaire dans un service pour réaffecter dans


un autre service, et le stagiaire doit être coté dans chaque service.

Figure 29: Désaffectation du stagiaire dans le service pour réaffecter dans


l'autre service

69
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

V.2.14 Liste des stagiaires qui ont terminés la période de stage

Cette liste contienne des stagiaires qui ont terminés leur période de stage

Figure 30: Liste des stagiaires qui ont terminés le stage (archivés)

70
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

V.2.15 Page d’attribution des droits d’axes aux données

Cette page permet à l’administrateur du système d’attribuer les droits d’accès


aux données aux autres utilisateurs.

Figure 31: Tableau de distribution des droits et permission

71
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

V.2.16 Fiche du stagiaire à imprimer

Figure 32: Fiche du stagiaire

72
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

V.2.17 attestation de service rendue

Figure 33: attestation de service rendue

73
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

CONCLUSION GENERALE ET RECOMMANDATIONS

Conclusion générale

Au terme de notre travail, nous avons apporté une solution informatique aux
problèmes de gestion des stagiaires au sein du CNTC.
Nous avons mis en place une application fiable et apte à atteindre les objectifs
fixés .L'application va permettre de réaliser les tâches suivantes : Assurer une
authentification avec mode OTP ;Attribuer les droits d’accès aux données à
chaque utilisateur du système ;Sécuriser les donnes contre les accès non
autorisé ;Réduire la multiplication des supports papier ;Automatiser
l’acquisition des demandes des stages ;la recherche automatique des
informations ; l’attribution en ligne des stages ; générer et l’envoyer des
attestations à l’encadreur et aux stagiaires ; stocker des données ;Archiver
électroniquement des données relatives aux stagiaires. De ce fait nous pouvons
dire que les objectifs de notre projet ont été atteints.

Recommandations

Nous suggérons a la CNTC d’utilise notre application de gestion des stagiaires


afin d'améliorer le suivi de ces derniers.
Nous suggérons aussi aux futurs chercheurs d’améliorer le système en mettant
les fonctions manquantes

74
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

REFERENCES BIBLIOGRAPHIQUES ET WEBOGRAPHIQUES

[1] https://www.lucidchart.com/pages/fr/langage-uml consulte le 13/06/2023


[2] https://ult.bi/fr/chapitre-ii-presentation-du-langage-de-modelisation-uml
consulte le 13/06/2023
[3].https://laurent-audibert.developpez.com/Cours-UML/?page=introduction-
modelisation-objet#L1-2-4 consulte le 13/06/2023
[4]https://www.memoireonline.com/12/21/12591/Mise-en-place-d-une-
application-de-gestion-d-affection-des-stagiaires-dans-une-institution-
tatiq.html consulte le13/06/2023
[5]https://www.ibm.com/docs/fr/netcoolomnibus/7.4?topic=optimizations-
optimization-rules-sql-queries#omn_adm_per_optimizationrules__reorder
consulte le 14/07/2023
[6].https://use-the-index-luke.com/fr/sql/plans-dexecution/sql-
server/predicats-acces-filtre consulte le14/07/2023
[7] https://www.trustbuilder.com/fr/mfa-otp-one-time-password consulte le
06/09/2023
[8] https://webusers.i3s.unice.fr/~edemaria/cours/c3.pdf
[9] https://librecours.net/module/bdd/alg1/relUC071.xhtml consulte le
28/08/2023
[10].https://sgbd.developpez.com/tutoriels/cours-complet-bdd-
sql/?page=algebre-relationnelle consulte le 28/08/2023
[11] BORIBO KIKUNDA Philippe, Mise en place d’une application
informatique sécurisée pour la gestion du système pénitentiaire de la République
Démocratique duCongo, université du Burundi : 2019-2020
[12] Christine Solnon : Modélisation UML ,INSA de Lyon - 3IF 2013 – 2014
[13].https://www.trustbuilder.com/fr/mfa-otp-one-time-password consulte le
29/08/2023
[14] https://perso.liris.cnrs.fr/christine.solnon/coursUML.pdf consulte le
06/09/2023
[15] https://home.mis.u-picardie.fr/~furst/docs/1-UML_Besoins.pdf consulte
le 29/08/2023
[16]https://www.techno-science.net/definition/2880.html,consulte
le31/08/2023

75
IRAMBONA Méthode A/A 2022-2023
Mise en place d’une application web avec mode d’authentification « One Time PasseWord » de
gestion des stagiaires.

[17]https://www.techno-science.net/definition/2880.html,consulte
le31/08/2023
[18] MOHAMAD.NEMICHE,Algèbre Relationnelle, Faculté Polydisciplinaire
de Ouarzazate Filière: Informatique et Gestion d’Entreprises 2012-2013,
consulte le 03/09/2023
[19] Elisabetta De Maria, Cours de Base de Données ´ Cours n.3 Algèbre
relationnelle ` L2 Informatique - Portail Sciences et Technologies, DS4H et
Laboratoire I3S, Université Côte d’Azur, CNRS 2022-2023, consulte le
03/09/2023
[20] Jeffreya nd Jennifer Widom, A First Course_in_Database_Systems_3ed_

ANNEXES

76
IRAMBONA Méthode A/A 2022-2023

Vous aimerez peut-être aussi