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.

Définitions, acronymes et abréviations

Aucune jusqu’à présent.

Public visé et suggestions de lecture

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.

Le système 7 Wonders entre dans le cadre du projet de fin de semestre du module Analyse, conception et mise en oeuvre de logiciels.

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 Exigences fonctionnelles) et les exigences non-fonctionnelles du système (voir Autres exigences non-fonctionnelles).

Description générale

Perspectives du produit

7 Wonders est un jeu de cartes 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.

Bien que le système soit distribué et organisé en différents composants, les joueurs doivent le percevoir comme un seul logiciel. La figure Figure 1 présente l’architecture globale du logiciel. Les joueurs interagissent avec un client Web, qui utilise le protocole HTTP pour communiquer avec (au maximum) un serveur de jeu. Les serveurs utilisent le protocole TCP/IP pour communiquer avec un serveur de gestion de base de données, qui stocke toutes les données du logiciel.

diagram
Figure 1. UML Diagramme de déploiement

Fonctionnalités du produit

Le logiciel 7 Wonders doit assurer deux fonctions principales :

  • Création de jeu : permettre à deux joueurs de se découvrir et de commencer une partie.

  • Le jeu : permettre aux joueurs de jouer effectivement à 7 Wonders jusqu’à la victoire de l’un d’entre eux.

Les fonctions secondaires du logiciel :

  • Permettre aux joueurs de se créer un compte et de s’authentifier.

  • Permettre aux joueurs de demander d’autres joueurs en ami et d’inviter des amis dans leurs parties.

Les fonctions annexes du logiciel :

  • Permettre à des administrateurs de gérer les parties et les joueurs.

Une image des principaux groupes d’exigences connexes et de leurs relations, comme une carte conceptuelle, est souvent utile.

diagram
Figure 2. Carte conceptuelle des principaux groupes d’exigences

Caractéristiques et classes d’utilisateurs

Le logiciel 7 Wonders n’a qu’une seule classe d’utilisateurs : les joueurs. Les joueurs peuvent avoir différents niveaux : débutants, intermédiaires ou experts. Cependant, indépendamment de leur niveau, les joueurs doivent utiliser la même interface utilisateur pour jouer les uns contre les autres.

Potentiellement dans une version ultérieure du logiciel, une classe d’utilisateurs à part, les administrateurs, pourrait voir le jour. Ces utilisateurs spéciaux auraient des droits étendus leur permettant de gérer les parties et les joueurs.

Environnement opérationnel

Décrivez l’environnement dans lequel le logiciel fonctionnera, y compris la plate-forme matérielle, le système d’exploitation et ses versions, ainsi que tout autre composant logiciel ou application avec lequel il doit coexister pacifiquement.

Le logiciel 7 Wonders doit fonctionner sur tout système d’exploitation populaire et récent : Linux, Windows, ou MacOS. Le client Web devrait fonctionner sur tout navigateur Web récent : Firefox, Chrome, Safari, ou Edge.

Contraintes de conception et de mise en œuvre

Décrivez tous les éléments ou problèmes qui limiteront les options disponibles pour les développeurs. Il peut s’agir de politiques d’entreprise ou de réglementation, de limitations matérielles (exigences en matière de temps et de mémoire), d’interfaces avec d’autres applications, de technologies, d’outils et de bases de données spécifiques à utiliser, d’opérations parallèles, d’exigences linguistiques, de protocoles de communication, de considérations de sécurité, de conventions de conception ou de normes de programmation (par exemple, si l’organisation du client est responsable de la maintenance du logiciel livré).

Langages de programmation

  • Le serveur de jeu doit être développé en Java (version ≥ 11), en utilisant le framework Spring.

  • Le client doit être développé en TypeScript (version ≥ 4.0), en utilisant le framework Nuxt.

Langage de conception

  • Les documents sur le développement du logiciel doivent être écrits dans le format Asciidoc.

  • Les diagrammes UML d’analyse, conception et mise en œuvre devront être réalisés en PlantUML.

Conception

Aucune contrainte de conception.

Mise en œuvre

  • Les tests dynamiques doivent utiliser JUnit (version >= 5.0) et Jest (version >= 3.5.0).

  • Le code doit journaliser ses principales opérations en utilisant SLF4J.

