Quelle est la différence entre les exigences et les spécifications? [fermé]

122

J'ai été chargé de définir les exigences et les spécifications d'un projet lancé par notre groupe.

J'ai réalisé que je ne connaissais pas la différence. une recherche sur Google m'a simplement dérouté davantage - il semblerait que certaines personnes disent que les spécifications sont des exigences, mais à un niveau inférieur.


la source
Je suis d'accord avec les réponses au vote élevé, mais je pense aussi que le terme spécification est parfois utilisé comme un terme plus générique dans l'industrie du logiciel, faisant référence à tout document décrivant un système ou un logiciel. Comme preuve - google "spécification des exigences". Lorsqu'il est utilisé de cette manière, cela signifie un document qui spécifie quelque chose - c'est-à-dire: spécifie les exigences pour un logiciel. Je ne jugerai pas s'il s'agit d'un usage correct du mot ou pas. Je voulais simplement souligner que la spécification ne signifie pas toujours la même chose pour tout le monde.
Shane Wealti
1
Oui, c’est la raison pour laquelle les gens devraient dire «exigences commerciales» et «spécifications de conception» / «spécifications techniques» ou quelque chose du genre. Les mots seuls sont assez vagues.
user606723
Pensez-y comme ceci (à proprement parler): Exigences = exigences doc et spécifications = documents d'utilisation / de conception
Doctorat
4
Pourquoi ne demandez-vous pas à la personne pour laquelle vous les créez? Ils sont les seuls à pouvoir répondre à vos besoins spécifiques .
Jaap
Cet article offre une réponse complète: ece.cmu.edu/~koopman/des_s99/requirements_specs
Julien-L

Réponses:

129

La bonne réponse est que les exigences sont ce que votre programme doit faire, les spécifications sont la façon dont vous envisagez 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 la même information, mais à deux publics complètement différents.

Bryan Oakley
la source
4
Le quoi / comment le son est correct, en quelque sorte; mais déroutant, parce que vous pouvez aussi regarder la spécification d’un programme comme décrivant ce qu’il doit faire, et la conception étant la façon dont il devrait le faire. Un autre est pl déclaratif (comme prolog et SQL), dans lequel vous indiquez le quoi pas le comment . Une résolution est qu’il s’agit d’une hiérarchie d’abstractions, avec un parent indiquant quoi et des enfants indiquant comment (extérieur ou intérieur). Je préfère de beaucoup votre second point de vue, ce qui est plus proche de « ce qu'il est pour » contre « ce qu'il est » , à savoir avantages par rapport à fonction.
13ren
Je suis généralement d'accord avec vous, mais ce n'est qu'un "autre" avis et non la bonne réponse. Par exemple, jetez un coup d'œil à la page Wiki pour les exigences ( en.wikipedia.org/wiki/Requirement ). Il existe des exigences non fonctionnelles qui, par définition, sont destinées à l'équipe technique. Ou exigences architecturales et contraintes, encore une fois techniques, mais ils ne les appellent pas «spécifications». Je pense qu'il n'y a pas de réponse correcte et que ce sera toujours flou d'une entreprise à l'autre et d'un développeur à l'autre.
Jeach
1
Jetez un oeil à la réponse 'Adam Wuerl' ci-dessous, je pense que c'est la déclaration la plus précise à la question posée.
Jeach
1
@ Jeach: "ci-dessous" [sic] est relatif. Il est peut-être en dessous de ce message en ce moment, mais il pourrait évoluer au-dessus, rendant votre commentaire plus difficile à comprendre
Bryan Oakley
1
Une autre perspective .. Wikipedia définit les spécifications comme un "ensemble d'exigences". Cela signifie qu'une spécification peut ne contenir qu'une seule exigence, s: = {r1}. Il semble plus que les "exigences" familières soient des exigences "de haut niveau", tandis que les "spécifications techniques" sont des exigences de bas niveau, une chose LOD.
Lance Pollard
38

Les exigences documentent ce qui est nécessaire - elles ne devraient pas spécifier le comment, mais le quoi.

Les spécifications expliquent comment satisfaire aux exigences - elles doivent spécifier le comment.

Dans de nombreux endroits, ces documents ne sont pas séparés et sont utilisés de manière interchangeable.

Oded
la source
2
Dans mon entreprise, nous utilisons normalement les termes "spécification des exigences" pour le quoi (vous spécifiez, notez les détails de ce que vous faites) et "spécification de la conception" pour le comment (vous spécifiez, notez les détails, de la prévoir de le mettre en œuvre).
Giorgio
16

