Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 916 minDébutant

Spécifier l'interface : maquettes annotées, user stories et critères d'acceptation

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • rédiger la partie interface d'un cahier des charges ;
  • écrire des exigences ergonomiques vérifiables ;
  • annoter une maquette : données, règles, états et comportements ;
  • écrire des critères d'acceptation qui vérifient l'ergonomie.

4 exercices corrigés1 schéma

Spécifier l'interface, c'est décrire les écrans de façon assez précise pour que le développeur sache quoi coder, le testeur quoi vérifier et le client quoi valider : exigences ergonomiques vérifiables, maquettes annotées avec leurs données, leurs règles, leurs comportements et leurs états, user stories accompagnées de critères d'acceptation qui couvrent aussi l'ergonomie. Ce chapitre montre comment écrire chacun de ces éléments pour Prêt'Matos, comment les relier entre eux et comment faire valider l'interface.

La partie interface d'un cahier des charges

Le cahier des charges décrit le besoin et ses contraintes. Sa partie consacrée à l'interface contient, selon la taille du projet, tout ou partie des éléments suivants :

ÉlémentContenuPour Prêt'Matos
Utilisateurs et contexteLes profils, leurs équipements, leur environnement ; les personasLes trois personas du chapitre 4
Exigences ergonomiques et d'accessibilitéDes exigences numérotées et vérifiablesENF-05 et ENF-06, ci-dessous
Arborescence et enchaînementsLa liste des écrans et les chemins des tâches principalesLes écrans ECR1 à ECR11 du chapitre 5
MaquettesUn wireframe ou une maquette par écran, avec ses étatsMaquettes Figma, version validée
Charte ou design systemCouleurs, typographie, composantsLe petit design system de Sorbier
Textes de l'interfaceLibellés, messages d'erreur, de confirmation, d'aide ; ton (tutoiement ou vouvoiement)Liste des messages, vouvoiement
CompatibilitéNavigateurs, systèmes, tailles d'écran, languesDeux dernières versions des navigateurs courants ; de 360 px de large au grand écran

Dans un projet agile comme Prêt'Matos, ces éléments ne sont pas tous écrits d'avance : les exigences générales et l'arborescence le sont au début, les maquettes et les critères d'acceptation de chaque écran juste avant le sprint où il sera développé.

Écrire des exigences ergonomiques vérifiables

« Intuitive », « ergonomique », « moderne », « accessible » : ces mots expriment une attente, mais personne ne peut dire à la recette s'ils sont respectés. Une exigence ergonomique utile précise qui, quoi, dans quelles conditions et comment on le vérifie (écrire une exigence vérifiable).

Exigence floueExigence vérifiable
« L'application doit être intuitive. »ENF-05 Lors d'un test utilisateur, chaque salarié qui n'a jamais utilisé l'application réserve un matériel en moins de 2 minutes, sans aide.
« L'application doit être accessible. »ENF-06 Les écrans ECR1 à ECR6 respectent les critères de niveau A et AA des WCAG 2.2, vérifiés par un audit sur ces six écrans avant la mise en service.
« L'application doit être réactive. »ENF-07 Toute action affiche un retour en moins de 0,1 seconde (bouton enfoncé, indicateur) ; toute attente de plus d'une seconde affiche « Chargement… ».
« L'application doit être jolie et moderne. »ENF-08 Les écrans utilisent exclusivement les composants et les jetons du design system de Sorbier (version 1.0).
« L'application doit marcher sur mobile. »ENF-09 Toutes les fonctions des salariés sont utilisables sur un écran de 360 pixels de large, sans défilement horizontal, avec des cibles tactiles d'au moins 44 × 44 pixels.

La maquette annotée

Une maquette montre un état de l'écran à un instant. Pour qu'elle serve de spécification, on l'annote : des repères numérotés sur l'écran, et dans la marge, ce que l'image ne dit pas.

