Vous êtes sur la page 1sur 62

REPUBLIQUE DU SENEGAL

Un Peuple - Un But - Une Foi


Ministère de l’Enseignement Supérieur, de la Recherche et de l’innovation
Direction de l’Enseignement Supérieur Privé
Institut Supérieur d’Informatique

Mémoire de fin de Cycle pour l’obtention du diplôme de Licence


Mention : Informatique
Spécialité : informatique et gestion

Conception et implémentation d’une application web


de l'état civil d’une mairie: cas de FANAYE

Présenté et soutenu par : Sous la direction de :

M. Aboubacry KANE M. Mallé NDIAYE


Spécialité : Senior Développeur

Année Académique : 2021 -2022


AVANT-PROPOS
Ce mémoire rentre dans le cadre de l’obtention du diplôme de Licence en Informatique
Appliqué à la Gestion des Entreprise. Il étudiera la Conception et implémentation d’une
application web de l'état civil d’une mairie: Cas de la mairie de FANAYE. L’idée de ce
mémoire de recherche est venue du constat que la majorité des citoyens ne sont pas déclarés ce
qui menace la pleine jouissance des droits humains et surtout accroît le taux d’analphabétisme.

En effet, depuis vendredi 07 Mai 2021 à Dakar, le programme de l’élaboration de la


stratégie nationale de l’état civil du Sénégal à été lancé. Un projet présidé par M. Oumar
GUEYE, sous la présence de Mme Irene Mingasson et M. Aliou Sall. Un programme de cette
même envergure a été lancé en 2014 dans la mairie de Fanaye sans succès.

Cette étude se veut être une solution dans plusieurs secteurs clés à savoir la
démographie, l’insécurité, l’analphabétisme etc. Ainsi, les solutions proposées peuvent
permettre à tous citoyens de bénéficier des actes de naissance, de mariage et de décès;
ce qui contribue à la bonne gestion de l’état civil de la mairie.

Des difficultés n’ont pas manqué. Les principales difficultés rencontrées sont
l’insuffisance de capacité technique et le manque d’expertise en matière de compilation
et d’analyse des statistiques de l’état civil. Ce qui nous a obligé à nous contenter des
agents et officiers d’état civil ainsi que les technologies disponibles.

Ce document constitue pour notre pays un prototype de l’automatisation des faits de


l’état civil d’une mairie ; c’est une des raisons pour laquelle nous sollicitons de la part du jury
beaucoup d’indulgence et de tolérance quant à son évaluation.

DEDICACE

Je dédie ce travail :

A mon père, Thierno Ahmadou Moctar KANE, en vous je vois un père dévoué à sa famille.
Votre présence en toute circonstance m’a plusieurs fois rappelé le sens de la responsabilité.

4
Merci pour tout !

A ma mère, Fatimata SALL, en vous je vois la maman parfaite, toujours prête à se sacrifier
pour le bonheur de ses enfants.

Merci pour tout !

A tous les membres de la famille, mes amis et mes camarades de classe qui m’ont toujours
soutenu.

Que Dieu vous bénisse.

REMERCIEMENTS

Au terme de ce travail, je tiens à exprimer mes vifs remerciements à :

✔ Mon encadreur, Monsieur Mallé NDIAYE, pour ses conseils judicieux, précieux et ses
directives pertinentes pour sa disponibilité et surtout pour la direction de ce mémoire.
Je lui témoigne de ma sincère gratitude tout en saluant la compétence, la diligence et la
patience dont il a toujours fait preuve pendant ce long processus.
✔ Mon maître de stage, M. Sérigne MBACKÉ pour son expertise, sa disponibilité et les
conseils précieux qu’il m’a prodigués dans le cadre professionnel.
5
✔ Tout le corps professoral d’ISI, pour avoir contribué à ma formation.

RESUME

La mairie de la commune de Fanaye utilise depuis très longtemps des documents écrits pour
la gestion de l’enregistrement des actes d’état civil. Ces documents ne répondent pas entièrement
aux attentes des utilisateurs, ainsi un logiciel de gestion des actes d'état civil a été conçu par AIMF,
installé et exploité au centre principal de Dakar, dans 14 centres secondaires, à Kaolack, Thiès,
Saint-Louis et en 2005 à Ziguinchor.

Mais, ce logiciel présente des limites notamment dans la manipulation que dans l’archivage.
En 2007, la société ATI qui a conçu le logiciel n’existe plus et des problèmes de mises à jour et de
complétude des fonctionnalités ont commencé à se poser au niveau de l’application. Il y a des
difficultés pour adapter le logiciel par rapport à la déclaration de l’acte III de la décentralisation et
l’acceptation du registre électronique par le code de la famille.

6
Mais aussi par rapport à la complétude des fonctionnalités et des documents imprimables. Et
enfin, la partie du logiciel qui était censé gérer la gestion des statistiques n’est pas fonctionnelle, de
même que la gestion de l’archivage.

Dans ce mémoire, nous proposons ainsi une nouvelle application dans le but de remplacer
l’ancienne. Pour ce faire, des études ont été menées ainsi que des séries d’entretiens avec les
utilisateurs (Officier état-civil, Agents d’état civil, administrateur). Nous avons aussi opté pour la
méthode (ou processus) unifiée 2TUP pour le processus de développement de notre application. Une
spécification des besoins nous a permis de formaliser les données avec UML. En ce qui concerne la
structuration et le stockage des données, nous avons utilisé le Système de Gestion de Bases de
Données Relationnelles (SGBDR) MySQL. L’implémentation en Spring Boot (JAVA) nous a
permis de mettre en place une application souple, sécurisée, facile à utiliser et permettant de gérer
parfaitement la gestion des actes d’état-civil dans la commune de Ziguinchor.

ABSTRACT
In order to obtain the diploma of bachelor (B.S) in Informatique and Management at ISI
(Computer Science Institute of Higher Learning), I have designed an end-of-training project in
order to complete my theoretical and practical undergraduate training. Thus, I have
entertained the idea to design and implement a Web application, which will contribute to the
efficiency and management quality of the school named Al Hidaaya for a better performance
and a better competitivity in the educational milieu. On the same occasion, I have seized the
opportunity to deepen and enrich my theoretical knowledge and my practical experience as
well through the elaboration and implementation of this application. The goal for the
development of this application is to qualitatively manage the number of students and solve
some registration issues, which will facilitate the school administration tasks. To put it in a
nutshell, the main goal of this application is to enable online registration and to add, edit and
delete data related to a student.

In so doing, I have created a Web application modelled on UML Language (Unified


Modeling Language). The chosen programming language is PHP Language (HyperText
Preprocessor) and the database management system (SGBD) is MySQL. It should be noted
7
that the tool Star UML has been useful and instrumental in the framework of the design and
the management of different UML diagrams.

SOMMAIRE

Table des matières

Liste des abréviations......................................................................................................6

Liste des tableaux.. .........................................................................................................7

Liste des figures ……......................................................................................................8

Introduction générale …………………………………………………………………….15

I. Cadres théorique et méthodologique……………………………………………17


1. Cadre théorique ……………………………………………………………….18
2. Cadre méthodologique ………………………………………………………..21
II. Analyse et conception…………………………………………………………….34
1. Analyse ………………………………………………………………………...35
2. Conception …………………………………………………………….............45
III. Mise en œuvre ……………………………………………………………………08
1. Réalisation……………………………………………………………………...08
2. Implémentation………………………………………………………………...09

8
Conclusion générale ………………………………………………………………………...

ABRÉVIATIONS

ISI Institut Supérieur d’Informatique

DTS Diplôme de Technicien Supérieur

IAGE Informatique Appliquée à la Gestion des


Entreprises
UML Unified Modeling Language

SGBD Système de Gestion de Base de Données

POO Programmation Orientée Objet

BS Bachelor

PHP HyperText Preprocessor

9
ISI Institut Supérieur d’Informatique

DTS Diplôme de Technicien Supérieur

IAGE Informatique Appliquée à la Gestion des


Entreprises
HTML Hyper- Text Markup Language

CRUD Create Read Update Delete

POO Programmation Orientée Objet

CSS Cascading Style Sheet

API Application Programming Interface