Je suis un ingénieur système dans le domaine de l'aérospatiale, où les deux termes sont largement utilisés. La distinction est claire et pas aussi complexe que les autres le font.

Une spécification est un document qui spécifie un système ou un produit, par exemple une spécification de développement d'élément principal pour un F-14. Une spécification comporte de nombreuses sections / contenus: exigences, définitions, documents de référence, glossaire, informations de vérification, etc.

Une exigence est une déclaration unique de quelque chose que le produit ou le système doit faire. Une spécification peut avoir des centaines d'exigences. La méthodologie de la vieille école dit que l'énoncé des besoins doit utiliser le mot "doit" pour séparer les exigences des énoncés de faits ou des définitions. (Je ne suis pas sûr que les enfants agiles à la pointe de la mode respectent ou non tout cela. La ruse a son utilité, mais il est parfois un peu difficile.)

Une spécification est donc un document rempli d'exigences, ainsi que d'autres informations complémentaires et auxiliaires.

Adam Wuerl
la source
4
Comme je l'ai dit dans un autre commentaire, il est très flou pour tout le monde et le sera probablement toujours. Mais sur la base de mes propres recherches TRÈS approfondies sur ce sujet précis, je dirais que votre réponse est la plus exacte possible de mes propres constatations / conclusions.
Jeach
2
Toujours utile pour obtenir la contribution d'un véritable ingénieur. Merci!
LeWoody
Alternativement, une spécification peut avoir 0 exigences. Votre exemple est vraiment bon pour une discipline d'ingénierie aéronautique très spécifique. Je ne suis pas sûr que cela s'applique généralement au domaine du développement / programmation de logiciels. Lorsque la plupart des logiciels sont dictés par les exigences de l'entreprise, il est logique de commencer par un document détaillé des exigences de l'entreprise avant d'évaluer les contraintes techniques et de concevoir une solution. La spécification technique suivrait la BRD, documenterait les contraintes et fournirait une approche détaillée et spécifique permettant de satisfaire les exigences opérationnelles de la BRD.
Bryan 'BJ' Hoffpauir Jr.
1
@ Bryan'BJ'Hoffpauir Je suis sûr qu'il existe des cas où les documents sont étiquetés comme des spécifications et ne comportent aucune exigence, mais je dirais que c'est un mauvais usage du terme. Une spécification est un document d'exigences - fin de récit. Il s'agit d'un terme technique largement accepté dans davantage de domaines que celui de l'aérospatiale et de la défense. Il est indiscutable dans l'ingénierie des systèmes, qui est la discipline responsable des exigences et de la vérification. Même dans le cas où vous décrivez le terme s'applique: la BRD est une spécification, la spécification technique en ressemble également à une autre, mais avec différents types d'exigences.
Adam Wuerl
13

Exigences:

Déterminez les besoins ou les conditions à satisfaire pour un produit nouveau ou modifié, en tenant compte des exigences éventuellement contradictoires des différentes parties prenantes.

Caractéristiques:

Ils donnent une idée précise du problème à résoudre pour leur permettre de concevoir efficacement le système et d’estimer le coût des solutions de rechange. Ils fournissent des conseils aux testeurs pour la vérification (qualification) de chaque exigence technique.

La citation est tirée de "Notions fondamentales en ingénierie des systèmes * ".

Les exigences sont basées sur les besoins des parties prenantes, les spécifications sont davantage un document interne 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.

talabes
la source
Je pense qu'il est important que votre définition indique que les spécifications définissent le PROBLÈME. De cette manière, une spécification PROBLEME est une exigence. Une SOLUTION ou une spécification de conception fait partie de la conception.
LeWoody
6

Les exigences sont la description par les utilisateurs de ce que le produit fini, à leurs yeux, doit 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, technicité, problèmes, etc.

Par conséquent, l’un des points principaux est que les exigences doivent avoir la priorité avant de pouvoir rédiger une spécification.

(Remarquez la terminologie - produit et solution - la même chose mais sous des perspectives différentes ...)

