Memoire - Adama Seye E - Vote - UASZ
Memoire - Adama Seye E - Vote - UASZ
Memoire - Adama Seye E - Vote - UASZ
recherche et de l’innovation
Le 23/03/2019
Membres du jury : Sous la direction de :
RESUME
L’Université Assane SECK de Ziguinchor fonctionne grâce à des entités bien structurées en
son sein. L’organisation hiérarchique de l’Université définit un ensemble de postes occupés par
le personnel qui y travaille.
Certains de ces postes nécessitent une élection. Au sein de l’Université, un ensemble d’élections
est organisé pour des groupes bien spécifiques tels que le personnel enseignant et de recherche
(PER), le personnel Administratif, technique et de services (PATS) et les étudiants. Chaque
élection est supervisée par un responsable de service (DRH, CSP, etc.). L’organisation des
élections à l’UASZ est très pénible. En effet, elle prend beaucoup de temps sur sa mise en place
(ouverture et fermeture des dépôts de candidats souvent rallongée). Le taux de participation est
souvent faible. La note d’information n’est pas reçue par tous les concernés et enfin, des erreurs
apparaissent sur le comptage des voix ce qui entrave la transparence du vote.
C’est ainsi que dans ce sujet de mémoire, nous comptons mettre en place un système de vote
afin de répondre mieux aux exigences détaillées par le DRH, le Chef de Service Pédagogie, et
même les étudiants. Après des enquêtes et des entretiens menés auprès des acteurs concernés,
nous avons penché notre travail sur le cycle de développement SCRUM. Néanmoins, une
spécification claire nous a permis de définir des modèles de conception grâce au langage de
modélisation UML, le stockage des données est assuré par le SGBD MySQL. Pour
l’implémentation, nous avons fait appel au langage Java qui nous a permis de disposer d’un
prototype permettant de gérer une élection de son ouverture à sa fermeture en permettant l’envoi
des notes d’information aux électeurs, les dépôts de candidatures, le vote, le suivi en temps réel
des statistiques du scrutin, l’impression et l’envoi par mail des PV.
i
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique : application aux
élections organisées à l’UASZ »
ABSTRACT
Assane SECK University of Ziguinchor is a full-fledged organization operating through well-
structured entities within it. The hierarchical organization of the university defines a set of
positions occupied by the staff who work there.
Some of these positions require an election. Within the university, we have a set of elections
organized on very specific groups such as teaching and research staff (PER), administrative,
technical and service staff (PATS) and students. A person (HRD, pedagogical officer, etc.
supervises each election ...). The organization of these elections can be very delicate. Indeed,
the traditional election (that is to say with the ballot box) is painful and can take a long time;
the participation rate in an election is often low because the information note does not pass
enough. There are also errors that can occur on counting votes. In addition, we have visible
problems with the transparency of the vote.
Thus in this subject of memory, we intend to set up a voting system in order to meet as much
as possible the detailed requirements by the HRD, the pedagogical officer and even the students.
After surveys and interviews with stakeholders, we looked at the SCRUM development cycle.
Nevertheless, a clear specification allowed us to define design models thanks to the UML
modeling language, data storage is provided by the MySQL database. For the implementation,
we used the Java language which allowed us to have a prototype to manage an election from its
opening to its closing by allowing the sending of the information note to the voters, the
applications, the choice of the candidate (by voting), the blocking of access after voting and the
supervision of the polling statistics and the printing and sending by e-mail of the minutes of the
results.
ii
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique : application aux
élections organisées à l’UASZ »
DEDICACES
C’est avec une profonde gratitude et sincères mots, que je dédie ce modeste travail de fin
d’études à mes chers parents qui ont sacrifié leur vie pour ma réussite. Ils m’ont guidé et ils
m’ont éclairé le chemin par leur conseil judicieux. J’espère qu’un jour, je pourrais leur
rendre un peu de ce qu’ils ont fait pour moi, que Dieu leur accorde tout le bonheur du monde
et longue vie.
Ce travail est dédié aussi à mes frères, sœurs et amis pour leur amour, leur soutien et leurs
encouragements.
iii
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique : application aux
élections organisées à l’UASZ »
REMERCIEMENTS
Je ne saurais débuter ce mémoire sans remercier toutes les personnes de bonne volonté qui
n’ont ménagé aucun effort pour la réalisation de ce modeste travail de mémoire de fin d’études.
Je tiens à remercier mon encadrant Mr Khadim pour son implication dans l’ensemble du
travail. Vous avez consacré beaucoup de temps à m’apporter des outils et conseils
indispensables à la bonne conduite du projet.
Un grand merci à la communauté estudiantine qui a manifesté un grand intérêt sur ce sujet. Ils
ont exprimé leur envie d’un changement dans l’organisation des élections à l’UASZ.
Enfin, je remercie mes amis et camarades de promotion pour ces années passées ensemble.
Merci à tous.
iv
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique : application aux
élections organisées à l’UASZ »
SOMMAIRE
RESUME ..................................................................................................................................... i
ABSTRACT ............................................................................................................................... ii
DEDICACES ............................................................................................................................ iii
REMERCIEMENTS ................................................................................................................. iv
LISTE DES FIGURES .............................................................................................................. ix
LISTE DES TABLEAUX ......................................................................................................... xi
LISTE DES ABBREVIATIONS ............................................................................................. xii
INTRODUCTION GENERALE ................................................................................................ 1
CHAPITRE I : CONTEXTE JUSTIFICATIF DU SUJET DE MEMOIRE .............................. 3
I. Etat de l’art sur les systèmes de vote électronique.............................................................. 3
I.1 Présentation des différents moyens de vote ...................................................................... 3
I.2 Historique du vote électronique ........................................................................................ 4
I.3 Les environnements contrôlés et non contrôlés ................................................................ 5
a) Les environnements contrôlés ..................................................................................... 5
b) Les Environnements non contrôlés.............................................................................. 5
I.4 Présentation de certains systèmes de vote par internet ..................................................... 6
a) Le système HELIOS .................................................................................................... 6
b) Le système BELENIOS ............................................................................................... 7
I.5 Les enjeux sur l’utilisation des systèmes de vote par internet .......................................... 8
II. Présentation et étude des différentes élections organisées au sein de l’UASZ ............... 8
II.1 Les différentes élections organisées à l’UASZ ................................................................ 9
a) L’élection de Vice-recteurs ......................................................................................... 9
b) L’élection des membres du CA ................................................................................. 10
c) L’élection du Directeur d’UFR .................................................................................. 10
d) L’élection du Chef de département ........................................................................... 10
e) L’élection des délégués des étudiants ........................................................................ 10
f) L’élection du président de l’amicale des étudiants .................................................... 11
III. Problèmes rencontrés sur l’organisation des élections .................................................. 13
III.1 Le temps et le travail fastidieux sur l’organisation des élections ................................. 13
III.2 Problème de transparence et de fiabilité ..................................................................... 13
III.3 Le faible taux de participation ...................................................................................... 14
III.4 La participation simultanée à plusieurs élections ......................................................... 14
v
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique : application aux
élections organisées à l’UASZ »
vi
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique : application aux
élections organisées à l’UASZ »
vii
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique : application aux
élections organisées à l’UASZ »
viii
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique : application aux
élections organisées à l’UASZ »
ix
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique : application aux
élections organisées à l’UASZ »
x
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique : application aux
élections organisées à l’UASZ »
Tableau 12: Description du cas d'utilisation "imprimer procès-verbal des résultats" .... 33
xi
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique : application aux
élections organisées à l’UASZ »
CA : Conseil d’Administration
JS: JavaScript
xii
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique : application aux
élections organisées à l’UASZ »
PV: Procès-Verbal
xiii
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique : application aux
élections organisées à l’UASZ »
INTRODUCTION GENERALE
Pour faire régner la démocratie et la transparence, la société humaine a toujours trouvé les
moyens nécessaires lui permettant de faire les choses de façon équitable et compréhensible par
tout un chacun. Le vote s’est imposé comme un idéal en matière d’équité et de fiabilité.
Les votes peuvent être internes (concernant une organisation ou une institution) ou externes,
c’est-à-dire à l’échelle régionale ou nationale (par exemple les élections communales ou
présidentielles).
Les élections organisées à l’UASZ sont nombreuses et concernent les différents acteurs de
l’institution. Chaque élection a ses règles et critères d’organisation bien définis.
Les votes sont faits aujourd’hui suivant le système traditionnel, plus précisément l’urne avec
comptage manuel des voix.
Au sein de l’université, les votes se font en utilisant l’urne ; les électeurs se présentent au niveau
d’une salle et procèdent au vote en déposant une enveloppe contenant le bulletin choisi au
niveau de l’urne ; le dépouillement et la proclamation des résultats se font en présence des
différents candidats ou de leurs représentants. Le vote par mail ou par procuration est également
permis à ceux qui ne sont pas sur place.
Malgré leur caractère transparent, ces moyens de vote engendrent aussi certains problèmes. En
effet, la gestion, ainsi que l’organisation d’une élection peuvent s’avérer fastidieuses. Beaucoup
de temps sont perdus sur l’organisation et la communication sur l’ouverture du scrutin n’est pas
optimale ; ce qui peut, en conséquence, jouer sur le taux de participation. Le comptage manuel
des voix est certes sûr, mais rien ne garantit l’absence d’erreurs de comptage.
Un autre procédé de vote est aussi utilisé à l’UASZ, c’est le vote par correspondance qui peut
aussi présenter certains problèmes en termes de transparence et de fiabilité.
Face à ces problèmes, nous nous sommes intéressés aux différents modes de scrutin de l’UASZ
et avons réfléchi sur des solutions permettant de les alléger.
Nous avons ainsi proposé la mise en œuvre d’un système de vote électronique en ligne
permettant d’assurer de façon efficace l’organisation et le déroulement d’élections tout en
garantissant la sécurité et la transparence.
1
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique : application aux
élections organisées à l’UASZ »
Pour réaliser les fonctionnalités attendues, nous avons fait appel aux principes et démarches du
génie logiciel en faisant notre choix sur un processus de développement bien précis tel que
SCRUM. Pour l’analyse et la conception, nous avons utilisé le langage de modélisation UML.
Nous nous sommes focalisés sur l’organisation et le déroulement des votes en prenant en
compte les acteurs concernés et les critères définis pour chaque élection.
2
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
3
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
peuvent être classés en deux catégories selon que le bulletin de vote est dématérialisé
ou pas. Pour le bulletin de vote dématérialisé, chaque électeur exprime son suffrage en
appliquant une force motrice sur une pièce (bouton, levier) qui, par le jeu d’autres
éléments mécaniques, a pour résultat d’incrémenter un compteur correspondant au
choix initial. Pour le bulletin de vote matérialisé, chaque électeur s’exprime via un
dispositif mécanique qui perfore une carte en un emplacement correspondant à son
choix. Un second dispositif, électromécanique ou électronique, réalise le comptage des
voix en parcourant l’ensemble des cartes perforées qui lui sont remises.
Le vote électronique :
Il existe une grande variété de dispositifs de vote électronique, mais tous font intervenir
des traitements fondés sur l’électronique lors d’une ou de plusieurs étapes du processus
de vote : expression du vote, émargement, transmission des suffrages, comptage des
voix. Certains sont utilisés en environnement contrôlé, d’autres en environnement non
contrôlé (comme internet, dans ce dernier cas, ils réalisent obligatoirement la gestion
des émargements.). Enfin, les bulletins de vote connaissent des situations très
contrastées selon qu’ils sont dématérialisés, ou matérialisés.
De ces différents moyens utilisés, notre étude va se pencher essentiellement sur le vote
électronique, sur son historique, sur sa mise en application et aussi sur certains problèmes
existants quant à son utilisation.
I.2 Historique du vote électronique
Les scanners sont utilisés pour la première fois en 1962 à Kern City, en Californie. Ils
constituent la plus ancienne forme de vote électronique. Les électeurs s’expriment en cochant
les cases de leur choix sur le bulletin habituel. À la fin du vote, les bulletins nourrissent un
scanner qui fournit le décompte des suffrages.
Les ordinateurs de vote apparaissent en 1975 aux Pays-Bas et se répandent en Inde, au Brésil,
en Belgique, aux États-Unis, et marginalement en France à partir de 2004. Pour exprimer leur
choix, les électeurs interagissent directement avec le dispositif via des boutons physiques, un
écran tactile, ou encore un pavé numérique. Les suffrages sont enregistrés directement dans
une mémoire. À la clôture de la période de vote, le dispositif fournit les résultats électoraux par
affichage ou impression d’un ticket. Certains ordinateurs de vote transmettent également leurs
résultats vers le bureau centralisateur.
Le concept d’ordinateur de vote avec trace papier émerge en 2000 afin de pallier l’impossibilité
de vérifier les résultats émis par un ordinateur de vote : lorsque l’électeur a confirmé les choix
4
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
qu’il a émis, l’ordinateur imprime un ticket portant les choix exprimés. Ce bulletin, dont
l’électeur peut vérifier la justesse, est ensuite dirigé vers une urne à des fins d’éventuelles
vérifications des résultats.
Depuis donc les années 2000, les systèmes de vote ont connu pas mal d’évolution. Néanmoins,
chaque système fonctionne selon un environnement contrôlé ou non contrôlé [1].
code pour s’identifier et la liste des chiffres lui permettant d’exprimer son choix. Durant la
période de vote, il s’exprime en envoyant un SMS contenant ce code et le chiffre correspondant
à son choix.
Nous avons aussi le vote par Internet où les électeurs procèdent au vote depuis n’importe quel
ordinateur connecté à la toile ; la contrainte géographique est absente. Il faut se connecter sur
le site officiel de vote, site hébergé sur l’ordinateur du bureau centralisateur (le serveur). Le
vote se déroule alors plus ou moins comme sur un kiosque.
Actuellement, beaucoup de systèmes de vote fonctionnent sur un environnement non contrôlé ;
le principal défi reste la question de la sécurité et de la transparence des votes. Le vote par
internet est le plus utilisé. Diverses applications ont été conçues pour favoriser ce type de vote
[1].
I.4 Présentation de certains systèmes de vote par internet
Il existe un grand nombre de systèmes de vote électronique utilisé. Les critères d’évaluation de
chaque système résident sur l’étude de certains points essentiels tels que la sécurité de vote,
l’authenticité de l’électeur, l’efficacité sur le processus de vote et de dépouillement des
bulletins. Des systèmes comme BELENIOS et HELIOS sont des exemples typiques des
nouveaux systèmes de vote électronique mis en place et qui suscitent notre intérêt pour une
étude [1].
a) Le système HELIOS
HELIOS est un système de vote électronique dont l’objectif est de garantir deux points
essentiels dans la notion de vote : la confidentialité et la vérifiabilité. Il a été développé en 2008.
C'est un logiciel libre sous la licence Apache 2.0.
Sur l’ordinateur client, l'électeur vote en choisissant son candidat. Ce vote est crypté avec une
clé de chiffrement publique. Après identification de l'électeur par un couple identifiant/mot de
passe, le vote est envoyé sur le serveur de vote. Le vote est alors « visible » sur une page web
où une urne publique est présente permettant de vérifier son vote.
Le dépouillement nécessite une clé de déchiffrement privée partagée avant le vote entre trois
ou quatre autorités de déchiffrement (maire, responsables de différents partis, …). Chacune de
ces parties possède une « partie » de la clé de sorte qu'au moins deux parties de la clé soient
nécessaires pour déchiffrer le résultat de l'élection.
Les limites avec ce type de systèmes sont identifiées ; si l'ordinateur de l'électeur est infecté par
un virus, il peut altérer le vote avant son chiffrement. Des solutions sont à l'étude reposant sur
6
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
un autre appareil, tel qu'un téléphone portable permettant de vérifier le vote reçu par l'urne. Des
tentatives d’attaques ont été notées en cours de son utilisation.
Un autre problème, c’est que le système n'a aucune résistance à la coercition. Certains experts
indiquent ainsi qu'un tel système ne doit pas être utilisé dans un vote à fort enjeu où l'achat de
vote est possible (par exemple des élections présidentielles). La question de la transparence est
donc remise en question [1].
b) Le système BELENIOS
BELENIOS constitue une évolution du système HELIOS. BELENIOS est développé sous
licence libre par Stéphane GLONDU (ingénieur de recherche INRIA), en collaboration avec
Pierrick Gaudry (directeur de recherche CNRS).
BELENIOS a été conçu pour éviter les risques de bourrage d’urne même pour un attaquant
contrôlant le serveur de vote.
Dans son principe de fonctionnement, au début de l’élection, chaque électeur reçoit les éléments
nécessaires pour voter, à savoir un login et un mot de passe pour s’authentifier, ainsi qu’un
autre identifiant privé, appelé jeton de vote, qui permettra à l’électeur de prouver qu’il a bien le
droit de voter. Ce jeton de vote est en fait une clé de signature.
La phase de vote est représentée à la figure ci-dessous. À chaque élection, est associée une clef
publique (notée pub. E/ dans la figure). Le chiffrement à clef publique est un système de
chiffrement dit asymétrique : si la clef de chiffrement est publique et tout le monde peut chiffrer,
alors que si la clef de déchiffrement est privée, seules les personnes ayant la clef de
déchiffrement peuvent déchiffrer. Pour voter, l’électeur, via son navigateur, chiffre son choix
vD (0 ou 1) avec la clef publique de l’élection. Ce chiffrement est noté fvDgpub.E/. Il fournit
également la preuve qu’il a bien chiffrée l’une des deux valeurs 0 ou 1 et non une autre valeur.
Le vote chiffré, accompagné de la preuve de validité, est signé par le jeton de vote envoyé
préalablement à l’électeur. L’ensemble forme le bulletin, noté [fvDgpub.E/] jeton D dans la
figure ci-dessous.
Pour la phase de dépouillement, nous avons une clé de déchiffrement subdivisée et confiée à
chaque autorité. Chacune des autorités de déchiffrement contribue au déchiffrement du résultat
chiffré.
7
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
BELENIOS, comme tout système de vote en ligne, ne semble pas adapté à des élections à forts
enjeux, comme des élections politiques (présidentielles, législatives, primaires...). Les risques
d’attaques deviennent accrus. Son ergonomie et son principe d’utilisation peuvent être difficiles
à comprendre pour un utilisateur lambda. D’ailleurs, même son mode de fonctionnement a
toujours été critiqué [1].
I.5 Les enjeux sur l’utilisation des systèmes de vote par internet
La grande question qui subsiste toujours sur l’utilisation des systèmes de vote en ligne est
l’assurance totale de la sécurité et de la transparence de vote. L’utilisation de ces types de
système reste toujours critiquée par des experts qui jugent que les risques d’attaque sont
énormes. Il y a aussi l’utilisation qui peut s’avérer très délicate. Certains de ces systèmes
nécessitent une petite formation à un mois des échéances électorales. Ce qui peut s’avérer très
pénible en termes de coût et de ressources.
Malgré toutes ces limites, nous considérons qu’ils sont efficaces dans la mesure où le processus
de vote devient rapide et efficace. On perd moins de temps dans l’organisation et le comptage
des voix et le délai de proclamation des résultats est court. Les risques d’erreur de comptage
des voix sont inexistants. Pour renforcer les moyens de sécurité, on peut faire appel à des
techniques de cryptographie modernes très puissantes ou même utiliser des serveurs proxy
hautement efficace pour garantir la sécurité. Pour des élections à faibles enjeux, les risques
d’attaques sont minimes et ils pourront être utilisés en intranet au sein d’une organisation (tels
que les entreprises, Universités, etc.) [1].
8
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
L’Université Assane SECK de Ziguinchor (UASZ) est créée par le décret 2008-537 du 22 mai
2008. Elle a démarré ses activités en février 2007 avec (03) Unités de Formation et de
Recherche (UFR) et des Centres et Services communs. Elle a connu pas mal d’avancée et
compte actuellement quatre UFR et dans chaque UFR, nous avons des départements et filières.
Ces UFR sont :
UFR des Sciences et Technologies(ST) ;
UFR Sciences Economiques et Sociales(SES) ;
UFR des Sciences de la Santé(SS) ;
UFR des Lettres, Arts et Sciences Humaines (LASHU).
A côté de ces UFR, nous avons un ensemble de services administratifs et techniques qui veillent
au fonctionnement interne comme externe de l’Université.
Chaque UFR et service sont dirigés par une personne occupant ainsi un poste bien défini dans
la hiérarchie organisationnelle de l’UASZ.
Dans l’organisation de l’Université, nous avons le Recteur qui coiffe le haut rang, suivi des
Vice-recteurs, des Directeurs d’UFR, des Chefs de département, des Directeurs et Responsables
de services (CRI, Bibliothèque, Scolarité, etc.).
Certains de ces postes sont à caractère nominatifs (par exemple, le Recteur est nommé par décret
présidentiel.). D’autres, par contre, font l’objet d’élections internes organisées au sein de
l’université (Chef de département, Directeur d’UFR, Vice-recteur). À côté de ces élections,
nous en avons d’autres à caractère représentatif d’une entité (par exemple celle des délégués).
Chaque élection a son collège électoral. Le collège électoral constitue les règles et conditions
pour la participation des membres à l’élection. Par exemple, le collège électoral de l’élection
du vice rectorat (membre de conseil d’administration et professeur de rang A) est différent de
celui de l’élection des délégués d’étudiants (étudiant de master 2 et de Licence 3 non-éligible)
Ces différentes élections sont décrites dans les sections qui suivent.
a) L’élection de Vice-recteurs
Ce scrutin concerne les deux postes de Vice-recteurs : Vice-recteur chargé des Études et de la
Vie de l’Université (EVU) et Vice-recteur chargé de la Recherche, de la Coopération et des
relations avec le monde professionnel. C’est une élection très fermée ; le collège électoral est
constitué des membres du conseil d’administration (CA) ; le candidat doit être un enseignant
de rang A (Professeur titulaire ou Maître de Conférence CAMES) et membre du CA.
9
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Dans ce scrutin, le vote par procuration est permis, c’est-à-dire qu’on peut voter pour une
personne absente s’il nous délègue cette tâche. Cette élection se fait sous la supervision de la
direction des ressources humaines (DRH).
b) L’élection des membres du CA
Cette élection permet aux PER, PATS ainsi qu’aux étudiants de désigner respectivement leurs
représentants au CA. Les enseignants de rang A choisissent 7 membres parmi eux, les
enseignants de rang B 14 parmi les pairs, le PATS choisit 2 et les étudiants auront 4 membres
(c’est-à-dire les présidents élus des différentes UFR) au conseil d’administration. Cette élection
est un peu particulière ; les électeurs peuvent voter pour autant de candidats possibles selon le
nombre de sièges à pourvoir ; de même, chaque électeur ne peut voter que pour la catégorie à
laquelle il appartient.
Les syndicats des enseignants et du personnel administratif désignent également leurs
représentants au CA. Ces choix se font d’interne.
Le vote par correspondance de même que le vote par envoi de courrier électronique sont
acceptés.
10
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Avant que les élections ne soient lancées, l’UFR affiche un communiqué d’ouverture des
candidatures pour les étudiants voulant être délégués. Puis, chaque candidat se présente à l’UFR
auprès du CSP pour déposer sa candidature. Un autre facteur doit être pris en compte : si pour
une classe, on a un effectif inférieur ou égal à 50 étudiants, elle aura un seul délégué ; si l’effectif
est supérieur à 50 étudiants, elle aura deux délégués. Si pour une classe, on a une seule
candidature, le vote ne sera pas nécessaire, car la classe a donné son consentement.
Pour le déroulement, l’UFR et la classe concernée vont trouver des heures creuses pour
procéder au vote. Le CSP et son équipe vont venir à la classe et superviser le vote. Les étudiants
vont faire leur choix et les déposer dans l’urne. Une fois le vote fini, le CSP procède au
dépouillement et proclame ensuite les résultats.
11
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
12
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
13
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
14
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
15
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Permettre la publication des listes imprimées des candidats retenus et des résultats des
scrutins de vote.
16
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Les méthodes agiles dans leur fonctionnement favorisent une meilleure compréhension des
objectifs à atteindre sur un projet. Elles permettent ainsi un développement incrémental selon
les nouvelles exigences des clients. Un suivi permanent est donc établi sur tout le processus de
développement. La relation fluide avec le client est fortement conseillée. L’équipe de
développement est organisée et hiérarchisée et les tâches définies pour chacun. Des réunions
récurrentes sont effectuées pour évaluer l’avancée du projet.
Dans cette partie, notre intérêt porte essentiellement sur l’utilisation de la méthode SCRUM
pour la réalisation de notre projet.
Elle est une des nombreuses méthodes agiles, existantes. Elle permet le suivi en permanence de
tout le processus de développement et permet d’intégrer de nouveaux besoins pris en compte
dans le cahier de charge.
Dans ce chapitre, nous allons d’abord faire une étude comparative entre les méthodes
traditionnelles et agiles, ensuite présenter le Framework SCRUM et enfin essayer de l’adapter
à notre cycle de développement.
La modification faite sur une étape va impacter sur l’ensemble du projet. Chaque
modification doit être minutieusement établie afin d’éviter de grands changements sur
le processus de développement.
Avec le modèle en cascade, le planning est établi à l’avance et le chef de projet sait précisément
ce qui va lui être livré et quand il pourra en prendre livraison.
L’inconvénient du modèle en cascade est principalement sa faible tolérance à l’erreur (les
anomalies sont détectées tardivement) qui induit automatiquement un coût important en cas
d’anomalie.
I.2 Modèle en V
Nous avons vu précédemment le modèle en cascade, ce système imparfait a fait apparaître dans
les années 80 un nouveau modèle qui est celui en V.
La caractéristique principale de ce processus est que chaque étape de conception fonctionne en
binôme avec une phase de test (validation). Ensuite, plus on avance dans l’étude plus le niveau
de détails est important.
Les étapes de tests sont aussi nombreuses que les étapes de conceptions et réflexions, ce qui
permet un risque d’erreur moins élevé. Ainsi, le cahier des charges sera d’autant plus respecté.
Malheureusement, ce modèle est rarement utilisé tel quel et le V est bien souvent déséquilibré,
tantôt côté analyse, tantôt côté recette et la marge d’erreur est bien souvent proportionnelle à la
marge de liberté prise par rapport au modèle théorique.
I.3 Modèle en Y
La réalisation du système consiste à fusionner les résultats des évolutions fonctionnelles et
techniques pour former ainsi un processus de développement en Y. Les étapes fonctionnelles
(analyse et conception) sont faites en parallèle avec les étapes techniques (codage). Le grand
avantage du modèle est de permettre la réutilisation des modèles. Des modèles bien faits
peuvent être réutilisés à chaque fois dans d’autres projets. Il suffira juste de les adapter sur le
contexte du projet en cours.
Le principal problème du cycle en Y est la difficulté d’adaptation sur un projet. Son utilisation
requiert une certaine maîtrise et connaissance de gestion de projet.
Il existe un grand nombre de méthodes traditionnelles dont chacune a ses propres particularités.
18
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
19
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Dans cette partie, nous allons détailler les différences existant entre les deux méthodes par un
l’aide d’un tableau récapitulatif.
20
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Avec toutes ces différences énumérées, nous pouvons constater que les méthodes agiles
semblent être plus adéquates pour des projets itératifs et incrémentaux. Avec l’approche agile,
le client est donc plus impliqué et il peut à chaque fois, exprimer de nouveaux besoins à prendre
en compte sur le projet. Parmi toutes les méthodes agiles existant, notre choix s’est orienté sur
SCRUM, car son utilisation est plus simple et plus adaptée à notre projet.
21
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Le Scrum Master a pour rôle de vérifier l’application des principes de Scrum, s’assurer
que la communication fonctionne correctement au sein de l’équipe et explorer toutes les
pistes d’améliorations en termes de productivité et de savoir-faire ;
L’équipe Scrum regroupe généralement une dizaine de personnes (mais de très gros
projets peuvent rassembler plusieurs dizaines de personnes) chargées de la réalisation
des différentes tâches. Chaque membre est au même niveau, il n’y a pas de hiérarchie
et chacun peut contribuer en fonction de ses compétences ;
Enfin, le Product Owner est un expert du processus métier du client ; il définit les
spécifications fonctionnelles et arbitre les priorités dans les réalisations [2].
22
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Contrairement à une méthode classique comme la cascade, le cycle projet scrum permet une
plus grande adaptabilité de l’équipe. Le point quotidien permet de repérer rapidement toute
difficulté et ainsi prévenir tout dérapage dans le déroulement du projet. L’usage du product
backlog, des sprints et des démonstrations apportent à la fois la souplesse et la rigueur
nécessaire à la réalisation du projet et à la satisfaction du client [2].
23
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
24
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Notre travail s’appuiera essentiellement sur le langage UML (Unified Modeling Language)
dont la traduction française est « langage de modélisation unifié). C’est un langage de
modélisation purement orienté objet.
UML nous permet de mettre en place des modèles spécifiques qui permettent de cerner le champ
d’étude d’un projet. Il décrit clairement les besoins spécifiques du projet et propose des
solutions fonctionnelles et techniques grâce à l’utilisation de ses diagrammes.
Actuellement, UML comporte quatorze types de diagramme (diagramme de profils qui est le
nouveau), représentant autant de vue distincte pour représenter des concepts particuliers du
futur système. La modélisation s’effectue sous deux principaux aspects que sont la modélisation
statique (vue statique du système) et la modélisation dynamique (vue dynamique avec les
interactions entre objets).
Nous traduirons dans cette partie, les besoins exprimés en spécifications fonctionnelles grâce à
l’utilisation d’UML. Et après, nous essayerons de faire une analyse des besoins en proposant
des modèles.
25
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Dans notre cas, le tableau ci-dessous détaille l’ensemble de nos acteurs agissant sur le système.
Tableau 4: Identification des acteurs
26
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Fonctionnalités Acteur(s)
S’authentifier Admin, Candidat, Electeur, Superviseur
Créer une élection Admin
Gérer les utilisateurs (ajouter, modifier, Admin
supprimer)
Gérer les postes liés à une élection Admin
Attribuer une élection à un superviseur Admin
Gérer les UFR Admin
Gérer les Départements Admin
Gérer les services Admin
Publier note d’information sur l’ouverture Superviseur
du scrutin par courriel électronique
Voir la liste des candidats inscrits pour Superviseur
une élection
Voir la liste des électeurs d’une élection Superviseur
Visualiser l’avancé du vote (visualiser Superviseur
électeurs votant et électeurs non votant) et
les résultats provisoires
Publier les résultats avec impression du Superviseur
procès-verbal
Déposer sa candidature Electeur
Modifier ses informations Candidat
Retirer sa candidature Candidat
Effectuer un vote Electeur, Candidat
Ouvrir une élection Superviseur
Valider une candidature Superviseur
Retirer un candidat Superviseur
27
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Il permet ainsi de recueillir, d’analyser et d’organiser les besoins, et de recenser les principales
fonctionnalités d’un système. Il montre aussi les interactions existant entre acteurs et cas
d’utilisation, entre cas d’utilisation (inclusion, extension, généralisation), et entre acteurs
(généralisation). Dans notre cas, nous avons trois diagrammes de cas d’utilisation selon les
acteurs concernés.
a) Diagramme de cas d’utilisation de l’administrateur
Le diagramme de cas d’utilisation de l’administrateur permet de représenter les fonctionnalités
auxquelles cet acteur a accès à notre système.
28
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Le superviseur gère toute la procédure de l’élection, il envoie une note d’information aux
électeurs dès l’ouverture de l’élection. Il valide ainsi les candidatures déposées et envoie en
retour la liste des candidats inscrits. Au déroulement du scrutin, il peut visualiser les résultats
provisoires ainsi que les taux de participation et publier le PV de résultat.
29
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Identification
Cas numéro 1
Nom S’authentifier
Acteur(s) tous les utilisateurs du système
Description Avant toute manipulation du système, faudra procéder à une
authentification
Auteur Adama SEYE
Date(s) 20/06/2018
Préconditions Aucun
Démarrage l’utilisateur lance l’application et essaie d’entrer dans une
fonctionnalité
Scénario nominal
1 Au lancement de l’application, un formulaire d’authentification
est lancé
2 Dans ce formulaire, il demande à l’utilisateur de donner son
login et son mot de passe
3 Si les informations saisies par l’utilisateur sont correctes, il lui
envoie un message confirmant connexion réussie et on note une
ouverture du formulaire voulu
Scénarios alternatifs
1a L’utilisateur peut décider de quitter même l’authentification
2a L’utilisateur peut entrer un login et un mot de passe incorrect où
il devra réessayer la saisie
3a L’accès sera refusé à toute personne ne faisant pas partie de la
base (qui n’est ni un électeur, ni un candidat, ni un superviseur)
Post condition (aucun)
Fin (fin à l’étape 3, 1a ,2a, 3a)
30
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Identification
Cas numéro 2
Nom Voir liste des candidats
Acteur(s) Superviseur
Description Il permet de lister l’ensemble des candidats pour chaque élection
Auteur Adama SEYE
Date(s) 20/06/2018
Identification
Cas numéro 3
Nom Voir liste des électeurs
Acteur(s) Superviseur
Description Il permet de voir l’ensemble des électeurs d’une élection donnée
Auteur Adama SEYE
Date(s) 20/06/2018
31
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Identification
Cas numéro 4
Nom Visualiser le vote
Acteur(s) Superviseur
Description Il permet de voir l’évolution du vote et de voir ceux qui ont voté et
ceux qui n’ont pas encore voté
Auteur Adama SEYE
Date(s) 20/06/2018
Identification
Cas numéro 5
Nom Envoyer note d’information
Acteur(s) Superviseur
Description Il permet d’envoyer des notifications pour avertir les électeurs sur
l’ouverture du scrutin
Auteur Adama SEYE
Date(s) 20/06/2018
32
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Identification
Cas numéro 6
Nom Valider candidature
Acteur(s) Superviseur
Description Il permet au superviseur de vérifier si les critères d’éligibilité sont
remplies ou pas
Auteur Adama SEYE
Date(s) 20/06/2018
33
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Identification
Cas numéro 7
Nom Imprimer procès-verbal des résultats
Acteur(s) Superviseur
Description Il permet d’imprimer le résultat final des votes
Auteur Adama SEYE
Date(s) 20/06/2018
Identification
Cas numéro 9
Nom Déposer Candidature
Acteur(s) Electeur
Description Il permet de déposer sa candidature pour un poste donné
Auteur Adama SEYE
Date(s) 20/06/2018
34
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Identification
Cas numéro 11
Nom Effectuer vote
Acteur(s) Electeur, Candidat
Description Il peut effectuer son vote en faisant son choix pour un candidat
donné
Auteur Adama SEYE
Date(s) 20/06/2018
35
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Identification
Cas numéro 8
Nom Paramétrer une élection
Acteur(s) Superviseur
Description Il permet l’ajout ou bien l’ouverture d’une élection au niveau de la
plateforme et qui sera pris en compte pour l’ouverture du scrutin
Auteur Adama SEYE
Date(s) 20/06/2018
36
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
l’envoi de la note d’information). Si tout est correct, il est redirigé vers son menu et il choisit
l’option « déposer candidature ». Il devra spécifier s’il est étudiant, enseignant ou PATS et
après, un formulaire de candidature lui sera envoyé ; il le renseigne et valide sa candidature. Il
sera ensuite redirigé vers une page de confirmation.
37
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
b. Diagramme d’activité
L’utilisateur s’authentifie en saisissant donc son login et son mot de passe d’accès à la
plateforme. Si les informations sont correctes, il sera redirigé vers le menu électeur avec
38
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
l’option d’effectuer le vote. Il est nécessaire de préciser que le « dépôt des candidatures » et
« effectuer vote » ne se font pas en même temps. Un timing est bien défini pour chaque cas.
Une vérification interne est faite et il sera redirigé vers la liste des candidats où il pourra faire
son choix.
a. Diagramme de séquence
Le superviseur s’authentifie en saisissant son login et son mot de passe d’accès. Après une
connexion réussie, il est redirigé vers la page correspondant. Il choisit l’option « visualiser le
vote », une boîte de dialogue s’ouvre, il choisit sur l’une des élections supervisées, et il est
redirigé vers les résultats du scrutin.
39
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
b. Diagramme d’activité
Le superviseur s’authentifie en saisissant son login et son mot de passe d’accès ; si tout est
correct, il est redirigé vers le menu superviseur et il peut ainsi choisir l’option « visualiser le
vote ».
40
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
41
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
1. Architecture du système
Les architectures basées sur le principe « client-serveur » sont les plus utilisées dans le monde
du développement Ainsi, nous avons tout un ensemble de modèles d’architecture et le plus
utilisé est le modèle MVC. Ce modèle reflète même la présentation de l’architecture 3-Tiers.
a. Modèle MVC
Le pattern MVC (Modèle-Vue-Contrôleur) est l’un des plus célèbres et les plus utilisés dans le
développement web. Le pattern MVC permet de bien organiser son code source. Il va vous
aider à savoir quels fichiers créés, mais surtout à définir leurs rôles. Le but de MVC est
justement de séparer la logique du code en trois parties que l'on retrouve dans des fichiers
distincts :
Modèle : cette partie gère les données. Son rôle est d'aller récupérer les informations
« brutes » dans la base de données, de les organiser et de les assembler pour qu'elles
puissent ensuite être traitées par le contrôleur. On y trouve donc entre autres les
requêtes SQL.
Vue : cette partie se concentre sur l'affichage. Elle ne fait presque aucun calcul et se
contente de récupérer des variables pour savoir ce qu'elle doit afficher au niveau du
navigateur. On y trouve essentiellement du code HTML, mais aussi quelques boucles
et conditions très simples pour afficher par exemple une liste de messages.
42
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Contrôleur : cette partie gère la logique du code qui prend des décisions. C'est en
quelque sorte l'intermédiaire entre le modèle et la vue : le contrôleur va demander au
modèle les données, les analyser, prendre des décisions et renvoyer le texte à afficher
à la vue. Le contrôleur contient exclusivement du code métier. C'est notamment lui qui
détermine si l’utilisateur a le droit de voir la page ou non (gestion des droits d'accès)
[3].
La figure ci-dessous décrit le principe de fonctionnement du modèle MVC.
b. Architecture 3-Tiers
L'architecture trois tiers, également appelée architecture à trois niveaux ou à trois
couches, est une architecture client-serveur dans laquelle coexistent et sont maintenus
des modules indépendants permettant le rendu d'une interface utilisateur (GUI), les
process logiques, fonctionnels et métiers ainsi que l'accès aux données. On parle donc
ici d'une infrastructure physique qui va servir de support à une infrastru cture logicielle
(l'infrastructure trois tiers sous-tend l'infrastructure logicielle) [4]. En effet, n'importe
quelle application peut être découpée en trois parties : une partie interface graphique,
une partie fonctionnelle, et une partie de stockage de données. Et c'est à ces besoins
précis que l'architecture trois-tiers s'est dessinée en découpant trois parties distinctes:
43
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
44
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
2. Diagramme de packages
Un diagramme de packages est un diagramme UML qui fournit une représentation graphique
de haut niveau de l'organisation de l’application, et vous aide à identifier les liens de
généralisation et de dépendance entre les packages.
Les packages de notre système sont :
Authentification : elle gère l’accès par rapport au profil de l’utilisateur ;
Gestion des profils utilisateur : dans ce package, nous avons les différents menus
définis selon le type d’utilisateur. Il est composé de la gestion des menus utilisateurs ;
Gestion candidat : il gère le profil du candidat où il pourra modifier certaines de ses
informations ou retirer sa candidature ;
Gestion électeur : il gère le profil de l’électeur où il pourra déposer sa candidature ou
voter ;
Espace superviseur : dans ce package, le profil superviseur peut gérer les élections et
le suivi ;
Gestion Election : il permet de paramétrer une élection en faisant son ouverture ou
ajouter une élection ;
Gestion des postes : il permet d’ajouter un poste lié à une élection donnée ;
Suivi résultat : ce package gère le suivi du scrutin en imprimant le procès-verbal et en
envoyant ce PV aux destinataires par mail.
45
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
3. Diagramme de déploiement
En UML, un diagramme de déploiement est une vue statique qui sert à représenter l'utilisation
de l'infrastructure physique par le système et la manière dont les composants du système sont
répartis ainsi que les relations entre eux.
L’application doit être légère et performante ; elle peut tourner sur des machines de 2Go de
RAM et 1.80 GHZ de fréquence processeur. Les ordinateurs tiers pourront accéder au serveur
contenu dans une machine d’au moins 8 Go de RAM. La communication est quant à elle assurée
par un réseau internet (soit par la technologie Ethernet ou la technologie wifi sécurisé). Le
système peut aussi fonctionner en intranet.
46
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
47
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
48
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
CHAPITRE V: IMPLEMENTATION ET
PRESENTATION DE L’APPLICATION
Dans ce chapitre, il sera question d’expliquer les grands points de la réalisation de notre système
de vote électronique. L’implémentation va s’appuyer essentiellement sur des résultats fournis
dans la partie conception. La réalisation du système implique un choix minutieux des
technologies, des langages à utiliser et du type de base de données.
I. Implémentation de l’application
Dans cette partie, nous allons présenter les différents outils utilisés pour l’implémentation de
notre système.
a. SGBD (MySQL)
MySQL est un système de gestion de bases de données relationnelles (SGBDR). Il est distribué
sous une double licence GPL et propriétaire. Il fait partie des logiciels de gestion de bases 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.
C’est un serveur de bases de données relationnelles développé dans un souci de performances
élevées en lecture, ce qui signifie qu'il est davantage orienté vers le service de données déjà en
place que vers celui de mises à jour fréquentes et fortement sécurisées. Il est multi-thread et
multi-utilisateur.
C'est un logiciel libre open source, développé sous double licence selon qu'il est distribué avec
un produit libre ou avec un produit propriétaire. Dans ce dernier cas, la licence est payante,
sinon c'est la licence publique générale GNU (GPL) qui s'applique. Un logiciel qui intègre du
code MySQL ou intègre MySQL lors de son installation devra donc être libre ou acquérir une
licence payante. Cependant, si la base de données est séparée du logiciel propriétaire qui ne fait
qu'utiliser des API tiers (par exemple en C# ou PHP), alors il n'y a pas besoin d'acquérir une
licence payante MySQL. Ce type de licence double est utilisé par d'autres produits comme
le Framework de développement de logiciels Qt [5].
49
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
i. Spring Framework
Spring est conçu comme une sorte de boîte à outils, au contraire d'autres Framework.
Les modules peuvent être utilisés de façon indépendante. Spring est d'ailleurs disponible sous
deux formes, celle d'un jar (librairie Java) unique et celle de plusieurs fichiers jar permettant de
ne rajouter au projet que la partie que l'on souhaite utiliser (i.e. Spring Core, Spring Remoting,
etc.).
D'autre part, Spring fournit non seulement des services de type fonctionnel comme par exemple
les transactions mais est également utile d'un point de vue conceptuel en améliorant la qualité
du design. Cela par l'utilisation quasi-systématique d'interface.
ii. Spring boot
Spring Boot est un projet ou un micro Framework qui a notamment pour but de faciliter la
configuration d’un projet Spring et de réduire le temps alloué au démarrage d’un projet. Pour
arriver à remplir cet objectif, Spring Boot se base sur plusieurs éléments :
Un site web (https://start.spring.io/) qui vous permet de générer rapidement la structure de votre
projet en y incluant toutes les dépendances Maven nécessaires à votre application. Cette
génération est aussi disponible via le plugin Eclipse STS.
L’utilisation de « Starters » pour gérer les dépendances. Spring a regroupé les dépendances
Maven de Spring dans des « méga dépendances » afin de faciliter la gestion de celles-ci. Par
exemple si vous voulez ajouter toutes les dépendances pour gérer la sécurité il suffit d’ajouter
le starter « spring-boot-starter-security ».
L’auto-configuration, qui applique une configuration par défaut au démarrage de votre
application pour toutes dépendances présentes dans celle-ci. Cette configuration s’active à partir
du moment où vous avez annoté votre application avec « @EnableAutoConfiguration » ou «
@SpringBootApplication ». Bien entendu cette configuration peut être surchargée via des
50
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
iii. Thymeleaf
Thymeleaf est un moteur de Template Java moderne côté serveur pour les environnements web
et autonomes. L'objectif principal de Thymeleaf est d'apporter des modèles naturels élégants à
votre flux de travail de développement - HTML qui peut être correctement affiché dans les
navigateurs et aussi travailler comme des prototypes statiques, permettant une collaboration
plus forte dans les équipes de développement.
Avec des modules pour Spring Framework, une multitude d'intégrations avec vos outils
préférés, et la possibilité de brancher vos propres fonctionnalités, Thymeleaf est idéal pour le
développement web JVM HTML5 moderne [9].
51
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
i. Bootstrap
Bootstrap est une collection d'outils utiles à la création du design (graphisme, animation et
interactions avec la page dans le navigateur ... etc. ...) de sites et d'applications web. C'est un
ensemble qui contient des codes HTML et CSS, des formulaires, boutons, outils de navigation
et autres éléments interactifs, ainsi que des extensions JavaScript en option. C'est l'un des
projets les plus populaires sur la plate-forme de gestion de développement GitHub [10].
ii. Font-awesome
Font Awesome est un toolkit de polices et d’icônes basé sur CSS et LESS. Il a été conçu par
Dave Gandy pour être utilisé avec Bootstrap, puis a été intégré au BootstrapCDN. Font
Awesome a une part de marché de 20% parmi les sites Web qui utilisent des scripts de polices
tiers sur leur plate-forme, ce qui la place au deuxième rang derrière Google Fonts.
La police Awesome 5 est sortie le 7 décembre 2017 avec 1 278 icônes. La version 5 est proposée
en deux versions: Font Awesome Free et Font Awesome Pro (disponible moyennant un
supplément). Les versions gratuites (toutes les versions jusqu'à 4 et la version gratuite pour 5)
sont disponibles sous licence de licence ouverte Open Font 1.1, Créative Commons Attribution
4.0 et licence MIT [11].
iii. JQuery
JQuery est une bibliothèque JavaScript conçue pour simplifier les scripts HTML côté client. Il
s’agit d’un logiciel gratuit à code source ouvert utilisant la licence permissive MIT.
L’analyse Web indique qu'il s'agit de la bibliothèque JavaScript la plus largement déployée.
52
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
a. Intellij Idea
Intellij IDEA est un environnement de développement intégré Java (IDE) pour le
développement de logiciels. Il est développé par JetBrains (anciennement connu sous le nom
d’Intellij) et est disponible sous forme d’édition communautaire Apache 2 sous licence et dans
une édition commerciale propriétaire. Les deux peuvent être utilisés pour le développement
commercial [13].
b. Star UML
StarUML est un outil de modélisation adaptée à UML 2 de MKLab. La licence du logiciel était
sous une version modifiée de la GNU GPL jusqu'en 2014, date à laquelle une
version réécrite 2.0.0 a été publiée pour des tests bêta sous une licence propriétaire.
Après avoir été abandonné pendant un certain temps, le projet a repris le dessus pour passer
de Delphi à Java / Eclipse, puis s’être à nouveau arrêté. En 2014, une version réécrite a été
publiée sous licence propriétaire [14].
c. L’outil Git
Git est un logiciel de gestion de versions décentralisé. C'est un logiciel libre créé par Linus
Torvalds, auteur du noyau Linux, et distribué selon les termes de la licence publique générale
GNU version 2. En 2016, il s’agit du logiciel de gestion de versions le plus populaire qui est
utilisé par plus de douze millions de personnes. Il permet de gérer l’historique d’avancement
de votre projet et de faire des retours en arrière sur une partie de votre projet enregistré [15].
53
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
src/main/java : tous nos fichiers java implémentés sont dans ce répertoire. Il constitue
la partie Back-end de l’application.
src/main/resources : Il contient toutes les ressources dont l’application a besoin. Il
gère essentiellement la partie front-end de l’application.
src/test/java : Il gère les tests unitaires effectués .
Le dossier target : Il contient l’ensemble des fichiers exécutables après compilation.
Le dossier external librairies : il contient l’ensemble des fichiers nécessaires au
fonctionnement de notre application.
Le fichier POM (appelé Project Object Model) est l’un des plus important sur un projet spring.
Il permet de détailler toute la configuration du projet en gérant l’ensemble des dépendances
dont a besoin l’application. Il donne des informations sur la version spring utilisé, les
ressources, les tests etc…. Il est sous la forme d’un fichier XML bien structuré et se trouve dans
le répertoire de base de l’application. La figure ci-dessous permet d’avoir un aperçu de
l’arborescence.
54
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
i. Entities
Il constitue l’un des packages les plus important car il permet de définir l’ensemble des entités
agissant au niveau de notre application. Les entités crées sont ensuite générées en table au
niveau de notre base de données grâce à des dépendances telles que JPA et Hibernate. Ainsi,
nous avons un ensemble d’annotations propres à la construction de tables.
@Entity : C’est l’annotation dont on ne peut pas se passer pour créer notre table sur la base de
données. Elle indique à JPA de persister la classe définie. Si cette annotation est ignorée, alors
toutes les configurations suivantes seront ignorées aussi.
@Table : Elle n’est pas obligatoire. Elle permet d’indiquer le nom principal de la table généré
grâce l’argument name. Si cette annotation est absente, la table portera le même nom que celui
de la classe.
@Id : Il désigne essentiellement la clé primaire de la table. Elle est obligatoire
55
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
@Column : Elle est facultative, elle permet d’indiquer le nom de la colonne grâce à name et
de gérer certaines contraintes comme l’unicité grâce à l’argument (Unique=true). La contrainte
unique permet d’éviter des risques de doublons sur les valeurs enregistrées. Nous pouvons avoir
d’autres annotations telles que @NotNull qui indique que la valeur de l’attribut ne doit pas être
nulle.En illustration, nous pouvons voir le code ci-dessous de la classe générique « User »
56
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
iii. Métiers
Le package « métiers » permet de gérer la logique fonctionnelle de l’applications. Toutes les
fonctions dont nous avons besoin sont définies sur ce répertoire. Le package « métiers » est
organisé en deux sous packages que sont « interfaces » et « impl ». Le package « interfaces »
gère toutes les interfaces métiers alors que le package « impl » gère toutes les classes
implémentant les interfaces.
Le code ci-dessous illustre l’interface « IBulletin »
57
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
iv. Controllers
Le package « controller » permet de gérer l’ensemble des contrôleurs de l’application. C’est la
partie intermédiaire entre la partie web et les interfaces.
@Controller : il permet de marquer une classe comme étant un controller Spring MVC
@Autowired : c’est une annotation qui permet d’assurer l’injection des dépendances. Pour
accéder à l’ensembles des méthodes écrites au niveau de l’interface, il faut appeler l’interface
concernée en l’instanciant comme un élément Bean de Spring
@GetMapping ou @RequestMapping : Il permet de spécifier l’appel d’une méthode grâce à
une Uri donnée.
58
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
v. Security
@EnableWebSecurity est une annotation qui permet d’activer toutes les fonctionnalités
nécessaires à la configuration. L’annotation @Configuration permet d’indiquer à Spring que
la classe doit être instanciée comme un Bean au démarrage.
59
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
L’intégrité : A ce niveau, on va s’assurer que les données envoyées ont été bien reçues
et qu’elles n’ont pas été modifiées. (Évitant ainsi l’attaque de type Man in the Middle)
La confidentialité : On pourra éviter la lecture des données à des personnes non
autorisées
60
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
i. Static
Ce package permet de mettre l’ensemble des éléments qui vont interagir avec les pages web de
l’application :
Le dossier CSS renferme tous les fichiers CSS nécessaires (Bootstrap, font-awesome,
style, etc…)
Le dossier JS renferme tous les fichiers JS nécessaires (JQuery, main, etc…)
Le dossier Images contient toutes les images
Le dossier Fonts et WebFonts contient toutes les polices et icônes nécessaires aux
fichiers CSS
ii. Templates
Ce package contient l’ensemble de nos pages web crées c’est-à-dire tous les fichiers HTML et
qui seront utilisées dans le projet.
61
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
1. Authentification
L’authentification est la première fonctionnalité implémentée et c’est la première page qui
apparaît lorsque vous tentez d’accéder à la plateforme. Elle permet de rediriger à l’utilisateur le
menu adéquat en fonction de son profil. L’utilisateur devra saisir son login et son code d’accès.
Pour chaque électeur, un code d’accès lui est envoyé dès l’ouverture d’une élection.
Nous allons donc présenter le menu administrateur, ensuite expliquer l’ouverture et le dépôt de
candidatures, simuler la phase de scrutin et enfin montrer la publication des résultats
2. Menu Administration
C’est dans ce menu que toute l’administration de l’application est gérée. La gestion des
électeurs, celle des élections et des superviseurs sont faites à ce niveau.
62
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
63
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
5. La phase de scrutin
La phase de scrutin est faite après la clôture des dépôts de candidatures. Les électeurs accèdent
à nouveau à la plateforme pour voter. S’il clique sur l’option « effectuer vote », une boîte de
dialogue s’affiche et il choisit sur l’une des élections ouvertes dont il participe. La figure ci-
dessous montre le procédé.
64
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Après avoir choisi, l’électeur sera redirigé vers la liste des candidats inscrits sur l’élection
65
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Il peut encore retourner au niveau de la plateforme et faire la même démarche pour l’élection
restante dont il peut participer
Une fois qu’il termine et qu’il n’y a plus d’élections ouvertes, l’électeur sera redirigé vers la
page de sortie de la plateforme où il ne pourra plus avoir accès jusqu’à la réouverture de
nouvelles élections.
66
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
67
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
Pour ce faire, nous avons essayé tant bien que mal de mettre en place un prototype répondant
aux exigences citées par le DRH et le chargé pédagogique de l’UFR Science et Technique. Il
permet la gestion ainsi que le suivi du processus de vote pour une élection donnée. Le système
essaie donc de gérer l’ouverture et l’envoie de notification aux utilisateurs enregistrés au niveau
de la base de données de l’université, de permettre le dépôt de candidatures et d’effectuer le
vote et enfin de permettre un suivi des statistiques du scrutin et aussi un envoi des résultats
d’élection aux utilisateurs concernés. Une élection ouverte sera déroulée au niveau de la
plateforme jusqu’à sa fermeture.
Pour pouvoir mener à bien le travail avec les résultats attendus, nous avons scindé notre
mémoire en cinq chapitres. Dans le premier chapitre, nous avons essayé de centrer le sujet en
montrant d’abord l’état de l’art des systèmes de vote en ligne sur leur évolution, ensuite la
présentation succincte de l’université et des différents types d’élection organisés et enfin des
problèmes visibles sur l’organisation des élections. Dans le deuxième chapitre, nous avons
essayé de présenter la méthodologie de notre choix qui est SCRUM. Et nous avons essayé de
l’appliquer au niveau du troisième chapitre sur l’analyse et les spécifications des besoins
fonctionnels définis. De cette analyse faite, nous avons pu recenser l’ensemble des informations
nécessaires nous permettant d’élaborer dans le quatrième chapitre notre analyse et conception
avec le langage de modélisation UML. Et dans le cinquième chapitre grâce à la conception
établie, nous avons pu présenter l’implémentation notre prototype de vote en ligne dédié aux
élections de l’université.
En perspective, l’application peut être améliorée pour permettre de mieux couvrir l’ensemble
des élections organisées. Elle sera enrichie avec de nouvelles fonctionnalités telles que :
68
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
L’adapter à n’importe quel type d’élection même celles à fort enjeu (élection législative,
présidentielle, etc.).
69
Adama SEYE Mémoire de Master II
Mémoire de Master « Conception et mise en œuvre d’un système de vote électronique :application aux
élections organisées à l’UASZ »
WEBOGRAPHIE
[1] Site de Loria https://members.loria.fr/VCortier/files/Papers/Bulletin1024-2016.pdf
consulté 11/05/2018
[2] Site de agiliste https://agiliste.fr/guide-de-demarrage-scrum/ consulté le 08/06/2018
[3] Site de Openclassroom https://openclassrooms.com/fr/courses/4670706-adoptez-une-
architecture mvc-en-php/4678736-comment-fonctionne-une-architecture-mvc
consulté le 15/08/2018
[4] Site de Supinfo https://www.supinfo.com/articles/single/6437-fonctionnement-une-
architecture-trois-tiers consulté 15/08/2018
[5] Site de Spring https://translate.google.sn/translate?hl=fr&sl=en&u=http://projects.spring
.io/spring-data/&prev=search consulté 16/08/2018
[6] Site de Wikipedia https://fr.wikipedia.org/wiki/MySQL consulté 16/08/2018
[7] Site de Wikipedia https://fr.wikipedia.org/wiki/Apache_Tomcat consulté 16/08/2018
[8] Site du forum https://zekey.developpez.com/articles/spring/ consulté le 18/08/2018
[9] Site de groupeafg http://www.groupeafg.com/spring-boot-kesako/ consulté le 18/08/2018
[10] Site de https://fr.wikipedia.org/wiki/Bootstrap_ (framework) consulté le 18/08/2018
[11] Site de Wikipedia https://fr.wikipedia.org/wiki/font_Awesome consulté le 18/08/2018
[12] Site de https://translate.google.sn/translate?hl=fr.wikipedia.org%2Fwiki%2FJQuery
consulté le 18/08/2018
[13] Site de https://translate.google.sn/translate?hl=fr.wikipedia.org/FIntelliJ_IDEA consulté
le 18/08/2018
[14] Site de https://translate.google.sn/translate?hl=fr.wikipedia.org/wiki/StarUML consulté
le 18/08/2018
[15] Site edutechwiki https://edutechwiki.unige.ch/fr/Git_et_Github consulté 18/08/2018
70
Adama SEYE Mémoire de Master II