Outils de construction

  • Tous les artefacts logiciels doivent utiliser un outil de construction : Maven pour Java, npm pour TypeScript.

Outils de développement

  • Le logiciel de gestion de version Git.

  • Les éditeurs de code VS Code ou Intellij IDEA.

  • La plateforme de lancement d’applications dans des containers Docker.

  • L’application pour tester des API Postman.

Bibliothèques et composants logiciels

Le projet 7 Wonders utilisera les bibliothèques et composants logiciels suivants :

  • Pour la gestion des Websockets : Socket IO ;

  • Pour l’authentification des utilisateurs : JWT ;

  • Pour les requêtes à l’API : Axios ;

  • Pour le style : Sass ;

Vérification

  • Les doubles tests doivent être utilisés pour tester chaque composant indépendamment.

  • Chaque test unitaire doit décrire son intention.

Documentation utilisateur

Aucune documentation utilisateur n’est requise pour la première version du logiciel.

Hypothèses et dépendances

Aucun jusqu’à présent.

Exigences reportées

Sont listées ici les exigences qui pourraient être réalisées dans des versions futures du système.

Tout d’abord, la possible création d’une application mobile sur les différentes plateformes les plus connues comme iOS et Android. De cette exigence pourrait donc naitre la possibilité d’y intégrer un système de tchat en ligne textuel et vocal.

On pourrait également ajouter une interface administrateur pour la gestion et la modération des parties et des joueurs.

Un système de niveau et de classement pourrait voir le jour. Gagner une partie rapporterait de l’expérience et des récompenses.

Exigences en matière d’interface externe

Interfaces utilisateur

Décrivez les caractéristiques logiques de chaque interface entre le produit logiciel et les utilisateurs.

Il peut s’agir d’exemples d’images d’écran, de normes d’interface graphique ou de guides de style de famille de produits à respecter, de contraintes de disposition des écrans, de boutons et de fonctions standard (p. ex., aide) qui apparaîtront sur chaque écran, de raccourcis clavier, de normes d’affichage des messages d’erreur, etc.

Définissez les composants logiciels pour lesquels une interface utilisateur est nécessaire. Les détails de la conception de l’interface utilisateur doivent être documentés dans une spécification d’interface utilisateur distincte.

Interfaces matérielles

Le logiciel n’interagit pas directement avec un quelconque dispositif matériel.

Interfaces logicielles

La partie client du logiciel doit fonctionner sur des navigateurs web, tandis que la partie serveur doit interagir avec une base de données par le biais de l’API Java Data Base Connectivity (JDBC).

Interfaces de communication

Les communications entre le client et le serveur de jeu doivent utiliser des WebSockets.

Exigences fonctionnelles

Décrire les exigences fonctionnelles du système qui peuvent être exprimées et langage naturel. Pour plusieurs applications, c’est la partie principale de la SEL et son organisation doit, par conséquent, être bien réfléchie. Elle est habituellement hiérarchisée par caractéristiques, mais elle peut l’être, par utilisateur ou par sous-système. Les exigences fonctionnelles peuvent inclure les caractéristiques, les capacités et la sécurité.

Lorsque des outils de développement, tels des référentiels d’exigences ou des outils de modélisation sont utilisés, on peut référer à ces données en indiquant l’endroit et le nom de cet outil.

Ici, il ne s’agit plus de décrire le domaine métier, mais de spécifier ce que le système doit faire.

N’oubliez pas qu’il s’agit d’une spécification de que le système doit faire et non pas de comment il le fait.

Création d’une partie

Cette fonctionnalité permet à l’utilisateur authentifié de créer et configurer une nouvelle partie.

Cette fonctionnalité est prioritaire.

Les risques présents sont notament les erreurs réseaux. Cependant, du fait du peu d’utilisateur que nous avons actuellement, on estime ce risque à 4.

Séquences de Stimulus/Réponse

L’utilisateur accède à la page de création de partie.

Il peut ainsi choisir entre une partie publique ou privé en communiquant à l’interface son email, un username et un mot de passe.

Dans le cas d’une partie privé, il recoit un mot de passe unique. Ce sera à lui de transmettre ce mot de passe via un interface de communication tierce.

