Document d’exigences logicielles : guide pratique du SRS

Réussissez vos projets logiciels grâce à un document d’exigences solide. Ce guide pratique montre comment rédiger des spécifications claires et testables.

Tools
Kreante24 août 2026il y a 14 heures
Hands organizing materials for software document

Un document d’exigences logicielles (SRS) est le contrat testable du projet. Il définit exactement ce que le logiciel doit faire, et chaque ligne doit tenir dans un test de recette. Commencez tout de suite : prenez votre principal objectif métier et convertissez-le en une exigence atomique et testable formulée avec « doit ».

Les organismes de normalisation ont déjà fait le gros du travail de réflexion. IEEE Std 830 et son successeur, l’ISO/CEI/IEEE 29148, en posent la structure. Le SWEHB de la NASA y ajoute une rigueur pratique en matière de vérification et de traçabilité. Ce guide suit les deux.

Votre premier brouillon n’a pas besoin d’être parfait. Il doit être :

  • Assez précis pour qu’un développeur puisse construire à partir de lui sans deviner
  • Assez testable pour que la QA puisse le valider ou l’invalider sans vous demander ce que vous vouliez dire
  • Assez traçable pour que n’importe qui puisse demander « pourquoi cela existe-t-il ? » et obtenir une vraie réponse

À retenir

Un document d’exigences logicielles ne fonctionne que si chaque exigence est testable, traçable jusqu’à un objectif métier et relue par des parties prenantes techniques et non techniques avant le début du développement.

PointDétails
Définition et enchaînementLe SRS répond au « quoi », entre le BRD (le « pourquoi ») et le SDD (le « comment »).
Utiliser des formulations en « doit »La voix active assortie de critères d’acceptation mesurables rend les exigences testables par la QA.
Construire une matrice de traçabilitéReliez chaque identifiant d’exigence à un cas de test et à un objectif métier pour éviter la dérive du périmètre.
Dimensionner le documentLes petits projets peuvent fusionner BRD et SRS ; les projets réglementés ou multi-équipes ont besoin de les séparer.
Attribuer des méthodes de vérificationChaque exigence a besoin d’une méthode déclarée : test, inspection, analyse ou démonstration.

Qu’est-ce qu’une spécification d’exigences logicielles ?

Une spécification d’exigences logicielles décrit les comportements fonctionnels et non fonctionnels précis que le logiciel doit présenter. C’est l’accord formel entre les parties prenantes et l’équipe de développement, et il devient la base de la conception, des tests et de l’estimation des coûts.

La confusion vient généralement de la soupe d’acronymes qui l’entoure. Voici la distinction qui compte : le document d’exigences métier (BRD) répond au pourquoi le projet existe et au résultat métier qu’il vise. Le SRS répond au quoi le logiciel doit faire pour y arriver. Le document de conception logicielle (SDD), rédigé ensuite, répond au comment les ingénieurs vont le construire. Sautez le SRS et vous obtenez une équipe qui travaille sur une hypothèse partagée plutôt que sur une spécification partagée, ce qui est une façon plus lente et plus coûteuse de découvrir que vous n’étiez pas d’accord.

Plusieurs publics dépendent d’un SRS qui fait bien son travail :

  • Les développeurs s’en servent pour cadrer et estimer le travail
  • Les ingénieurs QA s’en servent pour écrire des cas de test sans demander de précisions
  • Les intégrateurs et les prestataires tiers s’en servent pour comprendre les contrats d’interface
  • Les auditeurs de conformité s’en servent pour confirmer que les obligations réglementaires ou de sécurité sont réellement traitées

Suivre les conventions de l’IEEE et de la NASA n’est pas une case bureaucratique à cocher. C’est ce qui rend le document vérifiable par quelqu’un qui n’était pas dans la pièce au moment de sa rédaction, ce qui est toute la raison d’être de l’écrire.

Qui rédige et approuve le SRS ?

La rédaction est rarement une affaire individuelle. Sur la plupart des projets, un product owner ou un analyste métier rédige les exigences, un architecte de solutions les relit pour en vérifier la faisabilité technique, et un rédacteur technique en nettoie souvent la langue pour la clarté et la cohérence. Dans les petites équipes, une seule personne porte les trois casquettes. C’est très bien, tant que l’étape de relecture a lieu.

  1. Rédiger. Le product owner ou l’analyste métier écrit la première passe, centrée sur l’intention métier traduite en énoncés testables.
  2. Relire techniquement. Un architecte ou un responsable technique vérifie la faisabilité, les interfaces manquantes et les hypothèses implicites.
  3. Faire valider par les parties prenantes. Un ensemble minimal d’approbateurs (product owner, responsable ingénierie et responsable QA au minimum) signe avant le début du développement.
  4. Boucler le recueil des besoins. Les exigences arrivent rarement toutes faites. Ateliers, entretiens structurés et démonstrations de prototypes font apparaître des lacunes qu’un simple entretien manque, surtout avec des parties prenantes non techniques qui ne savent pas encore ce qu’elles ignorent.