SGBDRO Système de Gestion de Base de Données


Relationnelle Objet
EC Etat Civil

CF Commune de Fanaye

OEC Officier d’Etat Civil

LISTE DES FIGURES


Figure1 : Organigramme de l’école Al Hidaaya

Figure2 : Modèle en cascade


Figure3 : Modèle en V

Figure4 : Modèle par incrément

Figure5 : Modèle en cycle de vie spirale

Figure6 : Méthode agile

Figure7 : Schéma des vues d’un système

10
Figure8 : Formalisme cas d’utilisation

Figure9 : Diagramme de classe

Figure10 : Diagramme de séquence

Figure11 : Diagramme de déploiement

Figure12 : Diagramme de contexte

Figure13 : Diagramme de package

Figure14 : Diagramme de cas d’utilisation du package gestion inscription

Figure15 : Diagramme de séquence de « Se connecter »

Figure16 : Diagramme de séquence de « valider inscription »

Figure17 : Diagramme de séquence de « Éditer infos élève »

Figure18 : Diagramme de séquence de « Supprimer infos élève »

Figure19 : Diagramme de classe

Figure20 : Diagramme de séquence de conception de « Se connecter » Figure21 :


Diagramme de séquence de conception de « Valider inscription »

Figure22 : Diagramme de séquence de conception de « Éditer infos élève »

Figure23 : Diagramme de séquence de conception de « Supprimer infos élève »

Figure24 : Diagramme de classe de conception

Figure25 : Diagramme de déploiement

Figure26 : Architecture à deux niveaux

Figure27 : l’architecture à 3-tiers

Figure28 : l’architecture à n-tiers

11
LISTE DES TABLEAUX

Tableau1 : Description textuelle du cas d’utilisation « Valider inscription »

Tableau2 : Description textuelle du cas d’utilisation « Éditer infos élève »

Tableau3 : Description textuelle du cas d’utilisation « Supprimer infos élève »


12
ABSTRACT
In order to obtain the diploma of bachelor (B.S) in Genie Logiciel at ISI (Computer Science
Institute of Higher Learning), I have designed an end-of-training project in order to complete
my theoretical and practical undergraduate training. Thus, I have entertained the idea to
design and implement a Web application, which will contribute to the efficiency and
management quality of the school named Al Hidaaya for a better performance and a better
competitivity in the educational milieu. On the same occasion, I have seized the opportunity to
deepen and enrich my theoretical knowledge and my practical experience as well through the
elaboration and implementation of this application. The goal for the development of this
application is to qualitatively manage the number of students and solve some registration
issues, which will facilitate the school administration tasks. To put it in a nutshell, the main
goal of this application is to enable online registration and to add, edit and delete data related
to a student.

In so doing, I have created a Web application modelled on UML Language (Unified


Modeling Language). The chosen programming language is PHP Language (HyperText
Preprocessor) and the database management system (SGBD) is MySQL. It should be noted
13
that the tool Star UML has been useful and instrumental in the framework of the design and
the management of different UML diagrams.

INTRODUCTION GENERALE

De nos jours, le monde connait une avancée technologique considérable dans tous les
secteurs et cela à l’aide de l’informatique. Celle-ci est la science qui permet de traiter
automatiquement des informations à l’aide d’un ordinateur. Sur le plan éducatif, elle permet
d’améliorer la qualité de l’enseignement en utilisant le numérique. Au Sénégal, les problèmes
liés à l’éducation se posent avec acuité. Cependant, on remarque une nette amélioration de la
qualité de l’enseignement et un meilleur accès à l’éducation, ce qui nous permet d’avoir un
ensemble d’outils pour la production et le traitement des documents numériques. N’ayant pas
une application web dynamique alors, effectuer notre stage au sein de Bushra Consulting nous
permettrai non seulement de mettre en œuvre et de renforcer nos compétences acquises mais
aussi d’élargir nos capacités en informatique par la découverte de nouveaux logiciels et
applications. Dans le cadre de notre formation universitaire, nous avons des connaissances
théoriques qui ne peuvent être valoriser et exploiter que dans un environnement professionnel
et pratique. Dès lors, nous avons opté pour Bushra Consulting qui offre un climat
professionnel dans lequel nous pouvons faire valoir nos connaissances théoriques pour mieux
développer et être en réalité du monde professionnel.

14
Pour bien gérer cette école, l’administration a besoin d’avoir accès à des informations qui
l’aideront à faire un faire choix. L'école coranique peut rencontrer une variété de problèmes.
Nous répondrons à ces problématiques dans notre mémoire en proposant une plateforme web
qui rend la gestion d'une école coranique plus facile, plus rapide et pour nous donner les
meilleurs résultats possibles.

L’objectif principal de notre travail est de faciliter le suivi des élèves, la gestion du
personnel et la comptabilité. Pour cela, nous avons jugé nécessaire de créer une application
simple afin de faciliter la gestion administrative et pédagogique de cette école. Ainsi, ce
projet permettra à l'école de se doter d’un outil efficace pour le contrôle et le suivi de ses
activités éducatives à savoir la facilitation, la simplification du travail, la gestion rationnelle
du temps et le suivi de tous les élèves inscrits.

A terme, cette application va globalement contribuer à l’efficacité et la qualité du


traitement des informations relatives à cet établissement.
Les applications sont incontestablement des moyens efficaces pour tout travail ou toute
tâche qui se veut efficient. C’est dans cette perspective que s’inscrit notre projet. Celui-ci
s’intitule : “Réalisation d’une application pour la gestion d’une école moderne
d'enseignement mixte coranique et conventionnel”. Comme son nom l'indique, notre projet
vise à concevoir et à réaliser une application qui, à terme, va contribuer à une meilleure
gestion de l’école Al Hidaaya.
Notre projet veut analyser et apporter des solutions pour une gestion administrative et
conventionnelle adéquate. Ce travail revêt un intérêt particulier pour moi à plus d’un titre.
D’une part, il me donne l'opportunité de mieux me familiariser au métier de développeur.
D’autre part, la réalisation de cette application et sa mise en œuvre va considérablement
contribuer au bon fonctionnement de l’école Al Hidaaya sur le plan numérique.
Cette étude se fera en trois (3) parties qui se présenteront comme suit :
✔ La première partie « cadres théorique et méthodologique » présente une étude détaillée
du projet afin de définir notre cahier de charges et de préciser les objectifs à atteindre
✔ La deuxième partie « analyse et conception » du système définit une spécification bien
détaillée sur notre application développée en se basant sur les différentes captures
d’écran.
✔ La troisième partie « mise en œuvre » présente les architectures et les SGBD et donne
une vue de notre application développée.
✔ Enfin, on terminera par une conclusion générale qui présente la synthèse du sujet et les
perspectives futures pour améliorer notre application.

15
I : Les cadres théorique et méthodologique

Les cadres théorique et méthodologique feront l’objet de notre première partie qui sera
consacrée à la présentation générale du système proprement dit, son architecture et sa
contextualisation.

16
Chapitre1 : Cadre théorique

Le cadre théorique de notre travail s’articule autour de la présentation de la structure et


de la description du sujet.
I. Présentation de la structure

La présentation de la structure concerne la description, l’organigramme et la présentation


du lieu de stage.
1. Description de l’école Al Hidaaya

Fondée en 2019, Al Hidaaya est une école moderne d’enseignement mixte coranique et
conventionnel. Le concept Al Hidaaya part du constat qu'au Sénégal, pays majoritairement
croyant et très ouvert sur le monde, les parents ont souvent à faire un choix entre
l'apprentissage conventionnel et la formation religieuse. Convaincu de la nécessité de
combiner les deux, Al Hidaaya propose de partir de l'enseignement franco-arabe récemment
conventionné par le gouvernement et renforcer l'apprentissage du Coran et la formation
religieuse afin de former de futurs cadres de haute formation mais ayant en sus une éducation
morale et religieuse.

Avec un programme novateur alliant ces deux types d’enseignement, Al Hidaaya fait face à
plusieurs défis et non des moindres : en effet, l'articulation entre les différents régimes
(pensionnat, demi-pensionnat, externat), les différentes matières des différents enseignements
(instituteurs, enseignants coraniques, ...) ainsi que la logistique et l'intendance requises pour
faire fonctionner l'ensemble sont lourds à gérer sans assistance informatique. Ayant moimême
eu ce type de formation et donc convaincu de son bien-fondé, c'est donc tout naturellement que
j'ai orienté mes travaux de stage dans la conception d'un outil de gestion d'école en général et

