Spécification des exigences
Introduction
Ce chapitre décrit les exigences du projet «7 Wonders». Il suit la norme IEEE 830-1998.
Avant-propos
L’objectif de ce document est de décrire les spécifications des exigences du projet "7 Wonders" pour les étudiants en génie logiciel.
Le public visé par cette spécification comprend les développeurs potentiels de l’application, ainsi que les personnes chargées de l’évaluation technique.
Portée du projet
Le système logiciel à produire est une version simplifiée du jeu de plateau 7 Wonders, qui sera désigné par le terme "7 Wonders" dans le présent document.
Le système 7 Wonders permettra à des joueurs de différents endroits de s’affronter dans des parties courtes et intensives.
Références
-
IEEE Standard 830-1993: IEEE Recommended Practice for Software Requirements Specifications
Vue d’ensemble
Le reste de ce document contient une description globale du système logiciel 7 Wonders (section Description générale, les exigences fonctionnelles spécifiques (section [fonctional]) et les exigences non-fonctionnelles du système (voir [nonfonctional].
Description générale
Perspectives du produit
7 Wonders est un jeu de carte type draft où plusieurs joueurs s’affrontent. Le logiciel 7 Wonders doit permettre aux joueurs qui sont connectés à Internet d’utiliser leurs appareils connectés pour jouer. Ainsi, "7 Wonders" est une version électronique en ligne du jeu de cartes type draft.
Fonctionnalités du produit
Le logiciel 7 Wonders doit assurer deux fonctions principales :
-
Création de jeu : permettre à des joueurs de commencer une partie.
-
Le jeu : permettre aux joueurs de jouer effectivement à 7 Wonders jusqu’à la victoire de l’un d’entre eux.
Caractéristiques et classes d’utilisateurs
Le logiciel 7 Wonders n’a qu’une seule classe d’utilisateurs : les joueurs.
Environnement opérationnel
Le client Web devrait fonctionner sur tout navigateur Web récent : Firefox, Chrome, Safari, ou Edge.
Langages de programmation
-
Le serveur de jeu doit être développé en Java (version ≥ 11), en utilisant le https://spring.io [Spring Framework].
-
Le client doit être développé en TypeScript (version ≥ 4.0), en utilisant le https://reactjs.org [ReactJS Framework].
Conception
Mise en œuvre
-
Les tests dynamiques doivent utiliser JUnit (version >= 5.0) et Jasmine (version >= 3.5.0).
-
Le code doit journaliser ses principales opérations en utilisant https://www.slf4j.org [SLF4J].
Vérification
-
Les doubles tests doivent être utilisés pour tester chaque composant indépendamment.
-
Chaque test unitaire doit décrire son intention.
Exigences fonctionnelles
Connexion d’un utilisateur a l’application client
Description sous la forme d’un cas d’utilisation
Item | Description |
---|---|
# |
1 |
Cas d’utilisation |
Connexion |
Alias |
Connexion, Accès à l’application |
Objectif contextuel |
Connexion du joueur à l’application, accès aux menus de jeu. |
Portée |
La connexion |
Niveau |
Summary |
Condition de succès |
Le joueur est connecté au serveur |
Condition d’échec |
Le joueur n’est pas connecté |
Acteurs principaux: |
|
Acteurs secondaires |
|
Événement déclencheur |
Accès à l’application par le joueur. |
Priorité |
Haute |
Fréquence |
1 fois par session d’utilisation de l’application. |
Pré-conditions |
Aucune. |
Post-conditions |
Le joueur est connecté et a accès au menu. |
Scénario nominal |
|
Extensions |
|
Alternatives |
|
Cas d’utilisation supérieur |
|
Cas d’utilisation subordonnés |
Cas d’utilisation du Menu du jeu. |
Objectif de performance |
|
Problèmes ouverts |
|
Échéancier |
Version 1.0.0 |
Contraintes |
|
Annexes |
Choix de la partie
Description sous la forme d’un cas d’utilisation
Item | Description |
---|---|
# |
2 |
Cas d’utilisation |
Choix d’une partie |
Alias |
Menu du jeu |
Objectif contextuel |
Permet au joueur de rejoindre une partie |
Portée |
Le jeu |
Niveau |
Summary |
Condition de succès |
Le joueur a rejoint la partie. |
Conditions d’échec |
Le joueur ne peut pas choisir la partie |
Acteurs principaux: |
Le joueur, l’application |
Acteurs secondaires |
|
Événement déclencheur |
Connexion du joueur |
Priorité |
Haute |
Fréquence |
Autant de fois que le joueur veut rejoindre une partie. |
Pré-conditions |
Le joueur doit être connecté. |
Post-conditions |
|
Scénario nominal |
|
Extensions |
|
Alternatives |
|
Cas d’utilisation supérieur |
|
Cas d’utilisation subordonnés |
|
Objectif de performance |
|
Problèmes ouverts |
Nous n’avons pas pris en compte la création de parties |
Échéancier |
Version 1.0.0 |
Contraintes |
|
Annexes |
Préparation de la partie
Description sous la forme d’un cas d’utilisation
Item | Description |
---|---|
# |
3 |
Cas d’utilisation |
Préparation |
Alias |
Initialisation, Mise en place |
Objectif contextuel |
Mise en place de la partie, distribution des Merveilles, des cartes Âge, des jetons Conflit et de la monaie, afin de commencer la partie. |
Portée |
Le jeu |
Niveau |
Summary |
Condition de succès |
Les Merveilles, carte Âge, jetons Conflit et la monaie sont distribués. |
Condition d’échec |
Les Merveilles, carte Âge, jetons Conflit ou la monaie ne sont pas distribués. |
Acteurs principaux: |
|
Acteurs secondaires |
|
Événement déclencheur |
Entre trois et sept joueurs sont dans la partie, et un joueur lance la partie. |
Priorité |
Haute |
Fréquence |
1 fois par partie |
Pré-conditions |
Il y a entre 3 et 7 joueurs dans la partie |
Post-conditions |
|
Scénario nominal |
|
Extensions |
|
Alternatives |
|
Cas d’utilisation supérieur |
Choix de la partie |
Cas d’utilisation subordonnés |
|
Objectif de performance |
|
Problèmes ouverts |
|
Échéancier |
Version 1.0.0 |
Contraintes |
|
Annexes |
Déroulement d’un tour
Description sous la forme d’un cas d’utilisation
Déroulement de la fin de partie
Description sous la forme d’un cas d’utilisation
Item | Description |
---|---|
# |
5 |
Cas d’utilisation |
Fin d’une partie |
Alias |
Fin d’une partie |
Objectif contextuel |
Précise les conditions de fin d’une partie |
Portée |
Le jeu |
Niveau |
Summary |
Condition de succès |
Un joueur rempli les conditions de victoire. |
Conditions d’échec |
Un joueur quitte avant la fin de la partie |
Acteurs principaux: |
Les joueurs, l’application |
Acteurs secondaires |
|
Événement déclencheur |
L’Age 3 est terminé et les jetons conflits ont été distribués |
Priorité |
Haute |
Fréquence |
Une fois par partie |
Pré-conditions |
|
Post-conditions |
|
Scénario nominal |
|
Extensions |
|
Alternatives |
|
Cas d’utilisation supérieur |
Lancement de la partie |
Cas d’utilisation subordonnés |
Fermeture du serveur de jeu |
Objectif de performance |
|
Problèmes ouverts |
|
Échéancier |
Version 1.0.0 |
Contraintes |
|
Annexes |
Autres exigences non-fonctionnelles
Exigences de performance
-
Le jeu doit être jouable, ce qui signifie que les utilisateurs doivent avoir un retour rapide de leurs actions et que les retards dus aux problèmes de communication/connexion doivent être correctement tenus.
-
Le client Web doit pouvoir s’exécuter sur un ordinateur personnel doté de 4 Go de RAM.
Exigences de sécurité
-
Le joueur ne doit pas être mis au courant des attributs secrets d’un autre joueur. Pour cela on utilise des DTO (Datat Transfer Object)
Maintenabilité
-
Le logiciel doit être lisible et facile à maintenir.
-
La source Java doit respecter les directives de Google : https://google-styleguide.googlecode.com/svn/trunk/javaguide.html.
Exigences de design
Afin de préparer la réalisation de notre application client, nous avons crée un design de celle ci