Chez Kreante, notre approche de la communication avec les parties prenantes considère cette étape de recueil comme la partie du document où l’effet de levier est le plus fort. Trompez-vous ici, et tout ce qui suit hérite de l’erreur.

Que doit contenir un document d’exigences ?

Voici un squelette section par section que vous pouvez copier directement dans un document et commencer à remplir. Cette structure emprunte largement au plan recommandé par l’IEEE Std 830 et aux exigences de contenu minimal SWE-109 de la NASA, adaptées aux équipes qui n’ont pas besoin d’un formalisme de niveau aérospatial.

1. Introduction
Objet, périmètre, public visé, définitions et acronymes, et références aux documents liés comme le BRD. Tenez en une page. Personne ne lit une introduction de dix pages, et si quelqu’un doit le faire, c’est qu’autre chose a échoué dans le document.

2. Vue d’ensemble du système
Un court récit décrivant ce que fait le système, qui l’utilise et comment il s’insère dans l’environnement existant. Incluez les besoins des parties prenantes au niveau du résumé ; le détail viendra plus tard.

3. Exigences spécifiques
C’est le cœur du document, divisé en deux :

  • Les exigences fonctionnelles, regroupées par fonctionnalité ou par module (certaines équipes emploient le terme CSCI, pour Computer Software Configuration Item, sur les systèmes de grande taille). Chacune décrit un comportement discret que le système doit exécuter.
  • Les exigences non fonctionnelles, couvrant la performance, la sécurité, la disponibilité et l’ergonomie, chacune avec un seuil d’acceptation mesurable. « Le système doit être rapide » n’est pas une exigence. « Le système doit renvoyer les résultats de recherche en moins de 800 millisecondes pour 95 % des requêtes en charge normale » en est une.

4. Exigences d’interface
Interfaces avec les systèmes externes, API, formats d’échange de données et contraintes au niveau de l’interface utilisateur. Si votre produit couvre un développement web et mobile, c’est dans cette section que doivent figurer les contraintes propres à chaque plateforme (comportement hors ligne, limites des notifications push, permissions des appareils), et non enfouies dans une exigence fonctionnelle.

5. Modèles de données et contraintes
Relations entre entités, règles de conservation des données, contraintes réglementaires (HIPAA, RGPD, PCI DSS le cas échéant) et toutes les limites des systèmes hérités que le nouveau développement doit respecter.

6. Hypothèses et dépendances
Ce que vous tenez pour vrai et qui, s’il s’avère faux, change l’exigence. La disponibilité d’une API tierce. Les fenêtres de compatibilité navigateur. Les hypothèses de staffing pour un déploiement par étapes.

7. Champs de traçabilité par exigence
Chaque exigence individuelle doit porter au minimum : un identifiant unique, le texte de l’exigence lui-même, sa justification (pourquoi elle existe), sa priorité et sa méthode de vérification.

8. Annexes
Glossaire, dictionnaire de données, schémas et journal des modifications.

Section du SRSPublic principalCe qui déraille si on la saute
Introduction et périmètreToutes les parties prenantesDérive du périmètre, aucune définition partagée de « terminé »
Exigences fonctionnellesDéveloppeurs, QADéveloppements ambigus, reprises après livraison
Exigences non fonctionnellesArchitectes, QA, opsProblèmes de performance et de sécurité découverts en production
Exigences d’interfaceIntégrateurs, équipes mobile/webPassages de relais cassés entre systèmes ou plateformes
Champs de traçabilitéChef de projet, QA, auditeursAucun moyen de prouver qu’une exigence a été testée ou justifiée

Comment rédiger une exigence testable ?