17
prenant en compte les spécificités du concept Hidaaya en particulier. Avec bien sûr, à la clé,

DIRECTION

Secrétaire Général

Salle des
Comptabilité Surveillance professeurs

une application certes modeste dans son ambition, mais utile au quotidien pour cette école
dont c'est pour moi une forme de contribution mais aussi que je peux continuer à enrichir plus
tard que ce soit dans un cadre professionnel ou extra professionnel.

2. Organigramme

3. Présentation du lieu de stage

Bushra Consulting est une société de services en Ingénierie


Informatique spécialisée dans la conception, le développement et le
déploiement de Systèmes d’Informations d’Entreprise. Fondée en 2012, la
société s’appuie sur une forte expérience dans le monde de l’IT en France et
développe, de manière assez unique sur le marché local, une culture
novatrice de gestion des projets informatiques en lien avec la transformation
digitale des entreprises.

18
Avec une forte culture agile et un minddset client-centric, l’entreprise
développe une proximité assez importante avec ses clients dont elle vise à
digitaliser le business. Avec une équipe pluridisciplinaire regroupant les
compétences transversales nécessaires, les équipes agiles travaillent en toute
autonomie avec leurs clients et partie-prenantes pour construire avec eux un
produit à leur image et répondant à leurs besoins et usages.
Aussi, dans le cadre de mon stage, ai-je travaillé avec une petite équipe
agile qui travaillait avec une école pour en digitaliser les process. J’ai tour à
tour travaillé avec l’équipe produit dans la spécification du besoin et avec
l’équipe de réalisation dans le développement des écrans notamment ceux
du module de gestion des élèves.

II. Description du sujet

1. Problématique

Pour une bonne gestion de cette école, il est fondamental de poser et de trouver des
réponses aux questions suivantes :

⮚ Quelles sont les informations relatives à la situation scolaire d’un élève ?


⮚ Quelles sont les frais d’inscriptions ?
⮚ Comment améliorer la gestion de des flux de l’école ?
⮚ Quelles solutions faudrait-il mettre en place ?
2. Objet de l’étude

Le principe objectif de ce projet est de mettre en place un nouveau système de gestion des
élèves et de l’administration facilitant la saisie, la partage, l’exploitation et le stockage des
informations. Ainsi, notre travail consiste à mettre en place une application qui regroupe les
fonctionnalités suivantes :
▪ Gestion des inscriptions (CRUD)
▪ Gestions des frais de scolarité
▪ Gestion des notes

19
III. Étude de l’existant
L’étude de l’existant est une phase importante pour bien comprendre le système actuel et
définir ses objectifs. Elle vise à permettre à toute personne de l’école de :

• Comprendre le fonctionnement du système


• Dégager ses forces
• Dégager ses faiblesses
• Recenser les contraintes

20
Chapitre2 : Cadre méthodologique

21
Pour passer de l’étude d’un projet à sa traduction en langage machine, la phase
d’analyse et de modélisation semble incontournable.
I. Méthode d’analyse et de conception

Au niveau de cette phase, nous avons à faire une synthèse de quelques méthodes
d’analyses afin d’en tirer des avantages et inconvénients, ce qui nous permettra de
faire un choix parmi ces méthodes.

1. Étude méthodologique

a. Différents types de modèle d’analyse

❖ Le modèle en cascade
Le modèle en cascade est un modèle de gestion linéaire qui divise les processus de
développement en phases de projet successives. Contrairement aux modèles itératifs, chaque
phase est effectuée une seule fois. Les sorties de chaque phase antérieure sont intégrées
comme entrées de la phase suivante. Le modèle en cascade est principalement utilisé dans le
développement de logiciels.

Figure 2 : Modèle en cascade

❖ Le modèle en V
Le modèle en V ou cycle en V est un modèle utilisé dans différents processus de
développement, notamment dans le développement de logiciels. Élaboré dans les années 90
sous forme originale, il est perfectionné au fil des années et adapté aux méthodes de

22
développement contemporaines. L’idée de départ remonte cependant aux années 70 et a été
imaginée comme sorte de prolongement du modèle en cascade.

Figure 3 : Modèle en V

❖ Le modèle par incrément


Dans les modèles précédents, 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 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 (parallélisme) à des différentes phases 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

23
Figure 4 : Modèle par incrément

❖ Le modèle en cycle de vie spirale


Le modèle en spirale est un modèle de cycle de développement de logiciel qui reprend les
différentes étapes du cycle en V. Par l'implémentation de versions successives, le cycle
recommence en proposant un produit de plus en plus complet et dur. Le cycle en spirale met
cependant plus l’accent sur la gestion des risques que le cycle en V.

Figure 5 : Modèle en cycle de vie spirale

❖ La méthode agile
En ingénierie logicielle, les pratiques agiles mettent en avant la collaboration entre des
équipes auto-organisées et pluridisciplinaires et leurs clients. Elles s'appuient sur l’utilisation
d'un cadre méthodologique léger mais suffisant centré sur l’humain et la communication. Elles
24
préconisent une planification adaptative, un développement évolutif, une livraison précoce et
une amélioration continue, et elles encouragent des réponses flexibles au changement.

Figure 6 : Méthode agile

b. Méthodes fonctionnelles ou approche OO

⮚ Modélisation fonctionnelle

La modélisation fonctionnelle est utilisée au début d'un projet pour créer ou améliorer un
produit.
Cette méthode permet, en phase d’analyse des besoins, de modéliser de façon
méthodique, complète et précise un domaine fonctionnel. ✔ Avantages de la modélisation
La modélisation fonctionnelle (également qualifiée de modélisation structurée) est une
démarche qui consiste à rechercher et à caractériser les fonctions offertes par le produit pour
satisfaire les besoins de son utilisateur. Elle met en évidence les fonctions à assurer et propose
une approche hiérarchique descendante et modulaire. Cette méthode utilise intensivement les
raffinements successifs pour produire des spécifications dont l’essentiel est sous forme de
notation graphique en diagrammes de flots de données. Le plus haut niveau représente
l’ensemble du problème (sous forme d’activité, de données ou de processus, selon la
méthode). Chaque niveau est ensuite décomposé en respectant les entrées/sorties du niveau
supérieur. La décomposition se poursuit jusqu’à arriver à des composants maîtrisables.
L’approche fonctionnelle dissocie le problème de la représentation des données, du problème
du traitement de ces données.

✔ Inconvénients de la modélisation Comme


inconvénients majeurs, on peut citer :
❖ Un problème de sécurité causé par une séparation des données et des traitements.
❖ L'approche fonctionnelle n'est pas adaptée au développement d'applications qui
évoluent sans cesse et dont la complexité croît continuellement (plusieurs dizaines de
milliers de lignes de code).

25
❖ Une maintenance complexe en cas d'évolution d’une application (une simple mise à
jour de l'application à un point donné peut impacter en cascade sur d'autres fonctions
de l’application). L'application sera alors retouchée dans sa globalité.

❖ L’absence d’environnement intégré quant à la génération automatique du code source


⮚ Modélisation orientée objet
La modélisation orientée objet consiste à créer une représentation informatique des
éléments du monde réel auxquels on s’intéresse, sans se préoccuper de l’implémentation, ce
qui signifie indépendamment d’un langage de programmation.
La programmation orientée objet (POO) fait suite, en amplifiant les principes, à la
programmation modulaire. Elle facilite d’autant plus la réutilisation de portions logicielles
dans d’autres applications et la maintenance des applications.
Elle donne une place prépondérante aux données et à leur structure dans un programme,
alors que c’était auparavant l’enchainement des instructions qui était considéré́ comme
primordial.
A ce titre, la programmation orientée objet coïncide plus avec l’organisation du monde réel.
L’objet est une structure autonome (sur le plan logique) qui représente un objet du monde réel
et qui se compose de données qui lui sont propres (ses attributs) et de ses méthodes qui sont
toutes les fonctions pouvant s’appliquer à ces données.
Le modèle objet est caractérisé principalement par trois (3) concepts :

