Spécification des exigences
1. Introduction
Ce chapitre décrit les exigences du projet «QuizMaker». Il suit la norme ISO/IEC/IEEE 29148-2018.
1.1. Avant-propos
L’objectif de ce document est de décrire les spécifications des exigences du projet "QuizMaker" 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.
1.2. Définitions, acronymes et abréviations
- Norme ISO/IEC/IEEE 29148-2018
-
Ingénierie des systèmes et du logiciel — Processus du cycle de vie — Ingénierie des exigences
- SRS
-
Software Requirements Specification, Spécification des Exigences Logicielles
| Acronyme | Description |
|---|---|
JDBC |
Java DataBase Connectivity |
JPA |
Java Persistence API |
SGBD |
Système de Gestion de Bases de Données |
| Terme | Définition |
|---|---|
WebSockets |
Protocole servant à établir des connexions TCP persistantes entre serveurs et clients |
REST |
Protocole servant à établir des connexions HTTP entre serveurs et clients |
1.3. Public visé et suggestions de lecture
Ce document est à la destination des étudiants de première année du Master Informatique de Nantes Université.
1.4. Portée du projet
Le système QuizMaker permettra à des enseignants d’évaluer leurs étudiants grâce à des questions à choix multiple
1.5. Références
-
«IEEE Standard 830-1993: IEEE Recommended Practice for Software Requirements Specifications»
1.6. Vue d’ensemble
Le reste de ce document contient une description globale du système logiciel QuizMaker (section Section 1.8, les exigences fonctionnelles spécifiques (section Section 6) et les exigences non-fonctionnelles du système (voir Section 2).
1.8. Description générale
1.8.1. Perspectives du produit
QuizMaker est un gestionnaire de questionnaires. Le logiciel QuizMaker doit permettre aux étudiants qui sont connectés à Internet d’utiliser leurs appareils connectés pour participer. Ainsi, "QuizMaker" est une version électronique en ligne d’une évaluation.
Bien que le système soit distribué et organisé en différents composants, les acteurs doivent le percevoir comme un seul logiciel.
La Figure 1 présente l’architecture globale préconisée du logiciel.
Il est organisé en trois nœuds logiques distincts.
Le nœud Navigateur contient les artefacts nécessaires à l’exécution du Client Web.
Ce client utilise les protocoles WebSockets et/ou REST pour communiquer avec l’artefact Serveur QuizMaker,
déployé sur le nœud Serveur.
Le nœud Serveur contient tous les artefacts nécessaires à la gestion de plusieurs questionnaires.
Le Serveur utilise JPA pour interroger le SGBD, qui stocke toutes les données du logiciel.
Le SGBD déployé sur le nœud Database.
Les acteurs interagissent avec le Client Web,
qui utilise le protocole les WebSockets et/ou REST pour communiquer avec (au maximum) un serveur QuizMaker.
|
Un Nœud Logique est une cible de déploiement qui représente une ressource informatique sur laquelle
les artefacts peuvent être déployés pour être exécutés. Plusieurs nœuds logiques peuvent s’exécuter sur un même Nœud Physique ou Dispositif. |
QuizMaker sera le premier d’une ligne de produits de type "Évaluation". Son architecture servira comme exemple à d’autres produits.
1.8.2. Fonctionnalités du produit
Le logiciel QuizMaker doit assurer trois fonctions principales :
-
Connexion au serveur : permettre à un utilisateur de rejoindre un serveur pour ensuite créer ou participer à un questionnaire.
-
Création d’un questionnaire : permettre aux enseignants d’élaborer des questionnaires.
-
Participation à un questionnaire : permettre aux étudiants de répondre à questionnaire et recevoir une évaluation.
1.8.3. Caractéristiques et classes d’utilisateurs
Le logiciel QuizMaker a deux classes d’utilisateurs : les enseignants et les étudiants.
Les étudiants utilisent la même interface utilisateur pour participer aux questionnaires, indépendamment de leur connaissance en informatique.
Les enseignants peuvent gérer les étudiants et les questionnaires.
2. Exigences non-fonctionnelles
2.1. Contraintes de conception et de mise en œuvre
2.1.1. Langages de programmation
- NF-Req-1
Le serveur de jeu doit être développé en Java (version ≥ 11), et utiliser le framework Spring Boot (version ≥ 3.0.0).
- NF-Req-2
Le client doit être développé en TypeScript (version ≥ 4.0), et utiliser le Angular Framework (version ≥ 16.0).
2.2. Langage de conception
- NF-Req-3
La documentation de développement du logiciel doit être écrite dans le format Asciidoc.
- NF-Req-4
Les diagrammes de conception et de mise en œuvre devront être réalisés en PlantUML, en suivant la norme UML.
2.3. Mise en œuvre
- NF-Req-5
Les tests du code Java doivent utiliser JUnit Jupiter (version ≥ 5.0).
- NF-Req-6
Le code doit journaliser ses principales opérations en utilisant SLF4J et TypeScript Logging.
2.4. Outils de production
- NF-Req-7
Tous les artefacts logiciels doivent utiliser un outil de production : Maven (version ≥ 3.9.0) ou Gradle (version ≥ 8.0) pour Java et npm (version ≥ 9.0.0) pour TypeScript.
- NF-Req-8
La production doit se faire sans aucune configuration. Le simple lancement de Maven (
mvn package) et de npm (npm run build) doit être suffisant pour produire le logiciel.
3. Vérification
-
Les méthodes du composant domaine du backend doivent être vérifiées à l’aide de tests unitaires. Chaque test unitaire doit décrire clairement son intention.
- NF-Req-10
Les tests unitaires du serveur doivent couvrir toutes les méthodes du composant domaine. Pour chaque méthode, tous les cas importants doivent être couverts, si besoin en s’aidant d’une approche de test combinatoire.
5. Exigences en matière d’interface externe
5.2. Interfaces matérielles
-
Aucune, le logiciel n’interagit pas directement avec un quelconque dispositif matériel.
6. Exigences fonctionnelles
6.1. Fonctionnalité « Créer un questionnaire »
6.2. Fonctionnalité « Réaliser une épreuve »
6.2.1. Description et priorité
| Id | FR-2 |
|---|---|
Description |
Permet à un enseignant d’évaluer les étudiants d’un module grâce à un questionnaire. |
Priorité |
Moyenne |
6.2.2. Description sous la forme d’un cas d’utilisation
| Item | Description |
|---|---|
# |
UC-2 |
Cas d’utilisation |
Réalisation d’une épreuve |
Alias |
|
Objectif contextuel |
Évaluer les étudiants grâce à un questionnaire de type QCM |
Portée |
Système (QuizMaker) |
Niveau |
Utilisateur |
Échéance |
Version 1.0.0 |
Condition de succès |
Les étudiants répondent aux questions et obtiennent leurs notes |
Condition d’échec |
L’enseignant n’a pas les notes des étudiants pour son épreuve |
Acteurs principaux : |
L’enseignant, les étudiants |
Acteurs secondaires |
|
Événement déclencheur |
L’enseignant souhaite évaluer ses étudiants |
Priorité |
Haute |
Fréquence |
|
Pré-conditions |
|
Post-conditions |
Les étudiants ont une note pour cette épreuve |
Scénario nominal |
|
Extensions |
Aucune |
Alternatives |
Aucune |
Cas d’utilisation supérieur |
Aucun |
Cas d’utilisation subordonnés |
Aucun |
Objectif de Performance |
Aucun |
Problèmes ouverts |
Aucun, pour l’instant |
Contraintes |
|
Annexes |
Aucun |
7. Autres exigences non-fonctionnelles
7.1. Exigences de performance
- NF-Req-11
QuizMaker doit être simple, ce qui signifie que les acteurs doivent avoir un retour rapide de leurs actions et que les retards dus aux problèmes de communication/connexion doivent être correctement informés.
- NF-Req-12
Le client Web doit pouvoir s’exécuter sur un ordinateur personnel doté de 4 Go de RAM.
7.3. Attributs de qualité logicielle
7.3.1. Maintenabilité
- NF-Req-13
Le logiciel doit être lisible et facile à maintenir.
- NF-Req-14
Les sources Java doivent respecter les directives de codage Google.
| Les directives de codage Java peuvent être facilement vérifiées grâce à PMD |
- NF-Req-15
La source TypeScript doit respecter les directives de codage Google.
| Configurez npm pour utiliser ESLint et Prettier, et forcer votre code à respecter des conventions de codage TypeScript. |
7.4. Exigences de configurabilité
- NF-Req-16
Le SMTP utilisé par le serveur pour envoyer des emails doit être configurable (nom d’hôte, port, nom d’utilisateur, mot de passe) au moment du déploiement du serveur.
|
Pour tester manuellement votre serveur, vous pouvez utiliser le SMTP de l’université via votre compte mail étudiant :
|
- NF-Req-17
Le SGBD utilisé par le serveur doit être configurable (nom d’hôte, port, nom d’utilisateur, mot de passe) au moment du déploiement du serveur.
8. Liste d’exigences
Code |
Titre |
| Code | Titre |
|---|---|
Annexe A : Glossaire
Terme |
Description courte |
Signification |
QCM |
Questionnaire à choix multiples |
Un QCM est un procédé d’évaluation dans lequel sont proposées plusieurs réponses pour chaque question. Une ou plusieurs de ces propositions de réponse sont correctes. Les autres sont des réponses erronées, également appelées "distracteurs" (ou "leurres"). Le QCM permet à un enseignant de voir qu’un étudiant a bien compris et retenu une réponse juste et qu’il est capable d’identifier les erreurs. |