La testabilité est le nerf de la guerre. Une exigence qu’on ne peut pas prouver vraie ou fausse dans un cas de test n’est pas une exigence. C’est un souhait.

  1. Employez la voix active et « doit ». Les recommandations de la NASA sur la rédaction des exigences préconisent le schéma « [Le système] doit [action] », parce qu’il force un sujet et un comportement uniques et vérifiables dans une seule phrase.
  2. Gardez chaque exigence atomique. Une exigence, un comportement. Si vous vous surprenez à utiliser « et », vérifiez si vous n’avez pas écrit deux exigences agrafées ensemble.
  3. Attachez des critères d’acceptation. Un format « étant donné / quand / alors » fonctionne bien : étant donné un utilisateur connecté, quand il soumet un formulaire vide, alors le système doit afficher une erreur de validation sans délai.
  4. Séparez la justification de l’exigence elle-même. Si une partie prenante spécifie un détail d’implémentation (« utiliser un menu déroulant »), demandez pourquoi. Le besoin sous-jacent est peut-être « réduire les erreurs de saisie », ce qui laisse aux ingénieurs la marge de proposer une meilleure solution que celle qui s’est retrouvée spécifiée par accident.
  5. Priorisez délibérément. MoSCoW (Must, Should, Could, Won’t) fonctionne bien pour les développements par étapes. Le modèle de Kano, qui trie les fonctionnalités en catégories de base, de performance et d’enchantement, aide à décider ce qui mérite vraiment sa place dans la version un et ce qui peut attendre.

Voici un avant/après :

Vague : « Le système devrait gérer beaucoup d’utilisateurs. »
Testable : « Le système doit prendre en charge des utilisateurs authentifiés simultanés avec des temps de chargement de page inférieurs à deux secondes la plupart du temps. »


Une exigence qu’on ne peut pas tester n’est pas une spécification. C’est un espoir déguisé en spécification, et la QA le découvrira à la dure, généralement pendant le sprint qui précède le lancement.

Conseil de pro : Écrivez chaque exigence non fonctionnelle avec un chiffre dedans. « Rapide », « sécurisé » et « convivial » sont des opinions. « Moins de 800 ms », « chiffré en AES-256 » et « tâche accomplie en moins de trois clics » sont des exigences.

Le dimensionnement compte aussi. Une start-up de trois personnes qui construit un MVP n’a pas besoin d’un SRS de 40 pages avec une matrice de traçabilité digne de la NASA. Une plateforme de santé réglementée, si.

Comment vérifier et tracer les exigences dans la durée ?

Chaque exigence a besoin d’une méthode de vérification attribuée : test, inspection, analyse ou démonstration. Toutes les exigences ne se vérifient pas de la même façon. Un seuil de performance se teste. Une décision d’architecture de sécurité se vérifie souvent par inspection ou par analyse.

Une matrice de traçabilité des exigences (RTM) est l’outil qui relie le tout. C’est un simple tableau qui associe chaque identifiant d’exigence à son cas de test et à l’objectif métier qu’il sert.

Le SWEHB de la NASA désigne ce type de traçabilité bidirectionnelle, vers l’avant jusqu’aux tests et vers l’arrière jusqu’aux objectifs métier, comme la pratique qui réduit le plus les reprises sur les projets complexes. Elle stoppe aussi la dérive du périmètre, car toute exigence qui ne peut se rattacher à un objectif réel est vite démasquée.

Quelques habitudes rendent tout cela maintenable :

  • Versionnez le SRS lui-même, pas seulement le code ; étiquetez les révisions avec des dates et un résumé des changements.
  • Mettez en place un processus léger de demande de changement : proposer, évaluer l’impact, approuver, mettre à jour la RTM.
  • Validez tôt par des démonstrations de prototype avant d’écrire l’exigence définitive, pour repérer l’ambiguïté avant qu’elle ne coûte un sprint de reprise.
  • Associez la QA dès la rédaction, et non après, pour que les méthodes de vérification soient attribuées honnêtement plutôt que rajoutées après coup.

À quoi ressemble un modèle de SRS prêt à l’emploi ?

Copiez ce squelette directement. Chaque entrée d’exigence a besoin au minimum de ces champs :

  • Identifiant : identifiant unique (par exemple FR-014, NFR-003)
  • Texte de l’exigence : l’énoncé en « doit » lui-même
  • Justification : pourquoi elle existe, rattachée à un objectif métier
  • Priorité : étiquette MoSCoW
  • Méthode de vérification : test, inspection, analyse ou démonstration
  • Critères d’acceptation : la condition « étant donné / quand / alors » qui décide de la réussite ou de l’échec