★ Encapsulation
Elle consiste à masquer des attributs et des méthodes de l’objet vis-à-vis des autres objets
car certains objets et méthodes ne doivent pas être exposés aux objets extérieurs. Tout objet
est vu comme une entité́ et le principe de l’encapsulation est qu’il n’est pas possible d’agir
directement sur les données d’un objet ; il est nécessaire de passer par l’intermédiaire de ses
méthodes qui jouent ainsi le rôle d’interface obligatoire. ★ Héritage
L’héritage est un principe propre à la programmation orientée objet, permettant de créer
une nouvelle classe à partir d’une classe existante.
Le nom d’héritage provient du fait que la classe dérivée (la classe nouvellement créée)
contient les attributs et les méthodes de sa super classe (la classe dont elle dérive). En outre, il
évite la duplication et encourage la réutilisation.
★ Polymorphisme
Le polymorphisme signifie qu’une classe (généralement abstraite) représente un ensemble
constitué d’objets différents car ils sont instances de sous classes distinctes et lors de l’appel
d’une méthode de même nom, cette méthode se traduit par des comportements différents. Le
polymorphisme augmente la générosité́ du code.

26
NB : Une classe c’est une abstraction des objets. C’est aussi la description d’un ensemble
d’objets ayant une structure de données communes et disposant les mêmes méthodes.
★ Avantages de la modélisation orientée objet
L’approche objet possède plusieurs avantages tels que :
▪ La modélisation des objets de l'application consiste à modéliser informatiquement un
ensemble d’éléments d’une partie du monde réel en un ensemble d’entités
informatiques. Ces entités informatiques sont appelées objet.
▪ La modularité (la programmation modulaire permet la réutilisation du code, via
l’écriture de libraires)
▪ La réutilisabilité
▪ L’extensibilité (pour une meilleure productivité des développeurs et une plus grande
qualité des applications).
★ Inconvénients de cette méthode

▪ Langage précis donc nécessite un effort d'apprentissage


▪ Difficulté de naviguer dans l’abstrait,
▪ Elle est moins intuitive que l’approche fonctionnelle
▪ La nécessité de plus de ressources et de temps d’exécution d’un code procédural

2. Choix de la méthode de conception


Notre choix se porte sur l’approche orientée. Les justifications de ce choix sont :
l’existence d’un EDI pour la représentation des diagrammes, il n’y a pas de contraintes
d’implémentation liées aux langages et aux systèmes. En plus, l’approche objet a été inventée
pour faciliter l’évolution des applications à travers le polymorphisme, l’héritage et la sécurité́
des données avec l’encapsulation. Plus précisément nous aurons à manipuler le langage
orienté objet à savoir UML.
UML (Unified Modeling Langage, « Langage de Modélisation Unifié ») est un langage
graphique de modélisation des données et des traitements. C’est une formalisation très aboutie
et non propriétaire de la modélisation objet utilisée en génie logiciel.
L’approche objet est devenue une réalité́ . Les concepts de base de l’approche objet sont
stables et largement éprouvés. De nos jours, programmer « objet », c’est bénéficier d’une
panoplie d’outils et de langages performants. L’approche objet est une solution technologique
incontournable. Ce n’est plus le mode, mais un réflexe quasi automatique dès lors qu’on
cherche à concevoir des logiciels complexes qui doivent résister à des évolutions incessantes.
a. La modélisation avec UML
Les principales caractéristiques de la programmation objet sont l’encapsulation, l’héritage
et le polymorphisme. Ces trois techniques permettent d’apporter à un système une vision plus

27
claire, une séparation entre entités plus importantes et ont amené les développeurs à introduire
les notions de réutilisabilité, de modificabilité et de traçabilité.

b. Les différents concepts du langage Orienté Objet

❖ Encapsulation
Elle consiste à masquer des attributs et des méthodes de l’objet vis-à-vis des autres objets
car certains objets et méthodes ne doivent pas être exposés aux objets extérieurs. Tout objet
est vu comme une entité́ et le principe de l’encapsulation est qu’il n’est pas possible d’agir
directement sur les données d’un objet ; il est nécessaire de passer par l’intermédiaire de ses
méthodes qui jouent ainsi le rôle d’interface obligatoire.

❖ Héritage
C’est la propriété́ qui fait bénéficier à une sous classe de la structure et du comportement de
sa superclasse. L’héritage (généralisation / spécialisation) permet de définir une nouvelle
classe à partir d’une classe existante (qu’on réutilise en bloc), à laquelle on ajoute de
nouvelles données et méthodes. La conception de la nouvelle classe, qui hérite des propriétés
et des aptitudes de l’ancienne, peut ainsi s’appuyer sur des réalisations antérieures
parfaitement au point et les réaliser à volonté́ .
❖ Polymorphisme
Le polymorphisme signifie qu’une classe (généralement abstraite) représente un
ensemble constitué d’objets différents car ils sont instances de sous classes distinctes et lors
de l’appel d’une méthode de même nom, cette méthode se traduit par des comportements
différents. Le polymorphisme augmente la généricité́ du code. ❖ Objet
C’est une entité matérielle ou immatérielle ayant un sens pour le système d’information
identifiable par un nom ; son état est caractérisé par un ensemble d’attributs et de méthodes ou
opérations définissant son comportement. Un objet est une instance de classe (une occurrence
de classe).
❖ Classe
Elle n’est rien d’autre que la description d’un ensemble d’objets ayant une structure de
données communes et disposant les mêmes méthodes.

c. Les différents diagrammes en UML


La réalisation d’une application informatique ou d’un ensemble d'applications est basée sur
plusieurs diagrammes.
UML s’articule autour de 13 diagrammes différents, dont 4 nouveaux diagrammes. Chacun
d’eux est dédié́ à la représentation d’un système logiciel suivant un point de vue particulier.
Ces diagrammes sont tous réalisés à partir du besoin des utilisateurs et peuvent être
regroupés selon les deux aspects suivants :

28
- Les aspects fonctionnels : Qui utilisera le logiciel et pour quoi faire ? Comment les actions
devront-elles se dérouler ? Quelles informations seront utilisées pour cela
- Les aspects liés à l’architecture : Quels seront les différents composants logiciels à utiliser
(base de données, librairies, interfaces, etc.) ? Sur quel matériel chacun des composants sera
installé́ ?
UML modélise donc le système logiciel suivant ces deux modes de représentation.

Figure 7 : Schéma des vues d’un système

● Diagramme de cas d’utilisation : Un diagramme de cas d'utilisation capture le


comportement d'un système, d'un sous-système, d'une classe ou d'un
composant tel qu'un utilisateur extérieur le voit. Il scinde la fonctionnalité du
système en unités cohérentes, les cas d'utilisation ayant un sens pour les
acteurs.
Il se caractérise d’un ensemble d’éléments à savoir :
● Acteur : un acteur est l'idéalisation d'un rôle joué par une personne externe, un
processus ou une chose qui interagit avec un système.
● Cas d’utilisation : un cas d'utilisation est une unité cohérente représentant une
fonctionnalité visible de l'extérieur. Il réalise un service de bout en bout, avec
un déclenchement, un déroulement et une fin, pour l'acteur qui l'initie. Un cas
d'utilisation modélise donc un service rendu par le système, sans imposer le
mode de réalisation de ce service.
● Relation d'association : une relation d'association est chemin de
communication entre un acteur et un cas d'utilisation et est représentée par un
trait continu.

29
● Inclusion : un cas A inclut un cas B si le comportement décrit par le cas A
inclut le comportement du cas B : le cas A dépend de B. Lorsque A est
sollicité, B l'est obligatoirement, comme une partie de A. Cette dépendance est
symbolisée par le stéréotype « include ».
● Extension : on dit qu'un cas d'utilisation A étend un cas d'utilisation B lorsque
le cas d'utilisation A peut être appelé au cours de l'exécution du cas d'utilisation
B. Cette dépendance est symbolisée par le stéréotype « extend »
● Généralisation : un cas A est une généralisation d’un cas B si B est un cas
particulier de A. Par exemple, la consultation d’un compte via Internet est un
cas particulier de la consultation. Cette relation de généralisation/spécialisation
est présente dans la plupart des diagrammes UML et se traduit par le concept
d’héritage dans les langages orientés objet.