Type d'annotationCe qu'elle préciseExemple sur ECR5 « Mes réservations »
DonnéesD'où vient chaque information, son formatDésignation du matériel ; dates au format JJ/MM ; statut calculé à partir des dates et de la sortie
Règles d'affichageTri, filtres, regroupements, limitesGroupes « En cours » puis « À venir » ; dans chaque groupe, date de retrait croissante ; les réservations terminées vont dans « Historique »
ComportementsCe que fait chaque action, au clic, au clavier, au survol« Annuler » ouvre la confirmation ECR6 ; Échap la ferme ; après l'annulation, le focus va au titre du groupe
ÉtatsLes variantes de l'écran (voir plus bas)Chargement, vide, erreur, rempli
DroitsQui voit quoi, qui peut faire quoiLe salarié ne voit que ses réservations ; « Annuler » n'existe que pour les réservations à venir
TextesLes libellés et messages exacts« Vous n'avez aucune réservation. » ; « Réservation de VP-01 du 24/03 annulée. »
AccessibilitéStructure, noms accessibles, focus, annoncesTitre principal « Mes réservations » ; bouton nommé « Annuler la réservation de VP-01 du 24/03 » ; message d'annulation annoncé

Une annotation précise vaut mieux qu'une maquette de plus. « Les réservations sont triées par date » laisse deux questions : laquelle (retrait ou retour) et dans quel sens ? « Tri par date de retrait croissante » n'en laisse aucune.

Les états d'un écran

Un écran qui affiche des données n'a pas un seul aspect. Les maquettes oublient souvent ses autres états, et le développeur les invente alors en dernière minute, ou pas du tout : un écran blanc pendant le chargement, une liste vide sans explication, une erreur muette.

ChargementVideErreurRempliMes réservationsChargement de vosréservations…Mes réservationsVous n'avez aucuneréservation.Voir le catalogueMes réservations!Impossible de chargervos réservations.Vérifiez votreconnexion.RéessayerMes réservationsEN COURSPC-07portabledu 12/03 au 18/03À rendre le 18/03À VENIRVP-01vidéoprojecteurdu 24/03 au 26/03Annuler
Les quatre états d'un écran de liste : chargement, vide, erreur et rempli
ÉtatQuandCe que l'écran doit montrer
ChargementPendant l'appel à l'APIUn indicateur et un texte, annoncés aux lecteurs d'écran ; la structure de la page déjà en place
VideAucune donnée à afficherUne phrase qui explique, et l'action qui permet d'en sortir (« Voir le catalogue »)
ErreurL'API ne répond pas, ou répond une erreurCe qui s'est passé, en clair, et une action (« Réessayer ») ; jamais la trace technique
RempliLes données sont làLe contenu, organisé selon les règles d'affichage
Partiel ou volumineuxBeaucoup de donnéesPagination, « Afficher plus », recherche
InterditL'utilisateur n'a pas le droitUn message (« Cet écran est réservé à la logistique ») et un lien vers son accueil