Une fois la partie créé, l’utilisateur (alors administrateur de la partie) gère le lobby. Il peut choisir le nombre de joueur et sa merveille.

Exigences fonctionnelles

Pour permettre cette fonctionnalité, le logiciel doit intégrer :

  • REQ-1 : Configuration d’une nouvelle partie. Un utilisateur authentifié peut créer un nouvelle partie via l’interface de l’application web. Il pourra configurer les paramètres suivants : nombre de joueurs requis, partie publique ou privée, c’est-à-dire avec ou sans mot de passe, et distribution aléatoire ou non de la face des merveilles aux joueurs.

  • REQ-2 : Création d’un lobby. Une fois une partie configurée, un nouveau lobby doit être créé en enregistrant les paramètres retenus. Ce lobby doit être visible aux autres joueurs sur l’interface de l’application web où sont affichés tous les lobbies. L’utilisateur qui a créé la nouvelle partie doit être automatiquement redirigé vers le lobby associé et être ajouté aux joueurs de la partie. Si l’utilisateur quitte son lobby, il est supprimé. Si la partie n’a pas commencé au bout de 15 min, le lobby est supprimé.

  • REQ-3 : Lancement de la partie. Lorsque tous les joueurs requis sont dans le lobby, ont choisi la face de leur merveille si cette option est activée et ont indiqué qu’ils sont prêts, alors le lobby est supprimé et les joueurs redirigés vers la nouvelle partie.

Description sous la forme d’un cas d’utilisation

Table 1. Création d’un lobby
Item Description

#

1

Cas d’utilisation

Création d’un lobby

Alias

Aucun

Objectif contextuel

Configuration et gestion d’un lobby

Portée

Un utilisateur et le serveur

Niveau

Tâche principale

Condition de succès

Démarrage de la partie

Condition d’échec

Un lobby en attente existe déjà pour cet utilisateur, le nom du lobby est déjà prit.

Acteurs principaux

Utilisateur et le serveur

Acteurs secondaires

Aucun

Événement déclencheur

Depuis l’interface de l’application web, avoir clique pour créer une nouvelle partie.

Priorité

Maximale

Fréquence

Autant de fois qu’un utilisateur veut créer une partie. Un seul lobby peut exister par joueur.

Pré-conditions

Avoir un compte, être authentifié, ne pas être dans une partie déjà en cours, ne pas déjà être en train de créer une autre partie.

Post-conditions

Lobby créé

Scénario nominal

Un utilisateur accède à l’interface de création d’un lobby. Il peut configurer le nom de la partie, le nombre de joueurs requis, la distrbution aléatoire ou non de la face de la merveille, si la partie est publique ou privée et le mot de passe associé. Si aucune erreur n’est rencontrée, le lobby est créé et l’utilisateur est ajouté aux joueurs de la partie. Il est redirigé vers l’interface du lobby.

Extensions

Aucune

Alternatives

Aucune

Cas d’utilisation supérieur

Connexion

Cas d’utilisation subordonnés

Accéder à un lobby

Objectif de performance

Création rapide du lobby

Problèmes ouverts

Problèmes de connexion, expiration du lobby (15min).

Échéancier

1.0

Contraintes

Un lobby ne peut exister que pour 15 min. Il ne peut exister qu’un lobby par utilisateur à la fois. Le nom du lobby doit être unique par rapport aux autres lobbies actifs.

Accéder à une partie

Il s’agit de mettre en évidence comment un utilisateur connecté, d’un point de vue système, peut accéder à une partie publique ou privé.

Description et priorité

Cette fonctionnalité permet alors à l’utilisateur de voir les parties en attente de joueurs et d’en rejoindre une.

Il peut alors choisir entre privé et publique. S’il souhaite accéder à une partie privé, il doit fournir le mot de passe choisis par l’hôte.

La priorité de cette fonctionnalité est maximale car essentiel dans le jeu. Les risques présents sont notament les erreurs réseaux. Cependant, du fait du peu d’utilisateur que nous avons actuellement, on estime ce risque à 4.

Séquences de Stimulus/Réponse

L’utilisateur accède via son navigateur à l’application web. Il doit être authentifié pour accéder à la page proposant les parties.

