Projet «Vote Electronique V2» Spécifications Version 1.0 9 décembre 2007
Historique des révisions Date Version Description Auteur 27/05/2003 1.0 Equipe Vote électronique V2 specs_fonctionnelles.1.1 25/11/2002 - Equipe Vote électronique V2 page 2/15
Sommaire 1 Récapitulatif des besoins... 4 2 Description des fonctionnalités... 4 2.1 Matrice des fonctionnalités...4 2.2 Cas d utilisations...4 3 Interface Homme machine... 5 3.1 Schéma de navigation...5 3.2 Maquette...7 4 Architecture applicative... 7 4.1 Diagramme de classes...erreur! Signet non défini. 4.2 Diagramme de séquence...erreur! Signet non défini. 4.3 Diagramme de collaboration...7 5 Architecture technique... 12 5.1 Diagramme de déploiement logique...13 5.2 Diagramme de déploiement physique...13 6 Sécurité... 14 7 Aspects métiers... 14 7.1 Modifications du règlement intérieur...14 7.2 Vision légale et juridique...14 8 Annexes... 15 specs_fonctionnelles.1.1 25/11/2002 - Equipe Vote électronique V2 page 3/15
1 Récapitulatif des besoins Le projet V2 reprend principalement les fonctionnalités qui ont été développées précédemment pour le vote V1. En accord avec les représentants des clients, la seconde version livrable intégrera les fonctionnalités optionnelles qui n ont pas pu être opérationnelles ainsi elle sera déployée préalablement permettant de faire les premiers essais sur les prochaines élections. Mettre en place les règles de sécurité qui ont été définies précédemmment 2 Description des fonctionnalités 2.1 Matrice des fonctionnalités Candidature Vote Session 1 2 3 4 Déposer une candidature Par Internet Voter pour les grands électeurs par Internet Lancer une session électorale et importer une base de donnée Saisir une candidature reçue par courrier Modifier les dates d une session électorale Modifier une «Profession de foi» Consulter les informations relatives à une session Clôturer une session (ajouter les votes courrier, éditer résultats et PV) 2.2 Cas d utilisations Les cas d utilisations sont placés en annexe. Voici le diagramme des cas d utilisation : specs_fonctionnelles.1.1 25/11/2002 - Equipe Vote électronique V2 page 4/15
3 Interface Homme machine 3.1 Schéma de navigation Electeur : specs_fonctionnelles.1.1 25/11/2002 - Equipe Vote électronique V2 page 5/15
Administrateur : specs_fonctionnelles.1.1 25/11/2002 - Equipe Vote électronique V2 page 6/15
3.2 Maquette La maquette est placée sur un site pour l accessibilité. 4 Architecture applicative 4.1 Itération 1 4.1.1 Scénario principal Le scénario principal de l application regroupe les objectifs suivants : identification vote comptabilisation des votes gestion d envoi d emails de confirmation de vote Le schéma de navigation de cette première itération est le suivant : Pour tester ce prototype, on définira une base de données pour les électeurs de 6 personnes par exemple (anciens élèves ou amis) dont la table est définie plus bas. Le programme devra gérer l identification de ces 6 utilisateurs (login, password, date de naissance). Le démarrage de la session électorale devra être effective et toutes les informations relatives à cette session seront stockées dans la table SessionElectorale définie plus bas. L importation de la base de données et les dépôts de candidatures ne seront pas gérés dans cette première étape. On considèrera donc que 3 personnes se sont portées candidates et que le nombre maximum de candidats à élire est de 2. L utilisateur pourra donc voter pour les candidats qu il désire élire. L application gèrera le cas d un vote blanc (vote pour 0 candidat), le cas d un vote nul (vote >2 candidats) et le cas d un vote correct. Dans la table Electeur, la case FlagVote pour l utilisateur sera cochée, NombreVote des candidats pour lesquels l utilisateur a voté sera implémenté de 1. L utilisateur devra ensuite valider son vote et aura la possibilité d entrer son adresse email s il veut recevoir une confirmation de son vote. La table des électeurs sera mise à jour si l email est différent de celui déjà existant dans la base. L application gèrera l envoi d un email automatique. specs_fonctionnelles.1.1 25/11/2002 - Equipe Vote électronique V2 page 7/15
L application devra également générer un message d erreur si l utilisateur essaie de se reconnecter après avoir déjà validé un vote. 4.1.2 Base de données 4.1.2.1 Table électeur Pour stocker les informations concernant les anciens élèves et les amis, on utilisera une table Electeur établie comme ceci : Nom Prénom Tél. Email DateNaissance Login Password FlagVote FlagCandidat NombreVote ProfessionFoi Promotion Les clés primaires sont les Nom, Prénom et Promotion. Nom, Prénom, Tél., Email, Login, Password, ProfessionFoi sont de type varchar. DateNaissance est de type date. FlagVote, FlagCandidat, NombreVote, Promotion sont de type int. Login, Password et DateNaissance permettront de confirmer l identité du votant. Les cases FlagCandidat et FlagVote seront cochés si l électeur se porte candidat et si celui-ci a voté. Si l electeur se porte candidat, l adresse du ficher de sa profession de foi sera stockée dans ProfessionFoi. NombreVote sera alors implémenté de 1 à chaque vote reçu. Promotion correspond à l année de promotion de l Ancien Elève, s il s agit d un Ami, on utilisera le code 0000. 4.1.2.2 Table candidat Une table SessionElectorale sera également nécessaire pour stocker toutes les informations relatives à une session électorale. Promotion DateDebutVote DateFinVote NbGrandsElecteurs Promotion est la clé primaire. Promotion, NbGrandsElecteurs sont de type int. DateDebutVote, DateFinVote sont de type date. specs_fonctionnelles.1.1 25/11/2002 - Equipe Vote électronique V2 page 8/15
4.1.3 Relation entre classes de conception Les relations entre les classes de conception sont représentées comme ceci : Classes d interface Classes de contrôles Classes d entités 4.1.4 Répartition des tâches Au sein du groupe pour la partie applicative, Paul sera chargé des classes d entités, Adrien des classes d interfaces et Panya des classes de contrôles. 4.2 Itération 2 4.2.1 Scénario principal Le scénario principal de l application regroupe les objectifs suivants : identification vote comptabilisation des votes gestion d envoi d emails de confirmation de vote Le schéma de navigation de cette première itération est le suivant : specs_fonctionnelles.1.1 25/11/2002 - Equipe Vote électronique V2 page 9/15
Pour tester ce prototype, on définira une base de données pour les électeurs de 6 personnes par exemple (anciens élèves ou amis) dont la table est définie plus bas. Le programme devra gérer l identification de ces 6 utilisateurs (login, password, date de naissance). Le démarrage de la session électorale devra être effective et toutes les informations relatives à cette session seront stockées dans la table SessionElectorale définie plus bas. L importation de la base de données et les dépôts de candidatures ne seront pas gérés dans cette première étape. On considèrera donc que 3 personnes se sont portées candidates et que le nombre maximum de candidats à élire est de 2. L utilisateur pourra donc voter pour les candidats qu il désire élire. L application gèrera le cas d un vote blanc (vote pour 0 candidat), le cas d un vote nul (vote >2 candidats) et le cas d un vote correct. Dans la table Electeur, la case FlagVote pour l utilisateur sera cochée, NombreVote des candidats pour lesquels l utilisateur a voté sera implémenté de 1. L utilisateur devra ensuite valider son vote et aura la possibilité d entrer son adresse email s il veut recevoir une confirmation de son vote. La table des électeurs sera mise à jour si l email est différent de celui déjà existant dans la base. L application gèrera l envoi d un email automatique. L application devra également générer un message d erreur si l utilisateur essaie de se reconnecter après avoir déjà validé un vote. 4.2.2 Base de données 4.2.2.1 Table électeur Pour stocker les informations concernant les anciens élèves et les amis, on utilisera une table Electeur établie comme ceci : Nom Prénom Tél. Email DateNaissance Login Password FlagVote FlagCandidat NombreVote ProfessionFoi Promotion specs_fonctionnelles.1.1 25/11/2002 - Equipe Vote électronique V2 page 10/15
Les clés primaires sont les Nom, Prénom et Promotion. Nom, Prénom, Tél., Email, Login, Password, ProfessionFoi sont de type varchar. DateNaissance est de type date. FlagVote, FlagCandidat, NombreVote, Promotion sont de type int. Login, Password et DateNaissance permettront de confirmer l identité du votant. Les cases FlagCandidat et FlagVote seront cochés si l électeur se porte candidat et si celui-ci a voté. Si l electeur se porte candidat, l adresse du ficher de sa profession de foi sera stockée dans ProfessionFoi. NombreVote sera alors implémenté de 1 à chaque vote reçu. Promotion correspond à l année de promotion de l Ancien Elève, s il s agit d un Ami, on utilisera le code 0000. 4.2.2.2 Table candidat Une table SessionElectorale sera également nécessaire pour stocker toutes les informations relatives à une session électorale. Promotion DateDebutVote DateFinVote NbGrandsElecteurs Promotion est la clé primaire. Promotion, NbGrandsElecteurs sont de type int. DateDebutVote, DateFinVote sont de type date. 4.2.3 Relation entre classes de conception Les relations entre les classes de conception sont représentées comme ceci : Classes d interface Classes de contrôles Classes d entités specs_fonctionnelles.1.1 25/11/2002 - Equipe Vote électronique V2 page 11/15
4.2.4 Répartition des tâches Au sein du groupe pour la partie applicative, Paul sera chargé des classes d entités, Adrien des classes d interfaces et Panya des classes de contrôles. 5 Architecture technique Cf. Dossier d architecture technique. specs_fonctionnelles.1.1 25/11/2002 - Equipe Vote électronique V2 page 12/15
5.1 Diagramme de déploiement logique 5.2 Diagramme de déploiement physique Nous sommes en attente de détails plus précis sur les matériels à notre disposition pour développer cette partie. specs_fonctionnelles.1.1 25/11/2002 - Equipe Vote électronique V2 page 13/15
6 Sécurité La sécurité est une des priorités du projet afin de garantir des résultats et un vote fiable. Ci-dessous sont évalués les risques possibles du système de vote électronique et sont proposé des solutions à chaque risque identifié. Intrusion du système d information et piratage de la base de donnée : la mise en place d une politique de sécurité par les moyens d un Firewall disponible en série avec le système d exploitation Linux qui va être utiliser pour l application. La protection du serveur peut être assurée grâce à un antivirus performant régulièrement actualisé. Confidentialité interne : limiter les droits des utilisateurs présumés du serveur de base de donnée. Confidentialité externe : gérer séparément les votes des électeurs et des voix attribuées aux candidats, en sauvegardant ces deux informations séparément. Usurpation d identité : authentification par mot de passe, login et une information personnelle, la date de naissance de l électeur. Non enregistrement d un vote : envoyé un mail de confirmation aux électeurs disposant d adresses email. Sauvegarde de la base de donnée à court terme: sauvegarde régulière de la base sur supports amovibles (CD, lecteur DAT) ou mise en place d un robot de sauvegarde Sauvegarde de la base de donnée à long terme : mise en place de Raid, permettant la duplication des données. Pannes d alimentation : alimentation du serveur en courant ondulé Défaillance de l application : suivi régulier de l application par une équipe compétente et mise en place de veille sécurité Gestion des tentatives de connexions répétitives : enregistrement et limitation du nombre connexion par utilisateur au niveau de l application. Protection physique des serveurs : hébergement des serveurs dans des locaux techniques maintenu fermé à clé. 7 Aspects métiers 7.1 Modifications du règlement intérieur Le règlement intérieur a été modifié et approuvé par le client, la nouvelle version est disponible en annexe. 7.2 Vision légale et juridique Il a été vérifié que si la base de données des anciens de l AAEA ESIEA est conforme à la loi alors l application sera légale. L équipe vote électronique décline toute responsabilité quant à la validité de la base de données de l application puisqu elle ne dépend que de la validité de la base de données d origine. Il faudra par contre déclarer le site de l application auprès de la CNIL (Commission Nationale Informatique et Libertés) ou, si l application est directement sur le site de l ESIEA, mettre à specs_fonctionnelles.1.1 25/11/2002 - Equipe Vote électronique V2 page 14/15
jour la déclaration de ce site. Cette déclaration devra être faite par le client. L équipe vote électronique décline toute responsabilité à ce niveau si la déclaration n est pas faite. 8 Annexes Cas d utilisations : Cas 1.0 Cas 1.1 Cas 1. 2 Cas 2.0 Cas 3.0 Cas 4.0 Cas 5.0 Cas 6.0 Cas 7.0 Cas 8.0 Cas 9.0 Nouveau règlement intérieur Maquette specs_fonctionnelles.1.1 25/11/2002 - Equipe Vote électronique V2 page 15/15