IFT2251
Introduction au génie logiciel
Travail pratique #1
par:
Nicola Grenon GREN30077303
le lundi treize février deux mille six
Question 1a:
Élément Commentaire À inclure ?
architecture
client-serveur Représente la structure de notre système. (Donc
l'intérieur du système) non
vote On doit en mémoriser plusieurs. oui
bureau d'élection N'est pas dans le système tel que défini. non terminal client Partie intégrante du système à implémenter. non isoloir Ne fait pas partie de notre système tel que déf. non électeur On doit en représenter plusieurs et conserver
des informations à son sujet. oui
carte d'identité à puce Possède probablement un identifiant unique. oui code secret Est un attribut associé directement à la carte. non
détenteur de la carte Synonyme de «électeur». non
serveur de vote Partie intégrante du système à implémenter. non
utilisateur Synonyme de «électeur». non
lecteur (de carte) Fait partie du système. non
liste électorale Il s'agit d'un élément unique que le système
doit connaître. oui
élection Plusieurs avec leurs attributs propres. oui
jour Attribut d'une élection. non
régionale Attribut d'une élection. non
municipale Attribut d'une élection. non
liste des élections Liste qui doit être connue du système. oui
choix (possibles) Attributs d'une élection. non
horaire de vote Attributs d'une élection. non
8h / 22h Exemple de «horaire de vote». non
nom (de l'électeur) Attribut de «électeur». non
liste d'émargement Liste qui doit être connue du système. oui
option Il y en a plusieurs par élection. oui
interface utilisateur Fait partie du système non
clavier Composante du système non
nom (d'une élection) Attribut d'une «élection». non
souris Composant du système. non
temps de vote Résultat. non
vote blanc Type d'option. non
page de confirmation Fait partie de l'interface du système. non bulletin de vote Représentation virtuelle du «vote». non fenêtre(de l'interface) Fait partie de l'interface du système. non page (de l'interface) Fait partie de l'interface du système. non bouton (de la page) Fait partie de l'interface du système. non
connexion Interne au système. non
nombre (de connexions) Interne au système. non
volume (des connexions) Interne au système. non
données Représente des votes et/ou des listes.
(Résultat) non
chaîne cryptée Fait partie d'un «vote». non
audit (de l'élection) Hors de notre système. non
nombre (de votants) Résultat. non
nombre (d'inscrits) Résultat. non
taux de participation Résultat. non
résultats Résultat. non
nombre de votes Résultat. non
pourcentage Résultat. non
Donc: vote, électeur, carte d'identité, liste électorale, élection, liste des élections, liste
d'émargement, option de vote.
Question 1b:
Type Événement Déclencheur Source Activité (cas d'util.) Réponse Destination
temporel Début de l'élection L'heure de début de vote.
Récupération de la liste des élections et des options de vote du jour.
Message «prêt» (...) sur le terminal client.
Électeur
externe Identification de l'électeur auprès du terminal client.
L'électeur entre sa carte dans le lecteur et donne son code secret.
Électeur - Demande au lecteur (qui demande à la carte) de confirmer la validité du code secret.
- Récupération du droit de vote à toutes les élections du jour (selon les listes électorales et
d'émargement)
- Message d'erreur ou - Menu des élections disponibles.
Électeur
externe Choix d'une élection L'électeur sélectionne une élection au menu des élections.
Électeur Génération de la liste des choix Affichage des choix Électeur
externe Choix d'une option de vote
L'électeur clic sur un des choix de vote.
Électeur Génère un message de confirmation vers le moniteur.
Demande de confirmation
Électeur externe Confirmation d'un vote L'électeur clique sur la
confirmation (ou non)
Électeur Cryptage et transmission des données.
Confirme la dernière action et offre le retour au menu
Électeur
externe Fin de la session avec un électeur.
L'électeur retire sa carte du lecteur.
Électeur Réinitialisation de l'interface (à l'interne).
Message «prêt» sur le terminal client.
Électeur État Le site web doit être mis
à jour.
Un nouveau vote a été reçu par le serveur
Génération de la page web de statistiques de vote.
Mise en ligne de la page modifiée.
Serveur web temporel La fin de la journée de
vote. L'heure de fin du vote Génération de la page web de
résultats du vote (reçus à date) Mise en ligne de la page
modifiée. Serveur web
Question 1c:
S y s t è m e d e v o t e É le c t e u r
S e r v e u r w e b
C a r t e à p u c e
C o d e s e c r et ,
C h o ix d ' é lem e n u s , c oM e s s a g e sc t i o n , C h on f i r m a tio nd ' e r r e u r ,i x d e v o te .s P a g e w e b m is e à jo u r
C on f ir m a t i on o u i n fi r m a t i on C od e s ec r et
Question 2: Les besoins fonctionnels
A) Identification & authentification de l'électeur.
11. La carte de l'électeur contient un code secret. [besoin fonctionnel – stockage]
(On pourrait aussi considérer cet élément comme hors de notre rayon d'action puisqu'il n'est pas précisé si on doit gérer ou pas les cartes.)
12. L'électeur doit s'identifier et s'authentifier au terminal client. [besoin fonctionnel – entrées]
12.a L'électeur doit insérer sa carte dans le lecteur de carte.
12.b L'électeur doit entrer son code secret au clavier du système.
13. La vérification du code secret se fait sur la carte. [besoin fonctionnel – calcul]
14. L'électeur doit être authentifié avant de pouvoir voter. [besoin fonctionnel – sortie]
(au sens qu'on accède ensuite à un menu d'élections affiché à l'écran)
B) Le vote
21. Le serveur de vote stocke l'information de façon centralisée. [besoin fonctionnel – stockage]
21.a La liste électorale 21.b La liste des élections
21.c Les choix possibles pour chaque élection 21.d La liste d'émargement
21.e Les votes confirmés.
22. Le système doit pouvoir gérer plusieurs élections en même temps. [besoin fonctionnel – entrées]
23. Il y a une heure de début et une heure de fin pour chaque élection. [besoin fonctionnel – temps]
24. L'électeur doit pouvoir voter pour les élections auxquelles il est autorisé. [besoin fonctionnel – entrées]
24.a On doit vérifier que: L'électeur est sur la liste électorale.
24.b On doit vérifier que: L'électeur n'a pas déjà voté à cette élection. (N'est pas sur la liste d'émargement.)
24.c On doit vérifier que: Nous sommes le jour de l'élection.
24.d On doit vérifier que: Nous sommes dans les heures d'ouverture de l'élection.
25. L'électeur n'est obligé de voter à aucune élection. [besoin fonctionnel – entrées]
26. Un électeur doit toujours avoir la possibilité de voter blanc. [besoin fonctionnel – entrées]
27. Le vote doit rester anonyme. [besoins fonctionnels – stockage] (lié à #31)
28. Le retrait de la carte à puce annule les opérations non confirmées. [besoin fonctionnel – entrées]
29. Des pages web de statistiques sont générées automatiquement. [besoin fonctionnel – sorties]
29.a Après chaque vote pour les pages sur le taux de participation.
29.b À la fin des heures de vote pour le résultat des élections.
Question 3: Les besoins non-fonctionnels de qualité.
31. Le vote doit être anonyme. [Non-fonctionnel – Qualité – Sécurité] (lié à #27) 32. L'interface utilisateur doit être simple à utiliser. [Non-fonctionnel – Qualité – Convivialité]
32.a Ne présenter que des choix valides à l'électeur.
32.b Utiliser la souris pour toutes les opérations (sauf le code secret) 32.c Réduire la complexité de l'interface (une fenêtre à la fois, etc.) 32.d L'électeur est l'initiateur de tout changement d'état du terminal client.
33. L'interface doit permettre de minimiser le temps de vote. [Non-fonctionnel – Qualité – Performance]
34. Le système demande la confirmation du vote. [Non-fonctionnel – Qualité – Sécurité]
35. L'électeur doit pouvoir choisir à tout moment de ne pas voter ou d'annuler l'opération en cours. [Non- fonctionnel – Qualité – Convivialité]
36. Le système doit minimiser le nombre et le volume des connections. [Non-fonctionnel – Qualité – Performance]
36.a Minimiser le nombre de connections.
36.b Minimiser le volume des transferts.
37. Le terminal client doit éviter de poser des questions dont il connaît la réponse au serveur. [Non- fonctionnel – Qualité – Performance]
38. Chaque vote confirmé doit être crypté et transmis dès que possible. [Non-fonctionnel – Qualité – Sécurité]
39. Permettre un éventuel audit de l'élection à partir des données stockées du vote. [Non-fonctionnel – Qualité – Facilité de maintenance (Adaptatif/Perfectif)]
Question 4: Les besoins non-fonctionnels concernant la plateforme.
41. Le système doit avoir une architecture client-serveur (Terminaux clients et Serveur de vote). [Non- fonctionnel – Plateforme – Type]
Question 5: Vérification de la cohérence des besoins.
On veut que l'électeur n'ait que des choix valides comme possibilité sur le menu de votation (32a), Mais la liste d'émargement est centralisée sur le serveur de vote (21d) et n'est pas recopiée sur le terminaux clients (minimiser les informations transmises: 36b). {Donc 32a versus 36b}