Ensuite, il choisit son mode de jeu, choisis une partie en déffilant la liste des parties publiques en attente de joueurs ou fournit directement un mot de passe indentifiant une partie privé.

Il accède ansuite au lobby où il va pouvoir consulter la liste de joueurs présent, le nom de l’hôte, les merveilles de chaque joueurs présent et celles qui sont encore disponible.

Il va ensuite pouvoir se metrre sur "Prêt" et attendre que chanque joueur en face de même.

Exigences fonctionnelles

Pour permettre cette fonctionnalité, le logiciel doit intégrer :

  • REQ-1 : Consulter les parties en attente de joueurs. Sur une interface dédiée de l’application web, un utilisateur connectée pourra consulter les parties en attente de joueurs : les lobbies. Cette interface permettra de filtrer les parties publiques et privées. Les informations suivantes seront disponibles pour chaque lobby : nombre de joueurs dans le lobby, nombre de joueurs requis, nom de la partie, type de partie (publique/privée).

  • REQ-2 : Rejoindre une partie privée. Un utilisateur souhaitant rejoindre une partie privée devra saisir le mot de passe du lobby. S’il est incorrect, une erreur sera levée. Sinon, l’utilisateur sera ajouté aux joueurs de la partie et redirigé vers l’interface du lobby. Une merveille lui sera attribué aléatoirement.

  • REQ-3 : Rejoindre une partie publique. Un utilisateur pourra rejoindre une partie publique. Il sera ajouté aux joueurs de la partie et redirigé vers l’interface du lobby. Si le lobby est plein au moment où il souhaite rejoindre, une erreur sera levée. Une merveille lui sera attribué aléatoirement.

  • REQ-4 : Lancement de la partie. Un joueur dans un lobby pourra choisir la face de sa merveille si le lobby le permet. Il pourra indiquer qu’il est prêt. Les informations suivantes seront affichées sur l’interface de l’application web : nom d’utilisateur des joueurs dans le lobby, leur statut (prêt ou non) et leur merveille. Lorsque tous les joueurs seront prêts, la partie se lancera. Si la partie n’est pas lancée au bout de 15 min, le lobby est supprimé, la partie annulée et les utilisateurs redirigés vers l’interface affichant la liste des lobbies.

Description sous la forme d’un cas d’utilisation

Table 2. Accèder à une partie
Item Description

#

2

Cas d’utilisation

Accèder à une partie

Alias

Rejoindre un lobby

Objectif contextuel

Rejoindre une partie, accéder au lobby correspondant

Portée

Joueurs dans le lobby et le serveur

Niveau

Résumé

Condition de succès

Partie rejointe

Condition d’échec

Problème de connexion, le lobby n’existe plus, le nombre de joueurs max est atteint

Acteurs principaux

Utilisateur souhaitant rejoindre le lobby

Acteurs secondaires

Joueurs dans le lobby

Événement déclencheur

L’utilisateur connecté rejoint le lobby

Priorité

Maximale

Fréquence

Un utilisateur peut rejoindre une seule partie à la fois

Pré-conditions

L’utilisateur doit possèder un compte et être authentifié, un lobby doit exister.

Post-conditions

L’utilisateur accède au lobby et peut effectuer ses choix pour jouer

Scénario nominal

Un utilisateur authentifié intéragit avec l’interface de l’application web pour rejoindre un lobby. Si la partie est privée, il doit saisir le mot de passe. En cas d’erreur sur le mot de passe, une erreur est levée.

Il est redirigé vers l’interface du lobby. Les informations suivantes sont affichées : nom des joueurs ayant rejoint la partie, leur merveille, s’ils sont prêts ou non.

Le joueur peut choisir la face de sa merveille si cette option a été autorisée. Il peut se mettre prêt.

Lorsque tous les joueurs sont prêts, la partie se lance.

Extensions

Aucune

Alternatives

Aucune

Cas d’utilisation supérieur

Création d’une partie

Cas d’utilisation subordonnés

Déroulement d’une partie

Objectif de performance

Choisir efficacement sa partie

Problèmes ouverts

Si deux joueurs rejoignent la même partie en même temps, alors qu’il ne reste qu’une place de disponible.

Échéancier

Version 1.0

Contraintes