Trois exemples dont s’inspirer :

  1. FR-009 : « Le système doit permettre à un utilisateur enregistré de téléverser une photo de profil de 5 Mo maximum au format JPEG ou PNG. » Justification : soutient l’objectif de personnalisation de la section 2.3 du BRD. Priorité : Should. Vérification : Test.
  2. NFR-007 : « Le système doit chiffrer toutes les données au repos en AES-256. » Justification : requis pour la conformité HIPAA sur les données patients. Priorité : Must. Vérification : Inspection. (Les projets de santé pèsent plus lourd ici. Une checklist de conformité HIPAA mérite d’être passée en revue avant de finaliser cette section.)
  3. FR-031 : « Le système doit envoyer une notification par e-mail automatisée dans les 60 secondes suivant la confirmation de commande. » Justification : réduit les demandes de support après achat. Priorité : Must. Vérification : Test.

Pour les petits projets, un simple tableur partagé ou un document Notion avec ces champs suffit. Pour les projets multi-équipes ou réglementés, hébergez le SRS dans un véritable système de gestion documentaire ou un outil de gestion des exigences où l’historique des versions et les validations sont imposés automatiquement, et non suivis de mémoire.

Comment Kreante cadre les exigences dans ses projets réels ?

Le travail sur les exigences n’a rien de théorique chez Kreante. C’est le premier vrai livrable de la plupart des missions, avant qu’une seule ligne de code ne soit écrite.

  • La phase de conseil de Kreante commence par relier les objectifs métier à une feuille de route d’initiatives, chacune assortie d’un retour attendu, qui devient la colonne vertébrale du futur SRS.
  • La phase de coaching forme les équipes internes à rédiger et relire elles-mêmes des exigences testables, pour que la compétence reste dans la maison au lieu de repartir avec un prestataire.
  • Sur le projet DAVCO AI et sur les missions Roc Solutions et INSPO, c’est cette discipline de cadrage en amont qui a permis de livrer des prototypes en quelques semaines plutôt qu’en quelques mois.
  • L’article de Kreante sur la maîtrise d’une communication claire en gestion de projet détaille les techniques de recueil des besoins employées lors de ce cadrage initial.

Le point de vue de Kreante sur la documentation des exigences

La plupart des conseils qu’on trouve en ligne sur le SRS traitent la documentation comme un exercice de conformité : remplir chaque section de l’IEEE parce que la norme le dit, en espérant que l’exhaustivité remplace la clarté. Ce n’est pas le cas. Un SRS de 60 pages que personne ne lit au-delà de la page 12 vaut moins qu’un document serré de 8 pages où chaque exigence est testable.

Ce qui est surestimé dans les conseils habituels, c’est l’exhaustivité pour elle-même. Ce qui est sous-estimé, c’est la traçabilité. Une exigence sans justification documentée est une exigence que personne ne peut défendre six mois plus tard, quand quelqu’un demande « mais pourquoi fait-on ça ? ». Les équipes qui sautent les champs de traçabilité pour gagner du temps le paient presque toujours plus tard, dans une réunion de cadrage qui dure trois heures de trop.

Si vous ne retenez qu’une chose de ce guide, privilégiez l’énoncé en « doit » et le critère d’acceptation plutôt que les titres de sections. Des normes comme l’IEEE 830 et le SWEHB de la NASA vous donnent une structure, mais une structure sans testabilité n’est que de la mise en forme. Rédigez l’exigence de telle sorte qu’un inconnu puisse la tester sans vous poser de question, et le reste du document tend à s’organiser autour.

Sources

FAQ

Un exemple bien formé se lit ainsi : « Le système doit verrouiller un compte utilisateur après cinq tentatives de connexion échouées consécutives en dix minutes », assorti d’une méthode de vérification déclarée (test) et d’une étiquette de priorité (Must).

Commencez par rédiger les exigences fonctionnelles et non fonctionnelles sous forme d’énoncés en « doit », attribuez à chacune une méthode de vérification et une justification, puis faites passer le brouillon par une relecture technique et une validation des parties prenantes avant le début du développement.

Un product owner ou un analyste métier le rédige généralement, un architecte de solutions le relit pour en vérifier la faisabilité, et un groupe restreint de parties prenantes (responsables produit, ingénierie et QA) le valide avant le démarrage des travaux.

Utilisez le squelette section par section de ce guide, qui suit la structure de l’IEEE 830 et du SWEHB de la NASA, et adaptez la liste de champs (identifiant, texte de l’exigence, justification, priorité, méthode de vérification) à un tableur ou à l’outil documentaire de votre équipe.

Recommandé