Figure 8 : Formalisme cas d’utilisation ●


Diagramme de classe
Il est généralement considéré comme le plus important de la modélisation orienté objet. Il
représente l’architecture conceptuelle du système : il décrit les classes que le système utilise,
ainsi que leurs liens, que ceux-ci représentent un emboîtage conceptuel (héritage) ou une
relation organique (agrégation). Le diagramme de classe est composé de :
Classes, qui sont un type d’abstrait caractérisé par de propriété (attributs et méthodes),
commune à un ensemble d’objets et permettant de créer des objets ayant ces propriétés.
Agrégation, qui est une association non symétrique qui exprime un couplage fort et une
relation de subordination. Elle met en évidence le fait qu’une classe fasse partie d’une autre,
qu’un changement d’état d’une classe entraîne celui d’une autre, et qu’une action sur une
classe entraîne une action sur une autre. Cependant, les deux classes peuvent suivre
indépendamment, la destruction de l’une n’entraîne pas celle de l’autre.
30
Composition, également appelée agrégation composite, décrit une contenance structurelle
entre instance. Ainsi, la destruction de l’objet composite implique la destruction de ses
composants. Une instance de la partie appartient toujours au plus à une instance de l’élément
composite.

Héritage, est une relation de classification entre un ou plusieurs éléments spécifiques


(soustypes) et un élément plus général (super-type). Les liens hiérarchiques entre classes
gèrent la complexité à l’aide d’arborescence de classes. Il existe deux sens de classification
menant à l’héritage : la spécialisation et la généralisation.

Associations, qui ont une relation entre deux classes (association binaire) ou plus
(association n-binaire), qui décrit les connexions de structures entre leurs instances.
Cardinalités, qui définissent le nombre d’instances qui participent à une relation. C’est
donc un nombre entier ou un intervalle de valeur (exactement un ou 1 ou encore 1..1,
plusieurs n, zéro ou 0..1, zéro ou plusieurs 0..n, un ou plusieurs 1..n).

Figure 9 : Diagramme de classe

● Diagramme de séquence
Il permet de décrire les scenarios de chaque cas d’utilisation. Un diagramme de séquence
permet de représenter des collaborations entre objets selon un point de vue temporel, on y met
l’accent sur la chronologie des envois de messages entre objets.

31
Figure 10 : Diagramme de séquence

● Diagramme de déploiement
Il montre la disposition physique des matériels qui composent le système et la répartition
des composants sur ces matériels.
Les ressources matérielles sont représentées sous forme de nœuds. Les diagrammes de
déploiement peuvent montrer des instances de nœuds (un matériel précis), ou des classes de
nœuds. De manière générale, le diagramme de déploiement décrit l’architecture technique du
système.
On peut citer aussi d’autres diagrammes : diagramme de communication, diagramme
d'interaction, diagramme de composant, diagramme de temps, diagramme de structure
composite, diagramme d’activité, ...

32
Figure 11 : Diagramme de déploiement

II : Analyse et conception du système

33
CHAPITRE 3 : ANALYSE DU SYSTÈME
I. ANALYSE DES BESOINS

1. Les besoins fonctionnels

Les besoins fonctionnels ou bien métiers représentent les actions que le système doit
exécuter, il ne devient opérationnel que s’il les satisfait.
Dans notre application, les principales fonctionnalités sont les suivantes :

★ S’authentifier
★ S’inscrire un élève
★ Modifier les informations d’un élève
★ Supprimer un élève
★ Afficher les informations d’un élève

2. Les besoins non fonctionnels

Ce sont des exigences qui ne concernent pas spécifiquement le comportement du système


mais plutôt identifient des contraintes internes et externes du système. Les principaux besoins
non-fonctionnels de notre application se résument dans les points suivants :
● Restauration du système
● La sécurité des mots de passe
● L’ergonomie
● La garantie
● Facilité d’utilisation

3. Quelques diagrammes

34
01. Diagramme de contexte

Figure 12 : Diagramme de contexte

02. Diagramme de package


Figure 13 : Diagramme de package

35
03. Diagramme de cas d’utilisation

Figure 14 : Diagramme de cas d’utilisation du package gestion inscription

04. Description textuelle des cas d’utilisation

SOMMAIRE
Titre Valider inscription
Objectif Permet d’inscrire un élève dans l’école.
Acteur Principal Secrétaire

ENCHAINEMENT
Précondition Post Condition
Le secrétaire est connecté Le secrétaire clique sur le bouton Valider

36
SCENARIO NOMINAL
1. Le système vérifie si le secrétaire s’est connecté.
2. Le secrétaire clique sur le bouton « Nouveau ».
3. Le système ouvre la page d’inscription.
4. Le secrétaire remplit les informations de l’élève.
5. Le secrétaire remplit les informations de son tuteur.
6. Le secrétaire remplit la colonne de l’enseignement.
7. Le secrétaire clique sur le bouton Valider.
8. Le système vérifie si les champs obligatoires ont été remplis.
9. Le système ajoute un élève dans la liste des inscrits.

SCENARIO ALTERNATIF
1. Le secrétaire n’est pas connecté
a. Le système n’affiche pas la page d’inscription
2. Tous les champs obligatoires ne sont pas remplis
a. Le bouton « Enregistrer » sera grise

Tableau 1 : Description textuelle du cas d’utilisation « Valider inscription »

SOMMAIRE
Titre Éditer les infos de l’élève
Objectif Permettre au secrétaire de modifier les
informations de l’élève.

Acteur Principal Secrétaire

ENCHAINEMENT
Précondition Post Condition
Le secrétaire est connecté Le secrétaire clique sur le bouton Éditer

SCENARIO NOMINAL

37
1. Le système vérifie si le secrétaire s’est connecté
2. Le secrétaire clique sur la ligne contenant les informations de l’élève concerné
3. Le système affiche les informations de cet élève
4. Le secrétaire peut modifier les informations de l’élève
5. Le secrétaire peut modifier les informations de son tuteur
6. Le secrétaire peut modifier la colonne de l’enseignement
7. Le secrétaire clique sur le bouton Valider
8. Le système vérifie si les champs obligatoires ont été remplis
9. Le système met à jour la liste des élèves inscrits

SCENARIO ALTERNATIF
1. Tous les champs obligatoires ne sont pas remplis
a. Le bouton « Enregistrer » sera grise
2. Le secrétaire annule le processus
a. Le système le redirige à la page d’inscription

Tableau 2 : Description textuelle du cas d’utilisation « Éditer infos élève »

SOMMAIRE
Titre Supprimer infos élève

Objectif Permet de supprimer un élève.


Acteur Principal Secrétaire

ENCHAINEMENT
Précondition Post Condition
Le secrétaire est connecté Le secrétaire clique sur le bouton
Supprimer

SCENARIO NOMINAL

38
1. Le système vérifie si le secrétaire s’est connecté
2. Le secrétaire clique sur la ligne contenant les informations de l’élève concerné
3. Le secrétaire clique sur le bouton Supprimer
4. Le secrétaire confirme la suppression
5. Le système supprime définitivement cet élève de la liste des inscrits.
6. Le système met à jour la liste des élèves inscrits

SCENARIO ALTERNATIF
Le secrétaire annule le processus
Le système le redirige à la page d’inscription

Tableau 3 : Description textuelle du cas d’utilisation « Supprimer infos élève

39
05. Diagrammes de séquence

Figure 15 : Diagramme de séquence de « Se connecter » Figure 16 :

Diagramme de séquence de « Valider inscription » Figure 17 :


Diagramme de séquence « Modifier infos élève » Figure 18 :
Diagramme de séquence « Supprimer infos élève »

06. Diagramme de classe


Figure 19 : Diagramme de classe

40
Chapitre IV : Conception du système

UML est une approche orientée objet de modélisation qui permet de modéliser un problème

d’une manière standard. UML évite de se définir comme une méthodologie, comme son nom
l’indique. C’est un langage « visuel » qui permet d’exprimer la compréhension d’un système.
Il comporte 13 diagrammes dont 9 principaux regroupés dans deux vues différentes :