On ne peut rejoindre qu’une partie à la fois.

Déroulement d’une partie

Cette fonctionnalité permet alors à un joueur de joué au jeu Seven Wonders.

La priorité de cette fonctionnalité est maximale.

Le principal élément de cette fonctionnalité doit permettre la connexion des joueurs. De plus, il faut pouvoir jouer avec les autres utilisateurs en temps réel.

Ces éléments sont très importants et doivent parfaitement fonctionne : les risques sont évalués à 7.

Séquences de Stimulus/Réponse

Le joueur accède à sa merveille. Après que chaque joueur ait choisit sa face, la partie commence.

L’utilisateur découvre son plateau, prend connaissance de son nombre de pièces, ses constructions, ses jetons Conflit. Il peut visualiser ces mêmes informations pour les autres joueurs.

Il reçoit le paquet de cartes et intéragit avec.

Exigences fonctionnelles

Pour permettre cette fonctionnalité, le logiciel doit intégrer :

  • REQ-1 : Partie de Seven Wonders en temps réel. Tous les joueurs doivent pouvoir jouer en temps réel et l’interface de l’application web doit se mettre à jour sans rechargement de la page. Les tours doivent se dérouler en simultané pour tous les joueurs : tous les joueurs reçoivent une main de 7 cartes chacun, tous les joueurs peuvent intéragir avec leur main en même en temps. Un tour se conclut lorsque le dernier joueur à intéragit avec sa main. Un âge se termine au bout de 6 tours.

  • REQ-2 : Voir l’état de la merveille des autres joueurs. Chaque joueur pourra voir l’état de la merveille des autres joueurs : bâtiments construits, jetons Conflit, ressources produites, nom du joueur, merveille.

  • REQ-3 : Effectuer des actions. À chaque tour, tous les joueurs tirent une carte de leur main et peuvent construire leur merveille, acheter des ressources, défausser la carte. Toutes ces actions doivent avoir un animation correspondante sur l’interface la partie de l’application web et être visibles de tous les joueurs.

Description sous la forme d’un cas d’utilisation

Table 3. Déroulement d’une partie
Item Description

#

3

Cas d’utilisation

Déroulement d’une partie

Alias

Aucun

Objectif contextuel

Les joueurs jouent une partie de Seven Wonders. Un vainqueur est désigné à l’issue de la partie.

Portée

Serveur et joueurs dans la partie

Niveau

Résumé

Condition de succès

Être le joueur avec le plus de points de victoires à la fin de l’Âge III

Condition d’échec

Ne pas être le joueur avec le plus de points de victoires, des joueurs se déconnectent pendant la partie.

Acteurs principaux

Joueurs, entre 3 et 7, et le serveur

Acteurs secondaires

Aucun

Événement déclencheur

Tous les joueurs sont prêt dans le lobby.

Priorité

Maximale

Fréquence

On ne peut jouer qu’une partie à la fois

Pré-conditions

Une partie doit exister. Le nombre requis d’utilisateurs authentifiés doivent avoir rejoint la partie et s’être mit prêt dans le lobby. La partie est lancée.

Post-conditions

Le vainqueur est désigné. Il s’agit du joueur avec le plus de points de victoires. À la fin de la partie, les items suivants sont compté automatiquement par le logiciel en points de victoire :

  • Les jetons de conflit militaire ;

  • Chaque lot de trois pièces d’or ;

  • Les points de victoire que rapportent la Merveille (selon son niveau de construction à la fin de la partie) ;

  • Les gains des Bâtiments civils ;

  • Les gains des Bâtiments scientifiques ;

  • Les autres bâtiments éventuels qui rapportent de points de victoire ;

  • Les points de victoire des Guildes.

Le jeu établit le classement des joueurs.

Scénario nominal

Le jeu se déroule en trois Âges. La partie commence à l’Âge I et se termine à la fin de l’Âge III. Durant un Âge, les joueurs jouent 7 cartes qui contribuent à améliorer leur merveille. À la fin de chaque Âge a lieu une phase de bataille où les joueurs voisins opposent leur nom de points militaires. Les vainqueurs gagnent un bonus de points de victoires, les perdants un malus.

Extensions

Aucune

Alternatives

Aucune

Cas d’utilisation supérieur