Arj
la source
1
J'échangerais les termes "produit" et "solution", car une solution correspond généralement au problème du client, alors qu'un produit correspond généralement au vendeur (c'est-à-dire au responsable de la mise en œuvre technique). Un contraste similaire bénéfice / fonction, lorsque des prestations en termes de clients (ce qui est les utiliser pour), et est en fonction des termes de mise en œuvre (ce qui en fait est , donc nous pouvons le faire).
13
1
Je vois ce que vous voulez dire, mais je pense que l’un ou l’autre angle décrit adéquatement la situation. Je pensais qu'un client achèterait un produit - comme vous le faites lorsque vous allez dans un magasin. Un éditeur de logiciels proposerait alors sa solution au problème sous-jacent. Si je devais partir à la recherche d'une solution à mon problème, je penserais probablement: "J'ai besoin d'un produit qui fait xyz", pas "J'ai besoin d'une solution à mon problème d'abc". C'est juste une question de préférence, je pense.
Arj
intéressant. Je peux voir des clients "à la recherche d'un produit", lorsqu'il existe une catégorie de produits bien établie. Mais ils recherchent ce produit car ils ont déjà compris que cela résoudrait leur problème - c’est-à-dire qu’ils cherchaient ce produit non pas pour lui-même, mais comme solution. Il est également vrai qu'un fournisseur vend son produit comme une "solution" - mais c'est parce qu'il essaie de communiquer avec les clients (qui cherchent des solutions à leurs problèmes) et de créer quelque chose qui leur conviendra. Construisant réellement le produit (c'est-à-dire, la chose elle-même et ses caractéristiques indépendamment de la raison pour laquelle ils sont nécessaires)
13ren
Je peux voir des clients "cherchant un produit", lorsqu'il existe une catégorie de produits bien établie, mais ils le recherchent comme solution à un problème / besoin qu'ils ont. Les fournisseurs commercialisent leurs produits en tant que "solutions", car ils communiquent avec les clients (qui ont des problèmes à résoudre). Lors de la construction du produit (la chose elle-même et ses caractéristiques, pas la raison pour laquelle elles sont construites). L'un des arguments est qu'un problème peut avoir des solutions très différentes - mais un produit est une chose spécifique.
13ren
[Expliquant pourquoi deux commentaires]: Les commentaires SO sont si pénibles. Si vous appuyez sur "retour", le commentaire sera soumis, même s'il s'agit d'une zone de texte multiligne. Et si vous prenez plus de 5 minutes pour le terminer, il n'acceptera pas l'édition. Donc, vous devez le soumettre comme un deuxième commentaire. Je montais seulement pour l'adapter à la longueur. soupir . La prochaine fois, je ferai simplement passer deux commentaires en premier lieu ... [de toute façon, je conviens que le point de vue - acheteur / vendeur - constitue la principale distinction. Je suis troublé par votre terminologie, mais je pense que cela approfondit ma compréhension d'essayer d'expliquer pourquoi.]
13ren
4

Exigence - ce que le système ou le sous-système doit (doit) faire.

Spécification - Ce que le composant, le sous-système ou le système IS.

Cela est essentiel dans le secteur 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 exigence et spécification); (2) Effectuez une vérification par rapport aux spécifications uniquement et (3) ne garantissez pas que les exigences sont converties avec précision en spécifications de sous-assemblage et de composants.

Une fois que tout cela est fait, vous devez ensuite valider les exigences de l'utilisateur pour le produit.

Paul Bacchus
la source
3

La confusion est peut-être due au fait que les spécifications font référence à des documents de spécification des exigences commerciales ou à des documents SRS (spécification des exigences logicielles) conformes à la norme IEEE.

Exemple de modèle SRS standard IEEE

J'ai également entendu dire que le terme spécifications se référait 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.

arbre_érable
la source
1
Bon point sur le terme SRS!
LeWoody
2
Le lien est maintenant complètement brisé. Je ne suis pas sûr de ce que cela indiquait ni du matériel sur lequel il devrait être indiqué .
3

Une spécification est une exigence qui a fait ses preuves et est prête à être mise en œuvre. C'est une exigence qui a évolué jusqu'à la phase de conception.

En d'autres termes:

  • Une exigence est un comportement (ou un non-comportement) "comme prévu" ou "comme souhaité"
  • Une spécification est un comportement (ou non-comportement) "à construire" ou "tel que construit"

Exemple:

  • exigence: 1. l'utilisateur appuie sur le bouton OK 2. le système imprime la facture
  • spécification: 1. l'utilisateur appuie sur le bouton OK 2. le système imprime la facture

Comme vous pouvez le constater, le contenu des deux peut être identique. La différence est que cette exigence est un artefact d'analyse. La spécification est un artefact de conception.

Dans la documentation finale, 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.

Fox.Bailey
la source
0

Les exigences sont ce que l'application fait

Les spécifcations 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 en chef écrivent les spécifications.

jayunit100
la source
2
Je ne suis pas sûr qu'ils soient complètement orthogonaux, du moins en pratique. Malheureusement, il y a beaucoup de gris.
LeWoody
Ils ne sont que gris si vous laissez les modificateurs désactivés - Exigences commerciales, exigences fonctionnelles, exigences non fonctionnelles se réfèrent à une capacité du système (le type CE qu'il fait). Les spécifications techniques sont orthogonales aux exigences de l’entreprise (le COMMENT cela fonctionne).
Bryan 'BJ' Hoffpauir Jr.
0

Une façon, peut-être pas la bonne, de regarder ça:

Les exigences sont des éléments (capacités, fonctionnalités, comportements, etc.) qui rapportent de la valeur à l'utilisateur. Pas concerné par les internes; seules les entrées et les sorties de la boîte (et peut-être la taille, la forme et la couleur) sont importantes ici.

Les spécifications sont des éléments (capacités, fonctionnalités, comportements, etc.) qui confèrent cette valeur à l'utilisateur. Ici, les éléments internes de la boîte sont importants car, avec les interfaces externes et les caractéristiques mentionnées ci-dessus, ils définissent le système dans son ensemble.

berad
la source
Est-ce seulement votre opinion ou vous pouvez le sauvegarder d'une manière ou d'une autre?
Gnat
2
@gnat, je pensais que cela était abordé dans la première ligne? Bien sûr, cela vient de l'expérience et je ne prétends rien d'autre. D'après ce que je comprends, il s'agit d'une question quelque peu subjective sur un forum plutôt subjectif. Cet article suggère que les questions devraient être aussi objectives que possible, mais fait peu de mention des réponses. . Mais j'en ai un par mon nom et vous en avez beaucoup plus alors je suis ouvert à l'éducation :-)
berad
0

Dans mes recherches, j'ai trouvé que les spécifications étaient utilisées pour les brevets et la construction de maisons (dans le cadre d'un contrat).

La définition d'une exigence de Webster's Unabridged Dictionary (3rd New Int'l Ed.) Est:

a) quelque chose que l'on souhaite ou dont on a besoin: Nécessité b) quelque chose qui est réclamé 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 montre qu’ils sont clairement différents. Je suppose que vous pourriez appeler les exigences de niveau inférieur de spec, mais je pense que c'est une perversion de l'exigence de terme à mon humble avis.

LeWoody
la source
0

Dans une entreprise antérieure 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, avec des exigences détaillées, et ils peuvent être fonctionnels ou non fonctionnels.

Les spécifications sont celles du système tel qu'il est construit. Par exemple, vous pourriez avoir une exigence qui indique 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 effectue X à –5 ° C; ce serait dans la feuille envoyée aux clients potentiels quand ils veulent acheter le système.

NB: dans ce cas, la spécification ne correspond pas à l'exigence.

RoyD
la source
-1

Pensez, vous allez construire un immeuble de grande hauteur sur un terrain.

Maintenant, vous devez prendre en compte les exigences avant de commencer, telles que:

  1. Ingénieur Architecture ou Design
  2. Ingénieur Test de sol
  3. Équipe de test de pression du vent
  4. Démolisseur
  5. Excavateur
  6. Puissance humaine
  7. Approvisionnement en eau
  8. Zone de vie / de repos des travailleurs
  9. Assez de fonds
  10. Gestion de projet
  11. Gestion de la qualité
  12. Contrôle de sécurité et de sécurité

Etc.

À présent, le contenu ci-dessus fait partie des conditions requises pour construire un immeuble de grande hauteur. De cette équipe, vous obtenez le résultat technique, qu’ils tiennent dans le cadre de leur profession.

C’est exactement ce qui se passe dans l’industrie du logiciel, un groupe de professionnels impliqués pour fournir les connaissances nécessaires à la construction des spécifications techniques, tels que des travaux sur la conception d’interface utilisateur, la conception OO, la conception de base de données, la conception graphique, la conception de cas de test, le codage, l’intégration. , équipe de déploiement, etc.

Le paragraphe ci-dessus fera partie du manuel que vous pouvez appeler Spécifications techniques.

Mohammed Hoq
la source
1
Je pense que vous confondez exigences et ressources ( en.wikipedia.org/wiki/Resource_%28project_management%29 ).
Jay Elston