Garder les exigences traçables quand le logiciel évolue
Reliez un résultat utilisateur aux décisions, aux critères d’acceptation, à l’implémentation et aux preuves. Actualisez ces liens lorsque les hypothèses changent.
Publié par TaigaNotre méthode de rédaction
Ce que vous apprendrez
- Rédiger une exigence observable avec des limites explicites.
- Suivre une exigence à travers une modification et ses contrôles.
- Identifier les documents en aval touchés par une hypothèse modifiée.
Décrire un comportement vérifiable
« Créer un export client moderne » laisse des décisions importantes en suspens. Cette formulation ne définit ni les utilisateurs, ni les enregistrements, ni les champs, ni le comportement en cas d’échec. Un agent doit demander des précisions ou poser des hypothèses. Des hypothèses non consignées sont difficiles à examiner ensuite.
Utilisez une exigence fictive avec une limite claire : un manager authentifié peut exporter les clients actifs de sa propre organisation. L’export contient l’identifiant et le nom affiché du client. Il exclut les coordonnées et les enregistrements archivés. Un utilisateur sans rôle de manager ne reçoit aucun export.
Il reste à décider du format, du volume, du temps de réponse et du traitement des échecs. Signalez explicitement les inconnues. Une spécification utile expose l’incertitude au lieu de la masquer dans un texte assuré.
Distinguer exigences et choix d’implémentation
L’utilisateur a besoin d’un ensemble d’enregistrements autorisés dans un format exploitable. La requête de base de données, la bibliothèque et la structure de l’endpoint sont des choix d’implémentation. Reliez-les à l’exigence sans transformer chaque choix actuel en besoin métier permanent.
Consignez une décision importante avec son contexte, ses alternatives et sa justification. Par exemple, un export synchrone peut convenir aux petits volumes. Un volume plus grand peut nécessiter un traitement en arrière-plan et un contrôle d’autorisation distinct au téléchargement.
Gardez l’exigence stable si possible, tout en versionnant la décision modifiée. Cela aide les personnes chargées de la revue à distinguer une autre implémentation d’un autre engagement envers les utilisateurs.
Créer une courte chaîne de preuves
Utilisez des identifiants compréhensibles lors des revues. Dans cet exemple, EXPORT-01 peut identifier la limite de l’organisation. Ce nom est illustratif ; il n’impose aucun système de numérotation.
| Lien | Exemple |
|---|---|
| Exigence | EXPORT-01 : uniquement les enregistrements de l’organisation du manager |
| Décision de conception | Imposer l’appartenance sur le serveur, pas dans le navigateur |
| Implémentation | La PR modifie la requête et le chemin d’autorisation |
| Vérification | Une demande d’enregistrements d’une autre organisation est refusée |
| Preuve de livraison | Le résultat du contrôle identifie le commit et l’artefact acceptés |
La chaîne doit pointer vers des preuves réelles. Un nom de test contenant l’identifiant de l’exigence ne prouve pas que l’assertion la vérifie. Examinez le test et le chemin de production qu’il exécute.
Le SSDF du NIST situe les exigences et la vérification dans le développement sécurisé. Utilisez la traçabilité pour rendre ces activités vérifiables, et non pour produire de la documentation sans utilité. Lire le référentiel.
Examiner les conséquences d’une hypothèse modifiée
Supposons que le métier ait maintenant besoin des clients archivés. Ce changement touche plus qu’un paramètre de requête. Vérifiez les règles de conservation, les autorisations, le volume attendu, les explications aux utilisateurs et le sens des rapports existants.
Signalez les documents et les contrôles touchés comme devant être revus. Conservez la décision précédente afin qu’une personne chargée de l’exploitation puisse expliquer une ancienne version. Ne réécrivez pas silencieusement l’historique pour faire paraître la conception actuelle inévitable.
Un agent peut aider à trouver les références et proposer des mises à jour. Les responsables doivent résoudre les exigences contradictoires et accepter le comportement modifié. Une liste de fichiers correspondants constitue un point de départ, pas une analyse d’impact complète.
Garder un dossier assez court pour être utilisé
Consignez les décisions qui influent sur l’implémentation, la vérification et l’exploitation. Évitez de répéter la même exigence dans de nombreux documents déconnectés. Préférez des liens vers une seule source tenue à jour.
Avant d’accepter une modification, demandez-vous si la personne qui la revoit peut suivre son objectif jusqu’aux preuves réelles. Avant de l’exploiter, vérifiez si le responsable du service peut retrouver la limite pertinente et la décision de reprise. Ce sont des moyens concrets d’évaluer l’utilité de la traçabilité.
Faire l’exercice
Rédigez une exigence permettant à un manager d’exporter les clients actifs. Précisez les utilisateurs autorisés, la limite de l’organisation, les champs, le comportement en cas d’échec et une condition d’achèvement mesurable. Reliez-la à un test et à une livraison fictifs. Modifiez ensuite l’exigence pour inclure les clients archivés et listez les décisions touchées.
Télécharger la fiche d’exercice (Markdown)Vérifier votre compréhension
Sources et lectures complémentaires
- NIST: Secure Software Development Framework ↗
- Google Engineering Practices: What to look for in a code review ↗
Lectures Taiga sur le sujet
Désactiver cette option supprime toute la progression enregistrée dans ce navigateur.
Votre progression reste dans ce navigateur. Sans compte ni suivi.