⮚ Vue statique (cinq diagrammes structurels)


✔ Diagramme de cas
d’utilisations ; ✔ Diagramme de
classes ; ✔ Diagramme d’objets ; ✔

41
Diagramme de conception ; ✔
Diagramme de déploiement ;
⮚ Vue dynamiques (quatre diagrammes comportementaux)
✔ Diagramme de séquence ;
✔ Diagramme d’activité ; ✔
Diagramme d’états transition ;
✔ Diagramme de collaboration ;
A cet effet, on présente quelques diagrammes de modélisation qu’on a jugés plus
importants pour la compréhension du fonctionnement du système.

I. Diagramme de séquence de conception

Figure 20 : Diagramme de séquence de conception de « Se connecter »

42
Figure 21 : Diagramme de séquence de conception de « Valider inscription »
Figure 22 : Diagramme de séquence de conception de « Éditer infos élève » Figure 23 : Diagramme
de séquence de conception de « Supprimer infos élève »

II. Diagramme de classe de conception

43
Figure 24 : Diagramme de classe de conception

44
III. Diagramme de déploiement

Figure 25 : Diagramme de déploiement

45
III : Mise en œuvre

Chapitre V : Réalisation

I. Outils de développement 1. Quelques langages de programmation


Définition :

Un langage de programmation est une notation conventionnelle destinée à formuler des


algorithmes et produire des programmes informatiques qui les appliquent. Les langages de
programmation permettent de décrire d’une part, les structures des données qui seront
manipulées par l’appareil informatique, d’autre part, d’indiquer comment sont effectuées les
46
manipulations, selon quels algorithmes. Ils servent de moyens de communication par lesquels
le programmeur communique avec l’ordinateur, mais aussi avec d’autres programmeurs ; les
programmes étant d’ordinaires écrits, lus, compris et modifiés par une équipe de
programmeurs. Par ailleurs, il existe plusieurs langages de programmation.
01. HTML (Hyper-Text Markup Language)

C’est le langage dans lequel sont écrites les pages web ; ainsi nous pouvons créer notre
page web rien qu'avec le bloc-notes (notepad.exe) ou tout autre éditeur de texte. Il vous suffit
pour cela d'entrer les instructions comme si c'était du texte et d'enregistrer le texte ainsi obtenu
avec une extension *.htm ou *.html.
Relativement simple, ce langage repose sur un système de balises, comme par exemple
<Head>. Mais nul besoin de les connaitre pour réaliser une page de base. En effet, il existe de
nombreux éditeurs de pages web qui vous permettent de créer des pages web comme on crée
un document sous Word (Mozilla NVU, Macromedia Dreamweaver, etc.). Sachez toutefois
que le code généré́ par ces éditeurs n'est pas des plus propres. À noter qu'on ne parle pas de
langage de programmation pour HTML mais de langage de présentation.
02. CSS