Accéder à une partie

Cas d’utilisation subordonnés

Aucun

Objectif de performance

À chaque tour du joueur, l’objectif est d’accumuler le plus de points de victoire afin de remporter la partie.

Problèmes ouverts

Aucuns

Échéancier

Version 1.0

Contraintes

Une partie dure 10-30min

Création d’un compte & connexion

Il s’agit de mettre en évidence comment un utilisateur, d’un point de vue système, peut se créer un compte et s’authentifier.

Description et priorité

Cette fonctionnalité permet alors à l’utilisateur, via une page de connexion, la création d’un compte et l’échange de ses données avec le système.

Cette fonctionnalité n’est pas prioritaire car n’est pas obligatoire.

Les risques présents sont notament le piratage et donc donc la récupération par tiers de données des utilisateurs. Du fait de l’importance de le logiciel qui reste pour l’instant simplement dans un cradre universitaire, on estime ce risque à 2.

Séquences de Stimulus/Réponse

L’utilisateur accède via son navigateur à l’application web. Il peut ainsi s’enregistrer en communiquant à l’interface son email, un username et un mot de passe.

Exigences fonctionnelles

Pour permettre cette fonctionnalité, le logiciel doit intégrer :

  • REQ-1 : Création d’un compte. Un utilisateur pourra se créer un compte en entrant son email, son nom d’utilisateur et son mot de passe dans les champs de formulaire de la page dédiée sur l’application web. Le mot de passe devra être unique, le mot de passe et le nom d’utilisateur devront faire au moins 8 caractères. Si les données saisies ne respectent pas ces contraintes, une erreur sera levée.

  • REQ-2 : Connexion à son compte. Un utilisateur ayant un compte pourra s’authentifier en saisissant son email et son mot de passe. Une erreur sera levée si les identifiants sont incorrects.

Description sous la forme d’un cas d’utilisation

Création d’un compte
Table 4. Creation d’un compte
Item Description

#

4

Cas d’utilisation

Création d’un compte

Alias

Nouveau joueur sur le jeu

Objectif contextuel

Création d’un compte, stockage des données de l’utilisateur

Portée

L’utilisateur et le serveur

Niveau

Tâche intermédiaire

Condition de succès

Compte créé

Condition d’échec

Problème de connexion, données fournies incorrectes : email déjà utilisé, mot de passe ou nom d’utilisateur ne respecte pas la contrainte d’au moins 8 caractères.

Acteurs principaux

Nouvel utilisateur

Acteurs secondaires

Aucun

Événement déclencheur

Depuis l’interface de l’application web dédiée à la création d’un compte, avoir cliqué sur le bouton d’envoi du formulaire.

Priorité

Intermédiaire

Fréquence

La création d’un compte intervient une unique fois pour un utilisateur donné

Pré-conditions

Ne pas avoir déjà créé un compte

Post-conditions

Accéder à la fonctionnalité suivante : connexion

Scénario nominal

Sur l’application web, l’utisateur accède à l’interface de création d’un compte depuis et renseigne ses identifiants :

  • Un identifiant,

  • Un email (unique),

  • Un mot de passe.

Il confirme l’envoi des données. Son compte est créé et il est redirigé vers l’interface de connexion.

Extensions

Aucune

Alternatives

Aucune

Cas d’utilisation supérieur

Aucun

Cas d’utilisation subordonnés

Connexion

Objectif de performance

Création du compte rapide : connexion client–serveur efficace

Problèmes ouverts

Problèmes de connexion

Échéancier

Fonctionnalité non-obligatoire, peut être remise à la version 1.1

Contraintes

Aucune

Connexion
Table 5. Connexion à son compte
Item Description

#

5

Cas d’utilisation

Connexion à son compte

Alias

Authentification

Objectif contextuel

Connexion à son compte, authentification d’un utilisateur enregistré

Portée

L’utilisateur et le serveur

Niveau

Tâche intermédiaire

Condition de succès

Authentification réalisée avec succès

Condition d’échec

Problème de connexion, données fournies incorrectes

Acteurs principaux

Utilisateurs enregistrés

Acteurs secondaires

Aucun

Événement déclencheur

Depuis l’interface de l’application web dédiée à la connexion, avoir cliqué sur le bouton d’envoi du formulaire.

