J'ai été chargé d'élaborer des exigences et des spécifications pour un projet que notre groupe démarre.
J'ai réalisé que je ne connaissais pas la différence; une recherche sur Google vient de m'embrouiller davantage - il semble que certaines personnes disent que les spécifications sont des exigences, mais à un niveau inférieur.
La réponse sonore est que les exigences sont ce que votre programme doit faire, les spécifications sont la façon dont vous prévoyez de le faire.
Une autre façon de voir les choses est que les exigences représentent l'application du point de vue de l'utilisateur ou de l'entreprise dans son ensemble. La spécification représente l'application du point de vue de l'équipe technique. Les spécifications et les exigences communiquent à peu près les mêmes informations, mais à deux publics complètement différents.
Les exigences documentent ce qui est nécessaire - elles ne doivent pas spécifier le comment, mais le quoi.
Les spécifications documentent comment atteindre les exigences - elles doivent spécifier comment.
Dans de nombreux endroits, ces documents ne sont pas séparés et sont utilisés de manière interchangeable.
Je suis ingénieur système dans le domaine aérospatial, où les deux termes sont largement utilisés. La distinction est claire et pas aussi complexe que les autres la font.
A spécification est un document qui spécifie un système ou un produit, par ex. une spécification de développement pour un F-14. Il y a beaucoup de sections/contenu dans une spécification: exigences, définitions, documents de référence, glossaire, informations de vérification, etc.
Un exigence est une déclaration unique de quelque chose que le produit ou le système doit faire. Une spécification peut contenir des centaines d'exigences. Selon la méthodologie de la vieille école, l'énoncé des exigences doit utiliser le mot "doit" pour séparer les exigences des énoncés de faits ou des définitions. (Je ne sais pas si les enfants agiles nouveaux-nés s'en tiennent à tout cela ou non; la rigueur a son utilité mais est parfois un peu difficile).
Donc, une spécification est un document rempli d'exigences, ainsi que d'autres informations complémentaires et auxiliaires.
Exigences:
Déterminer les besoins ou les conditions à remplir pour un produit nouveau ou modifié, en tenant compte des exigences éventuellement conflictuelles des différents intervenants.
Caractéristiques:
Ils donnent une idée précise du problème à résoudre pour pouvoir concevoir efficacement le système et estimer le coût des alternatives de conception. Ils fournissent des conseils aux testeurs pour la vérification (qualification) de chaque exigence technique.
La citation est extraite de "Systems Engineering Fundamentals*".
Les exigences sont basées sur les besoins des parties prenantes, les spécifications sont davantage un document intérieur détaillé et technique. Ils sont différents, mais ils parlent de la même chose.
* Defense Acquisition University Press, 2001. version PDF du texte.
Les exigences sont la description par les utilisateurs de ce que le produit fini, à leurs yeux, devrait faire.
La spécification est la description technique de la solution en général, couvrant les exigences et bien plus encore - par exemple coût, détails techniques, problèmes, etc.
Par conséquent, l'un des points principaux est que les exigences doivent passer en premier avant qu'une spécification puisse être écrite.
(Remarquez la terminologie - produit et solution - la même chose mais sous des perspectives différentes ...)
Exigence - ce que le système ou le sous-système doit (doit) faire.
Spécification - Qu'est-ce que le composant, le sous-système ou le système.
Ceci est essentiel dans l'industrie de la fabrication de dispositifs médicaux, car vous devez effectuer une vérification par rapport à vos exigences (entrées) pour démontrer que vous avez des spécifications valides (sorties). Les pièges typiques de cette industrie sont que les entreprises (1) oublient de définir les exigences (car elles ne comprennent pas la différence entre les exigences et les spécifications); (2) Effectuer la vérification par rapport uniquement aux spécifications et (3) Ne pas garantir que les exigences sont traduites avec précision en spécifications de sous-ensemble et de composant.
Une fois que tout cela est fait, vous devez ensuite valider les exigences utilisateur pour le produit ont été satisfaites.
Une spécification est une exigence qui a passé la faisabilité et est prête à être mise en œuvre. C'est une exigence qui a évolué jusqu'à la phase de conception.
En d'autres termes:
Exemple:
Comme vous pouvez le voir, le contenu des deux peut être le même. La différence est que l'exigence est un artefact d'analyse. La spécification est un artefact de conception.
Dans une documentation finale telle que construite, vous trouverez généralement le mot "spécification", au lieu de "exigence", car les exigences ont été converties en spécifications.
Remarque: l'exemple ci-dessus contient des éléments de conception, en raison de contraintes de conception.
Peut-être que la confusion vient du fait que j'ai entendu les spécifications se référer aux documents de spécification des exigences commerciales ou aux documents SRS (Software Requirement Specification) standard IEEE.
Exemple de modèle SRS standard IEEE
J'ai également entendu le terme spécifications faire référence de manière plus informelle aux spécifications techniques qui expliquent les décisions de conception et un plan de mise en œuvre.
EDIT: Je viens de remarquer que le lien est incorrect ... Je posterai un lien correct sous peu.
Dans mes recherches, j'ai trouvé des spécifications à utiliser pour les brevets et la construction de maisons (dans le cadre d'un contrat).
La définition d'une exigence du Webster's Unabridged Dictionary (3rd New Int'l Ed.) Est:
a) quelque chose qui est voulu ou nécessaire: Nécessité b) quelque chose demandé ou demandé: une condition requise ou essentielle: une qualité, un cours ou un type de formation requis
Je pense que ce qui précède les montre clairement différents. Je suppose que vous pourriez appeler les exigences de niveau inférieur de la spécification, mais je pense que c'est une perversion du terme exigence à mon humble avis.
Les exigences sont ce que fait l'application
Les spécifications sont la façon dont l'application fait ce qu'elle fait.
Ils doivent être orthogonaux!
Les chefs de produit écrivent les exigences, les ingénieurs principaux rédigent les spécifications.
Dans une entreprise précédente créant des produits commerciaux, nous avions la distinction suivante:
Les exigences sont ce que le système doit faire. Ils peuvent être de niveau inférieur, des exigences détaillées et ils peuvent être fonctionnels ou non fonctionnels.
Les spécifications sont les choses que fait le système tel que construit. Par exemple. vous pourriez avoir une exigence stipulant que le système doit avoir un comportement X à –10 ° C. La spécification réelle du système peut être que le système fait X à –5 ° C; ce serait dans la feuille envoyée aux clients potentiels lorsqu'ils souhaitent acheter le système.
NB dans ce cas, la spécification ne correspond pas à l'exigence.
Une façon, peut-être pas la bonne, de voir les choses:
Exigences sont des choses (capacités, fonctionnalités, comportements, etc.) qui rapportent de la valeur à l'utilisateur. Pas concerné par les internes; seules les entrées et sorties de la boîte (et peut-être la taille, la forme et la couleur) sont importantes ici.
Spécifications sont des choses (capacités, fonctionnalités, comportements, etc.) qui permettent cette valeur pour l'utilisateur. Ici, les internes de la boîte sont importants, car avec les interfaces externes et les caractéristiques mentionnées ci-dessus, ils définissent l'ensemble du système.