Le CSS (Cascading Style Sheet) ou Feuille de Style en cascade est utilisé́ pour alléger le
code HTML. Pour cela, on crée généralement un fichier *.ccs dans lequel on entre toutes les
instructions codant le style de la page web (couleur d'arrière-plan, type de blocs, de bordures,
etc.). En faisant appel à ce fichier dans la page HTML, on peut désigner un style lourd et
complexe avec une simple petite balise. De plus, si la CSS est employée dans un site entier
(comme c'est toujours le cas), il suffit de mettre à jour le CSS pour refaire le design du site en
entier.
03. JavaScript

JavaScript est un langage de programmation de scripts principalement employé dans les


pages web interactives mais aussi pour les serveurs avec l'utilisation par exemple de Node.js.
C'est un langage orienté objet à prototype, c'est-à-dire que les bases du langage et ses
principales interfaces sont fournies par des objets qui ne sont pas des instances de classes,
mais qui sont chacun équipés de constructeurs permettant de créer leurs propriétés, et
notamment une propriété de prototypage qui permet d'en créer des objets héritiers
personnalisés. En outre, les fonctions sont des objets de première classe. Le langage supporte
le paradigme objet, impératif et fonctionnel. Avec les technologies HTML et CSS, JavaScript
est parfois considéré comme l'une des technologies cœur du World Wide Web. Le langage
JavaScript permet des pages web interactives, et à ce titre est une partie essentielle des
applications web. Une grande majorité des sites web l’utilisent.
04. PHP

C'est un langage très utilisé, notamment par un grand nombre de programmeurs


professionnels, ce qui en fait un langage incontournable actuellement. Voici les
caractéristiques de PHP en quelques mots :

PHP : HyperText Preprocessor, plus connue sous son sigle PHP, est un langage de
programmation compilé à la volée libre principalement utilisé pour produire des pages
dynamiques via un server HTTP, mais pouvant également fonctionner comme n’importe quel
autre langage interprété de façon locale, en exécutant les programmes en ligne de commande.

47
PHP est un langage impératif disposant depuis la version 5 de fonctionnalités de modèle objet
complètes. En raison de la richesse de sa bibliothèque, on désigne parfois PHP comme une
plate-forme plus qu’un simple langage.
05. JAVA

Java est un langage de programmation orienté objet moderne développé par Sun
Microsystems Il ne faut surtout pas le confondre avec JavaScript (langage de scripts utilisé
principalement sur les sites web), car Java n'a rien à voir. Une de ses plus grandes forces est
son excellente portabilité : une fois votre programme créé, il fonctionnera automatiquement
sous Windows, Mac, Linux, etc. On peut faire de nombreuses sortes de programmes avec Java
:

❖ Des applications sous formes de fenêtre ou de console


❖ Des applets, qui sont des programmes Java incorporés à des pages web ;
❖ Des applications pour appareils mobiles, avec J2ME ;
❖ Et bien d'autres ! JEE, JMF, J3D pour la 3D…

06. C#

C’est un langage de programmation orienté objet créé par la société Microsoft, et


notamment un de ses employés d’Anders Hejlsberg. Il a été créé afin que la plateforme
Microsoft.NET soit dotée d’un langage permettant d’utiliser toutes ses capacités. Il est très
proche de java dont il reprend la syntaxe générale ainsi que les concepts (la syntaxe reste
cependant relativement semblable à celles de langage tel que le C++ et le C).
07. TypeScript

Le TypeScript est un langage de programmation open-source développé par Microsoft. Le


langage se présente comme un ensemble du JavaScript avec notamment l’apport d’un typage
statique optionnel des variables et des fonctions, la création des classes et d’interfaces, la
création de namespaces et de modules. Le but premier de TypeScript est de rendre plus facile
et plus fiable l’écriture de code en JavaScript pour des applications de grandes ampleurs.

2. Choix du langage de programmation

Notre choix du langage de programmation s’est porté sur le langage TypeScript qui très
avantageux par rapport aux autres :
Avantages du langage

● TypeScript comporte des erreurs au moment de l’arrangement tandis que


Javascript, au moment de l’exécution.
● Il s’exécute dans n’importe quel programme ou moteur JavaScript.
● Il aide à organiser le code.
● Il respecte les interfaces
● Il a une idée d’espace de noms en caractérisant un module.

48
● Il a une meilleure documentation pour les API qui est en harmonie avec un
code source.

3. Étude comparative des différents Framework


01. Symphony

Symfony est un ensemble de composants PHP ainsi qu'un framework MVC libre écrit en
PHP. Il fournit des fonctionnalités modulables et adaptables qui permettent de faciliter et
d’accélérer le développement d'un site web. Symfony fournit une interface en ligne de
commande pour améliorer la productivité en créant un code de base modifiable à volonté.
Symfony propose entre autres :

❖ une séparation du code en trois couches, selon le modèle MVC, pour une plus
grande maintenabilité et évolutivité ;
❖ Des performances optimisées et un système de cache afin d'assurer des temps
de réponse optimaux ;
❖ Une gestion des URL parlante, permettant à une page d'avoir une URL
distincte de sa position dans l'arborescence ;
❖ L'internationalisation native ;
❖ Le support d’AJAX ;
❖ Une architecture extensible permettant créations et utilisations de plugins.
02. Laravel

Laravel est un framework web open-source écrit en PHP respectant le principe modèle-
vuecontrôleur et entièrement développé en programmation orientée objet. Laravel est distribué
sous licence MIT, avec ses sources hébergées sur GitHub. Laravel a été créé par Taylor
Otwell en juin 2011. La version 5.0 de Laravel nécessite au minimum PHP 5.4 et son
installation est basée sur le gestionnaire de paquets Composer. Laravel fournit des
fonctionnalités en termes de routage de requête, de mapping objet-relationnel (un système
baptisé Éloquent implémentant Active Record), d'authentification, de vue, de migration de
base de données, de gestion des exceptions et de test unitaire.

03. Angular

Angular est un framework open source écrit en JavaScript qui permet la création
d’application Web et plus particulièrement de ce qu’on appelle des “Single Page
Application” : des applications web accessibles via une application web unique qui permet de
fluidifier l’expérience utilisateur et d’éviter les chargements de pages à chaque nouvelle
action. Le framework est basé sur une architecture du type MVC et permet donc de séparer les
données, le visuel et les actions pour une meilleure gestion des responsabilités. Un type
d’architecture qui a largement fait ses preuves et qui permet une forte maintenabilité et une
amélioration du travail collaboratif.

49
4. Choix du framework

Malgré toutes les fonctionnalités et caractéristiques qu'offrent les framework cités, nous
avons choisi de travailler, concernant notre projet, avec Angular qui est un framework solide,
complet et homogène qui a l’avantage de ne pas nécessiter l’ajout de composants extérieurs
pour son fonctionnement. Il est possible de faire nativement du routing de l’AJAX ou encore
du stockage en local contrairement à vue.js ou encore React qui reste au final une librairie
destinée à développer des composants.
Aussi, le framework s'appuie sur TypeScript, une surcouche au JavaScript développée par
Microsoft, qui est un langage typé qui permet de créer des classes, des variables et des
signatures de fonctions. Et s’il est parfaitement possible d’utiliser du JavaScript natif avec
Angular, l’utilisation de TypeScript permet de mieux gérer les erreurs, d’avoir un code plus
clair et aussi d’assurer une transition plus simple pour les développeurs PHP, Java ou encore
C#.

I. PRÉSENTATION DES SGBD

En informatique, un système de gestion de base de données (SGBD) est un logiciel système


destiné à stocker et à partager des informations dans une base de données, en garantissant la
qualité, la pérennité et la confidentialité des informations, tout en cachant la complexité des
opérations.
Il permet d’inscrire, de retrouver, de notifier, de trier, de transformer ou d'imprimer les
informations de la base de données. Il permet d'effectuer des comptes rendus, des
informations enregistrées et comporte des mécanismes pour assurer la cohérence des
informations, éviter des pertes d'informations due à des pannes, assurer la confidentialité et
permettre son utilisation par d'autres logiciels. Selon le modèle, le SGBD peut comporter une
simple interface graphique jusqu'à des langages de programmation sophistiqués.

1. Étude comparative des SGBD

● MySQL

MySQL est certainement la base de données libre la plus connue et la plus présente dans les
entreprises en termes de part de marché. Offrant l'avantage d'être facilement configurable pour
les petites bases (moins de cinq minutes pour installer un serveur), elle supporte l'utilisation de
grosses bases contenant des millions de lignes. La gestion des grappes 1 (clusters) est présente
mais encore fortement limitée (l'ensemble du contenu des tables doit être présent en mémoire
vive). Cette architecture (toutes les données en mémoire vive) offre certes un temps de
réponse minimum, mais impose une forte contrainte. MySQL possède plusieurs systèmes
d'écriture des données. Les systèmes de fichiers sont MyIsam, InnoDB, BDB, etc. Les
fonctionnalités supportées, comme les clés étrangères ou les transactions, sont différentes en
fonction du système de fichier choisi. MySQL fonctionne sur les systèmes suivants :

50
✔ Linux
✔ Unix : Solaris, HP-UX, AIX, SCO ✔ BSD : FreeBSD ✔
Apple : Mac OS ✔ Windows ✔ Novell : NetWare Avantages :

✔ Solution très courante en hébergement public ✔ Open source


(libre) ✔ Facilité de prise en main ✔ Plusieurs moteurs de stockages
adaptés à différentes problématiques Inconvénients :
✔ Gestion des transactions que depuis la version 4 avec InnoDB
✔ Assez peu riche en fonctionnalité
✔ Manque de robustesse avec de fortes volumétries

● SQL Server

Microsoft SQL Server est un système de gestion de base de données relationnelle


développé par Microsoft. En tant que serveur de base de données, il est un produit de logiciel
avec la fonction principale de stockage et de récupération de données tel que demandé par
d'autres applications logicielles pouvant circuler sur le même ordinateur ou sur un autre
ordinateur dans un réseau (y compris l'Internet). Microsoft SQL Server fait désormais partie
de la stratégie technique de Microsoft, en matière de base de données. Le moteur MSDE qui
est à la base de SQL S server doit à terme remplacer le moteur Jet (qui gère les bases Access),
dans les applications telles qu’Exchange et Active Directory.

Avantages :

✔ Aisance dans l’administration ✔ La base la plus


performante sous Windows en configuration par défaut ✔
Services web
✔ Gestion de l’indexation textuelle ✔ Sous-Select possible
dans la clause FROM ✔ Procédure stockée simple à écrire
Inconvénients :
✔ Pas de prise en charge LDAP ✔ Distribution fortement
liée au système d’exploitation ✔ Mono plateforme (MS

Windows) ✔ Pas certifié SQLJ, pas d’intégration Java,


orientation C#

● Oracle Database

Oracle est un système de gestion de base de données relationnel (SGBDR) qui depuis
l'introduction du support du modèle objet dans sa version 8 peut être aussi qualifié de système
51
de gestion de base de données relationnel-objet (SGBDRO). Fourni par Oracle Corporation, il
a été développé par Larry Ellison, accompagné d'autres personnes telles que Bob Miner et Ed
Oates.

Oracle n’est pas un SGBD optimisé pour de petites entreprises ayant de petits volumes de
données et un peu d’utilisateurs (une vingtaine). Si la gestion des données devient importante
et le nombre d’utilisateurs devient également grandissant alors la nécessité quant au choix
d’un SGBD performant s’impose, et Oracle est une solution. Oracle entreprise

Oracle Standard Edition Oracle Personnal Edition Oracle Database 11g Express Edition
Avantages :
✔ SGBD le plus portable (machines/architectures) ✔ SGBD le plus utilisé
(48% marché global), ✔ SGBD le plus riche en termes de fonctionnalités ✔
SGBD le plus tenable ✔ Larges solutions d'accès (tous langages et toutes
technologies) ✔ Pas mauvais sur le marché de la haute dispo, gestion des
clusters, etc.
✔ Gestion centralisée de plusieurs instances ✔ Service web ✔ Support XML
Inconvénients :

✔ Gourmant en ressources mémoire (RAM) pour une bonne performance ce qui


implique des investissements matériels non négligeables
✔ Cout élevé pour l’octroi des licences.

2. Choix du SGBD
A l’issu de l’étude comparative des différents systèmes de gestion de base de données
(SGBD), notre choix s’est porté sur MYSQL. Il est un connu par sa simplicité et adapté pour
une structure de petite taille. En plus d’avoir une interface conviviale mais aussi il assure
l’intégrité des données donc sécurisé. L’une des principaux atouts du SGBD MYSQL est en
plus d’assurer la gestion de la transaction mais aussi est disponible sur plusieurs plateformes
dont Windows, Linux, Mac Os X. Il offre un outil d’administration appelé phpmyadmin sous
Windows.

Chapitre IV : Architecture et Implémentation

I. Architecture
1. Présentation

a. L’architecture deux-tiers

L’architecture à deux niveaux caractérise les systèmes clients/serveurs pour lesquels le client
demande une ressource et le serveur la lui fournit directement, en utilisant ses propres
52
ressources. Cela signifie que le serveur ne fait pas appel à une autre application afin de fournir
une partie du service.

Figure 26 : Architecture à deux niveaux

b. L’architecture 3-tiers

Dans l’architecture à 3 niveaux, il existe un niveau intermédiaire, c'est-à-dire que l'on a


généralement une architecture partagée entre :
✔ Un client, c'est-à-dire l'ordinateur demandeur de ressources, équipée d'une interface
utilisateur chargée de la présentation ;
✔ Le serveur d'application (appelé également middleware), chargé de fournir la ressource
mais faisant appel à un autre serveur
✔ Le serveur de données, fournissant au serveur d'application les données dont il a
besoin.

53
Figure 27 : l’architecture à 3-tiers

c. L’architecture n-tiers

Figure 28 : l’architecture à n-tiers

2. Choix de l’architecture

54
Notre choix se porte sur l’architecture 3-tiers car elle est une architecture client/serveur
dans laquelle les applications au niveau serveur sont délocalisées, c'est-à-dire que chaque
serveur est spécialisé dans une tâche (serveur web/serveur de base de données par exemple).
L'architecture à trois niveaux permet :

✔ Une plus grande flexibilité/souplesse ;


✔ Une sécurité accrue car la sécurité peut être définie indépendamment pour chaque
service, et à chaque niveau ;
✔ De meilleures performances, étant donné le partage des tâches entre les différents
serveurs.
II. Implémentation
Présentation de quelques écrans

Page de connexion

Page d’ajout d’élève

55
56
Page de modification et de suppression

57
CONCLUSION GENERALE

Le travail sur l’application a augmenté, en particulier sur les applications de gestion car
c'est l'un des domaines motivants et importants. Dans notre mémoire, nous avons introduit
l'application web de la gestion d’école coranique.

Dans ce travail, nous avons essayé de developper une application web pour toutes les
écoles coraniques. Dans cette application, nous avons essayé́ de rendre facilitez la gestion des
écoles coraniques et faciliter la communication entre les utilisateurs de l'école coranique et
fournir à l'étudiant tous les besoins pour faciliter la mémorisation.

L'amélioration des performances pour étendre les fonctionnalistes des applications


d’administration de l'école coranique est l'une des choses sur lesquelles nous travaillerons à
l'avenir, qui est considérée comme une perspective, pour obtenir l'assistance maximale pour
les utilisateurs des écoles coraniques. Nous espérons à l'avenir que l'application web pourra
être étendue et mise à la disposition des développeurs pour améliorer et ajouter de nouvelles
fonctionnalités à cette application web.

58
BIBLIOGRAPHIE
I. Mémoires

Amrane Samia : Conception et réalisation pour la gestion de la scolarité

II. Cours d’UML M. Wane : cous d’UML

III. Ouvrages

Pascal Roques, UML 2 par la pratique : Études de cas et exercices corrigés, 364 pages

WEBOGRAPHIE

Https://angular.io

https://www.typescriptlang.org

https://www.cours-gratuit.com

https://datascientest.com https://mercator.eu

59
https://www.Mcours.com

https://www.openclassrooms.com

https://www.memoireonline.com

https://www.grafikart.fr

https://www.developpez.com

https://www.w3shool.com

ANNEXES

Annexe : UML
UML, langage de modélisation objet, est récent mais déjà très référencé (qu’il s’agisse
d’ouvrages ou de sites Internet) et dispose de nombreux outils. Notez qu’UML est ouvert et
n’est la propriété de personne. Après avoir cité quelques méthodes objet, ce chapitre présente
succinctement UML : une définition, des généralités, un court historique, une bibliographie et
des outils (i.e. ateliers de génie logiciel).

60
1. Un langage unifié pour la modélisation objet
UML (Unified Modeling Language) est un langage unifié pour la modélisation objet.

✔ UML est un langage (de modélisation objet) et propose donc une notation et une
sémantique associée à cette notation (i.e. des modèles), mais pas de processus (i.e. de
démarche proposant un enchaînement d’étapes et d’activités qui mènent à la résolution
d’un problème posé) ; UML n’est donc pas une méthode.
✔ UML a une approche entièrement (i.e. couvrant tout le cycle de développement :
analyse, conception et réalisation) objet (et non fonctionnelle) : le système est
décomposé en objets collaborant (plutôt qu’en tâches décomposées en fonctions plus
simples à réaliser).

2. Quelques généralités
✔ UML est conçu pour modéliser divers types de systèmes, de taille quelconque et
pour tous les domaines d’application (gestion, scientifique, temps réel, système
embarqué). ✔ UML permet de diviser le système d’information (d’une organisation) en
le système métier et le système informatique. Le système métier modélise les aspects
statiques et dynamiques de l’activité selon une vision externe et une vision interne (en
ignorant l’implémentation technique) tandis que le système informatique recouvre la
partie automatisée du système métier concrétisant les choix effectués parmi les différentes
technologies d’actualité. Les concepts manipulés sont les mêmes, à chacun de ces deux
niveaux d’abstraction.

TABLE DES MATIÈRES


A LA MEMOIRE DE …………………………………………………………………….05

DÉDICACE………………………………………………………………………………. .06

REMERCIEMENT………………………………………………………………………..07

AVANT-PROPOS…………………………………………………………………………08

SOMMAIRE……………………………………………………………………………….09

GLOSSAIRE………………………………………………………………………………10

LISTE DES FIGURES……………………………………………………………………11

LISTE DES TABLEAUX…………………………………………………………………13

RÉSUME…………………………………………………………………………………..14

ABSTRACT……………………………………………………………………………….15
61
INTRODUCTION GÉNÉRALE…………………………………………………………16

CADRES THÉORIQUE ET ÉTHODOLOGIQUE…………………………………….18

Chapitre I : Cadre théorique…………………………………….…………………….....19

I. Présentation de la structure…………………………………………….………...19
1. Description de l’école Al
Hidaaya………………………………………..19
2. Organigramme………………………………………………………
…….19
3. Présentation du lieu de
stage……………………………………………..20
II. Description du sujet……………………………………………………………….21
1. Problématique………………………………………………………
……..21
2. Objet de
l’étude…………………………………………………………....21 III. Étude
de l’existant……………………………………………………………..….21

Chapitre II : Cadre méthodologique…………………………………………………….22

I. Méthode d’analyse et de conception……………………………………………..22


1. Étude méthodologique……………………………………………………22
2. Choix de méthode de conception………………………………………...28

ANALYSE ET CONCEPTION………………………………………………………….35

Chapitre III : Analyse du système……………………………………………….36


I. Analyse des besoins………………………………………………………………36
1. Les besoins fonctionnels………………………………………………….36
2. Les besoins non fonctionnels……………………………………………..36
Chapitre IV : Conception du système
II. Diagramme de séquence de conception ……………………………………….48
III. Diagramme de classe de conception…………………………………………....52
IV. Diagramme de déploiement…………………………………………………….54
MISE EN ŒUVRE……………………………………………………………...55
CHAPITRE V : Réalisation
I. Outils de développement
1. Quelques langages de programmation………………………………...56
2. Choix du langage de programmation………………………………….58
3. Étude comparative des framework…………………………………….59
4. Choix du framework……………………………………………………60
II. Présentation des SGBD…………………………………………………………61
1. Étude comparative des SGBD………………………………………….61
2. Choix du SGBD…………………………………………………………63
Chapitre IV : Architecture et Implémentation………………….……………64
I. Architecture……………………………………………………………………..64
1. Présentation……………………………………………………………..64

62
2. Choix de l’architecture…………………………………………………66
II. Implémentation…………………………………………………………………67
CONCLUSION GÉNÉRALE…………………………………………………70
BIBLIOGRAPHIE……………………………………………………………..71
WEBOGRAPHIE………………………………………………………………72
ANNEXE………………………………………………………………………..73
TABLE DES MATIÈRES……………………………………………………..74
IV. Cadres théorique et méthodologique………………………………………….. 17
7. Cadre théorique ……………………………………………………………… 18
8. Cadre méthodologique ………………………………………………………. 21
V. Analyse et conception…………………………………………………………….34
9. Analyse ………………………………………………………………………... 35
10. Conception ……………………………………………………………..............45
VI. Mise en œuvre ……………………………………………………………………08
9. Réalisation………………………………………………………………………08
10. Implémentation………………………………………………………………...09

Conclusion générale ………………………………………………………………………...

63
64

Vous aimerez peut-être aussi