IFT2251
Introduction au génie logiciel
Travail pratique #2
par:
Nicola Grenon GREN30077303
le lundi six mars deux mille six
Question 1: Diagramme de classes
Électeur
- nom:String
+ Identifier()
Bulletin de vote
+ EncrypteVote() + DecrypteVote()
Choix de vote
- Libellé: String
Élection
- Infos:String
+ TxParticipation() + Resultats() + ListeÉlect() + ListeÉmarge() vote
possède
1
2..n
1
0..n
1 0..n
rempli
Question 2: Diagramme de cas d'utilisation
Électeur
Horloge système
Individu du public
Système de votation
Voter à une élection
Préposé du bureau des élections
Directeur en chef des élection Délégué
Modification d'une élection (ou création)
Identification / Authentification
Ouvrir une élection
Fermer une élection
Modification de la liste électorale (ou création)
Production/impression de la listed'émargement
Déclenchement
d'un dépouillement
Déclenchement
d'unrecomptage
Consulter les résultats
<<include>>
<<include>>
<<include>> <<
inclu de>>
<<include>>
<<include>>
Ne serait-ce que pour changer l'affichage à l'écran signalant entre
deux électeurs les élections qui sont actuellement ouvertes...
On pourrait également définir la création à part de la modification, mais alors la modification serait une généralisation
de la création Exécuter une
session de vote <<in clude
>>
<<extends>>
Question 3: Documentation des cas d'utilisation
! Cas d'utilisation: Exécuter une session de vote.
o Acteurs principaux: Électeur
o Pré-conditions: - Le terminal client est en bon état de marche (pas en panne et allumé) - La session précédente est fermée.
- La carte de l'électeur est fonctionnelle.
o Post-conditions: - L'électeur a retiré sa carte
o Déclencheur: Un électeur introduit sa carte dans le lecteur.
! Déroulement principal
1. L'électeur introduit sa carte d'électeur
2. Le terminal initie la procédure d'authentification – include Identification / Authentification 3. Le terminal affiche la liste des élections disponibles
4. L'électeur choisit une élection
5. Le terminal initie la procédure de vote à une élection – extends Voter à une élection 6. L'électeur indique qu'il a terminé de voter
7. Le terminal ferme la session et éjecte la carte de l'électeur (et affiche un rappel de prendre la carte).
! Variantes de déroulement
2. (A) L'opération d'authentification a échoué:
Le terminal affiche un message d'information et éjecte la carte. Après quelques secondes l'écran se réinitialise.
3. (A) Il n'y a aucune élection disponible à laquelle l'électeur n'a pas voté:
Le terminal informe l'électeur de ce fait et indique, s'il y a lieu, les heures d'ouverture des élections du jour où il n'a pas encore voté. Le terminal ferme la session et éjecte la carte et après quelques secondes l'écran se réinitialise.
x. (A) À tout moment, l'électeur sort sa carte du lecteur:
Le logiciel affiche un message d'information, ferme la session et après quelques secondes réinitialise l'écran.
! Exigences spéciales
o Contrainte fonctionnelle
" Diffuser en simultané les instructions vocales dans les écouteurs pour déficients visuels.
Cas d'utilisation: Voter à une élection.
o Acteurs principaux: Électeur
o Pré-conditions: - L'élection est est ouverte et l'électeur n'y a pas déjà voté.
- L'électeur est déjà identifié - La carte est dans le lecteur.
o Post-conditions: - Le bulletin de vote a été transmis au serveur et stocké adéquatement o Déclencheur: L'électeur a sélectionné une élection disponible au menu des élections.
! Déroulement principal
1. Le terminal demande à l'électeur de s'authentifier de nouveau – include Identification / Authentification 2. Le terminal affiche les informations de l'élection avec entre autre les différents choix possibles (dont un blanc).
3. L'électeur fait son choix au moyen de la souris.
4. Le terminal demande la confirmation du choix.
5. L'électeur indique qu'il est d'accord avec le choix.
6. Le terminal affiche un message neutre indiquant que le vote est en traitement.
7. Le terminal crypte le vote.
8. Le terminal transmet sans attendre le bulletin.
9. Le serveur confirme la réception au terminal client.
10. Le terminal affiche une fenêtre neutre confirmant que le vote a bien été enregistré (sans plus d'ifnormations).
11. L'électeur clic sur «ok».
12. Le terminal retourne au menu des élections ...
! Variantes de déroulement
1. (A) L'opération d'authentification a échoué:
Le logiciel affiche un message d'information et éjecte la carte. Après quelques secondes l'écran se réinitialise.
5. (A) L'électeur indique que le choix était erroné:
Retour au menu des choix pour cette élection.
x. (A) L'électeur choisit d'annuler l'opération (bouton annuler): [À tout moment sauf entre 6 et 11]
Le logiciel informe l'électeur que l'opération a été annulée et retourne au menu des élections.
! Exigences spéciales
o Contrainte non fonctionnelle
" S'assurer de transmettre le plus rapidement possible le bulletin.
" Si une panne survient avant l'étape 9, l'opération est annulée.
" S'assurer que l'information sur le choix de vote n'apparaisse pas sur l'écran de confirmation du vote.
Question 4: Diagrammes d'activités
Voter à une élection
Le terminal demande de s'authentifier
L'électeur entre son code secret
Le terminal affiche un message d'erreur
[<3 erreurs]
[Code erroné]
Le terminal affiche les choix de l'élection [Code correct]
Le terminal affiche un message d'information et éjecte la carte
[>2 erreurs]
L'électeur clique sur son choix
Le terminal demande de valider le choix L'électeur indique s'il est
certain
[non]
[oui] Le terminal affiche un message d'attente neutre
Le terminal crypte le vote
Le terminal transmet le bulletin au serveur Le serveur confirme la
réception au terminal
Le terminal confirme l'enregistrement du vote L'électeur clique sur
«ok»
Le terminal confirme l'annulation
[L'électeur a choisi le bouton d'annulation]
nota: Le choix d'utiliser les lignes courbes à gauche est volontaire, dans un esprit de clarté. J'aurais tout aussi bien pu ajouter un choix (et un losange au besoin) à la sortie de chacune des boîtes reliées, mais c'eut rendu le diagramme plus difficile à lire! Dans le prochain diagramme, comme il y a peu de choix, la lecture reste aisée, donc j'ai utilisé une façon plus formelle de représenter le choix.
Exécuter une session de vote
Le terminal demande de s'authentifier
L'électeur entre son code secret
Le terminal affiche un message d'erreur
[<
3 erreurs]
[Code erroné]
Le terminal affiche la liste des élections disponibles [Code correct]
Le terminal affiche un message d'information et éjecte la carte
[>2 erreurs]
L'électeur choisi une élection ou quitter
[quitter ou sort sa carte du lecteur]
[une élection] extends:
Voter à une élection
L'électeur entre sa carte
[bouton annuler ou sort sa carte du lecteur]
Le terminal réinitialise l'écran d'accueil
[Au moins une élection disponible]
[Aucune élection disponible]
Question 5: Diagramme d'états(d'une élection)
État post électoral
Ouverte
Indéterminée
time(HeureDeDébut)
Déterminée
Dépouillement
Archivée
after(3 mois) En édition
En attente fin de l'édition
édition
time[HeureDeFin]
Recomptage