Les formulaires ont aussi leurs états (vierge, en cours de saisie, en erreur, en cours d'envoi, envoyé) et chaque composant les siens (normal, survolé, focus, désactivé). Le design system les décrit une fois pour toutes ; la maquette de chaque écran ne dessine que ceux qui lui sont propres.

User stories et critères d'acceptation qui vérifient l'ergonomie

Une user story dit ce que veut l'utilisateur ; ses critères d'acceptation disent quand elle est terminée. Pour que l'ergonomie soit vérifiée, elle doit figurer dans ces critères : le message exact, l'emplacement du focus, l'état après l'action, le comportement au clavier. Voici la story 6 de Prêt'Matos, « En tant que salarié, je veux voir et annuler mes réservations afin de libérer le matériel quand je n'en ai plus besoin », au format Étant donné / Quand / Alors :

gherkin
# language: fr
Fonctionnalité: Annuler une réservation

  Scénario: Annuler une réservation à venir
    Étant donné que Julie a réservé VP-01 du 24 au 26 mars 2027
    Et que nous sommes le 15 mars 2027
    Quand Julie choisit « Annuler » sur cette réservation dans « Mes réservations »
    Alors une confirmation affiche « Annuler la réservation de VP-01 du 24/03 au 26/03 ? »
    Et elle propose les boutons « Annuler la réservation » et « Garder la réservation »

  Scénario: Confirmer l'annulation
    Étant donné que la confirmation d'annulation de VP-01 est affichée
    Quand Julie choisit « Annuler la réservation »
    Alors la réservation disparaît du groupe « À venir »
    Et le message « Réservation de VP-01 du 24/03 annulée. » s'affiche et est annoncé aux lecteurs d'écran
    Et VP-01 apparaît disponible du 24 au 26 mars dans le catalogue

  Scénario: Renoncer à l'annulation au clavier
    Étant donné que la confirmation d'annulation de VP-01 est affichée
    Quand Julie appuie sur la touche Échap
    Alors la confirmation se ferme et la réservation est conservée
    Et le focus revient sur le bouton « Annuler » de cette réservation

  Scénario: Une réservation commencée ne s'annule pas
    Étant donné que Julie a retiré PC-07 le 12 mars 2027
    Quand elle affiche « Mes réservations » le 15 mars 2027
    Alors PC-07 apparaît dans le groupe « En cours » avec la mention « À rendre le 18/03 »
    Et aucune action « Annuler » n'est proposée pour PC-07

Ces scénarios servent trois fois : ils lèvent les ambiguïtés avant le développement (que devient le focus ? que dit le message ?), ils deviennent les cas du cahier de recette, et ils peuvent être automatisés dans un test de bout en bout (Playwright). L'anomalie A-03 de la recette de Prêt'Matos, une réservation refusée sans message, n'aurait pas passé la revue si le critère d'acceptation avait donné le message exact.

La Definition of Done de l'équipe, commune à toutes les stories, ajoute les vérifications d'ergonomie qui valent partout :

  • l'écran correspond à la maquette validée, avec tous ses états ;
  • les textes sont ceux de la liste des messages, sans faute ;
  • tout se fait au clavier, avec un focus visible ;
  • l'écran a été vérifié à 360 pixels de large et avec un zoom à 200 % ;
  • les contrastes des nouveaux éléments ont été mesurés ;
  • l'outil automatique d'accessibilité ne signale aucune erreur.

Relier exigences, maquettes, stories, cas d'utilisation et tests

Chaque élément de la spécification doit pouvoir être relié aux autres : c'est la traçabilité. Elle permet de vérifier qu'aucune exigence n'est oubliée et de savoir quoi retester quand un écran change.

ExigenceUser storyÉcransCas d'utilisation UMLVérification
EF-04 Réserver un matérielStory 4ECR1, ECR2, ECR3, ECR4Réserver un matérielCas de recette R-01 à R-03
EF-06 Voir et annuler ses réservationsStory 6ECR5, ECR6Annuler une réservationScénarios ci-dessus
ENF-05 Réserver en moins de 2 minutes sans aideToutes les stories de réservationECR1 à ECR4—Test utilisateur de la version 2
ENF-06 WCAG 2.2 niveau AAToutesECR1 à ECR6—Audit avant la mise en service

Le diagramme de cas d'utilisation et sa description textuelle disent ce que le système fait pour chaque acteur ; les maquettes disent comment l'acteur le fait à l'écran ; les critères d'acceptation disent comment on le vérifie. Les trois se répondent : un scénario d'erreur de la description textuelle (« le matériel est déjà réservé ») doit avoir son message sur la maquette et son critère d'acceptation.

Faire valider l'interface

La validation se fait en deux temps.

Avant le développement, la Product Owner (ou le client) valide les maquettes et les critères d'acceptation. Présente-les par tâche, note les remarques, fais une nouvelle version et obtiens un accord explicite, daté : un courriel, un commentaire dans l'outil de maquettage, une ligne dans le compte rendu de réunion. C'est la version de référence.

Après le développement, la recette vérifie que l'application est conforme : chaque critère d'acceptation est rejoué, les exigences ergonomiques sont mesurées (le test chronométré de l'ENF-05, l'audit de l'ENF-06). Les écarts deviennent des anomalies, avec leur gravité.

Exercices

Exercice 1 sur 4 Des exigences vérifiables Réussi À revoir

Réécris ces exigences d'un cahier des charges pour une application de réservation de salles de réunion, de façon qu'on puisse les vérifier à la recette.

  1. « L'application doit être simple pour les nouveaux salariés. »
  2. « Les erreurs doivent être bien gérées. »
  3. « L'application doit respecter les normes d'accessibilité. »
  4. « Le planning doit être lisible. »
Voir la réponseMasquer la réponse de l'exercice 1

Des formulations possibles :

  1. « Lors d'un test avec cinq salariés arrivés depuis moins d'un mois, chacun réserve une salle pour une réunion donnée en moins de 90 secondes, sans aide. »
  2. « Chaque erreur de saisie est signalée sous le champ concerné par un message qui indique comment la corriger ; la saisie est conservée. La liste des messages est validée par le client. »
  3. « Les écrans de réservation respectent les critères de niveau A et AA des WCAG 2.2, vérifiés par un audit avant la mise en service. »
  4. « Le planning d'une journée s'affiche sans défilement horizontal de 360 pixels de large au grand écran ; le texte a un contraste d'au moins 4,5:1 ; une salle occupée est signalée par un texte, pas seulement par une couleur. »

Tu avais trouvé ?

Exercice 2 sur 4 Les états d'un écran Réussi À revoir

L'écran ECR10 « Prêts en retard » de la logistique liste les matériels qui auraient dû être rendus, avec l'emprunteur et le nombre de jours de retard. Décris ses états (chargement, vide, erreur, rempli) et ce que chacun doit afficher.

Voir la réponseMasquer la réponse de l'exercice 2
ÉtatAffichage
ChargementTitre « Prêts en retard » déjà affiché, indicateur et texte « Chargement des prêts en retard… », annoncé aux lecteurs d'écran
Vide« Aucun prêt en retard aujourd'hui. » : c'est une bonne nouvelle, pas une erreur ; un lien vers « Aujourd'hui »
Erreur« Impossible de charger les prêts en retard : vérifiez votre connexion. » et un bouton « Réessayer »
RempliUn prêt par ligne : matériel, emprunteur, date de retour prévue, nombre de jours de retard écrit (« 3 jours de retard »), action « Envoyer un rappel » ; tri par retard décroissant

On peut ajouter l'état « interdit » : un salarié qui ouvre l'adresse de cet écran voit « Cet écran est réservé à la logistique » (et le serveur refuse les données, comme le vérifie le cas de recette R-04).

Tu avais trouvé ?

Exercice 3 sur 4 Des critères d'acceptation Réussi À revoir

Écris, au format Étant donné / Quand / Alors, deux scénarios d'acceptation pour la story « En tant que magasinier, je veux enregistrer le retour d'un matériel en scannant son étiquette afin de ne pas le chercher dans une liste » : le cas nominal et le cas d'un matériel qui n'est pas en prêt. Pense à l'ergonomie : message, focus, enchaînement.

Voir la réponseMasquer la réponse de l'exercice 3
gherkin
# language: fr
Fonctionnalité: Enregistrer un retour par scan

  Scénario: Le matériel scanné est en prêt
    Étant donné que PC-07 est en prêt chez Julie depuis le 12 mars 2027
    Et que l'écran « Enregistrer un retour » est affiché
    Quand Noah scanne l'étiquette de PC-07
    Alors l'écran affiche « PC-07, prêté à Julie Lefèvre depuis le 12/03 »
    Et la date de retour est pré-remplie avec la date du jour
    Et le choix de l'état « Bon état » est proposé par défaut

  Scénario: Le matériel scanné n'est pas en prêt
    Étant donné que VP-01 n'est pas en prêt
    Quand Noah scanne l'étiquette de VP-01
    Alors le message « VP-01 n'est pas en prêt : vérifiez l'étiquette ou cherchez le matériel par son numéro. » s'affiche
    Et le champ de recherche reçoit le focus
    Et aucun retour n'est enregistré

Les scénarios donnent le message exact, la valeur par défaut et la place du focus : ce sont eux qui garantissent qu'une fois codé, l'écran sera aussi pratique que sur la maquette.

Tu avais trouvé ?

Exercice 4 sur 4 La traçabilité Réussi À revoir

La Product Owner décide de modifier l'écran ECR3 « Réserver » : le motif devient obligatoire pour les vidéoprojecteurs. En t'appuyant sur le tableau de traçabilité du chapitre, liste ce qu'il faut mettre à jour et retester.

Voir la réponseMasquer la réponse de l'exercice 4
  • L'exigence EF-04 et la règle de gestion (motif obligatoire pour les vidéoprojecteurs).
  • La maquette de ECR3 : le libellé du motif (« Motif » sans « facultatif » pour un vidéoprojecteur), la phrase sur les champs obligatoires, le nouveau message d'erreur.
  • Les critères d'acceptation de la story 4 : un scénario « vidéoprojecteur sans motif » refusé avec son message.
  • La description textuelle du cas d'utilisation « Réserver un matériel » : une étape et un scénario d'erreur.
  • Les tests : les cas de recette R-01 à R-03 (rejoués en non-régression) et un nouveau cas pour le motif ; le test de l'ENF-05 si le temps de réservation risque d'augmenter.
  • La documentation d'utilisation, si elle décrit le formulaire.

Tu avais trouvé ?

Chapitre terminé !

Fais les 4 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Coder un formulaire accessible en HTML et ReactRevoir le sommaire du cours