Priorité

Intermédiaire

Fréquence

La connexion est fréquente : elle est nécessaire à chaque fois que le token d’authentification de l’utilisateur a expiré ou lorsque l’utilisateur s’était déconnecté

Pré-conditions

Avoir un compte enregistré

Post-conditions

Accéder aux fonctionnalités suivantes : création d’une partie, rejoindre une partie, jouer une partie.

Scénario nominal

Sur l’application web, l’utisateur accède à l’interface de connexion et renseigne ses identifiants :

  • Email,

  • Mot de passe.

Il confirme l’envoi des données. Le serveur valide son authentification et il est redirigé vers la liste des parties. Si son authentification échoue, une erreur est levée.

Extensions

Aucune

Alternatives

Aucune

Cas d’utilisation supérieur

Création d’un compte

Cas d’utilisation subordonnés

Aucun

Objectif de performance

Connexion rapide : connexion client–serveur efficace

Problèmes ouverts

Problèmes de connexion

Échéancier

Fonctionnalité non-obligatoire, peut être remise à la version 1.1

Contraintes

Aucune

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é

La création d’un compte utilisateur et donc le stockage de données personnelles telles que l’adresse mail doit respecter les règles européennes sur la protection des données (RGPD).

En particulier, la méthode d’authentification doit mettre en oeuvre toutes les mesures nécessaires pour assurer la sécurité du logiciel.

On utilisera HTTPS pour la communication client–serveur.

Attributs de qualité logicielle

Précisez toute autre caractéristique de qualité du produit qui sera importante pour les clients ou les développeurs. En voici quelques-unes : adaptabilité, disponibilité, exactitude, flexibilité, interopérabilité, maintenabilité, portabilité, fiabilité, réutilisabilité, robustesse, testabilité et convivialité.

Rédigez-les de manière à ce qu’elles soient spécifiques, quantitatives et vérifiables, si possible.

Au minimum, clarifiez les préférences relatives pour divers attributs, comme la facilité d’utilisation par rapport à la facilité d’apprentissage.

Extensibilité

Le logiciel devra respecter toutes les bonnes pratiques qui permettent son extensibilité.

Maintenabilité

  • Le logiciel doit être lisible et facile à maintenir.

  • La source Java doit respecter les directives de Google.

Règles métier

Quelques règles métier notable de Seven Wonders :

  • Vendre une ressource à une cité voisine NE retire PAS au joueur la possibilité de l’utiliser, durant le même tour, pour sa propre construction.

  • Il est possible, durant le même tour, d’acheter une ou plusieurs ressources aux deux cités voisines.

  • Les ressources achetées ne sont utilisables que le tour où elles sont achetées. Les joueurs ne peuvent jamais refuser de commercer.

  • Certains bâtiments commerciaux réduisent le coût unitaire des ressources de 2 à 1 pièce.

  • Si les deux cités voisines d’un joueur produisent une ressource convoitée, il est libre de se fournir chez l’un ou chez l’autre.

  • Pour acheter des ressources, le joueur doit disposer des pièces de monnaie au début du tour. Les pièces gagnées par le commerce lors d’un tour ne peuvent pas être utilisées ce même tour mais seulement à partir du tour suivant.

Autres exigences

La base de données devra respecter les bonnes pratiques en la matière.

Définissez toute autre exigence non couverte ailleurs dans le SRS. Il peut s’agir d’exigences relatives à la base de données, à l’internationalisation, à la législation, aux objectifs de réutilisation du projet, etc. Ajoutez toute nouvelle section pertinente pour le projet.

Annexe A : Glossaire

Définissez tous les termes nécessaires pour interpréter correctement le SRS, y compris les acronymes et les abréviations. Vous pouvez créer un glossaire distinct couvrant plusieurs projets ou l’ensemble de l’organisation, et vous contenter d’inclure les termes spécifiques à un seul projet dans chaque SRS.

Annexe B : Modèles d’analyse

Voir le chapitre Analyse du domaine pour plus de détails.

Annexe C : Liste à déterminer

Recueillir une liste numérotée des références TBD (To Be Done) qui restent dans le SRS afin de pouvoir les suivre jusqu’à leur fermeture.