web-dev-qa-db-fra.com

Quelle est la différence entre une exigence non fonctionnelle et un attribut de qualité?

J'essaie de comprendre la différence entre les exigences non fonctionnelles et les attributs de qualité. S'agit-il de la même chose?

Vous pouvez trouver un ensemble d'attributs de qualité dans la norme ISO9126.

Je sais que chaque système est défini par un ensemble d'exigences fonctionnelles et chacune de ces exigences a associé un ou plusieurs attributs de qualité. Par exemple, supposons que vous ayez l'exigence qui décrit la fonctionnalité de connexion d'un système. Vous pouvez associer à cette exigence les attributs de sécurité et de performances.

Si je dis que le système ne peut pas prendre plus d'une seconde pour répondre, je parle d'une contrainte.

Alors, où le concept d'exigences non fonctionnelles entre en jeu? Sont-ils définis par les utilisateurs? Comment puis-je les identifier?

13
Hugo Assanti

Je pense que vous y réfléchissez un peu trop. Les exigences fonctionnelles et non fonctionnelles ne sont pas vraiment aussi séparables que vous le suggérez, prenez le cas de connexion par exemple.

L'utilisateur DOIT pouvoir se connecter via une interface Web. Techniquement, il s'agit d'une exigence fonctionnelle.

Le système DOIT répondre aux demandes de connexion dans un délai d'une seconde. Techniquement, il s'agit d'une exigence non fonctionnelle.

Quoi qu'il en soit, ils sont tous deux tout aussi importants quelle que soit la classification spécifique.

Les exigences peuvent provenir de plusieurs endroits. Vous voudrez peut-être avoir de meilleures performances qu'un concurrent. Un client peut avoir des besoins spécifiques. Il peut y avoir une demande de marketing ou de vente. Il n'y a pas un seul endroit d'où ils viennent. Cependant, vous pouvez probablement résumer toutes les différentes sources et les appeler des clients. En fin de compte, c'est ce qu'ils sont.

Vous pouvez identifier la différence à l'aide de la métrique suivante. Les exigences fonctionnelles décrivent ce que fera un système. Une exigence non fonctionnelle spécifie comment elle le fait.

9
Pemdas

La règle est simple et claire.

Les exigences fonctionnelles sont des choses que le système fait .

Les exigences non fonctionnelles sont des attributs de qualité ou des aspects de la façon dont le système est conçu, construit ou mis en œuvre.

  • Performance (1 seconde)
  • Maintenabilité
  • Adaptabilité
  • Coût
  • sécurité
  • utilisabilité (qui est une propriété du système dans son ensemble)
  • testabilité
  • évolutivité

Lis ça. C'est très clair. http://en.wikipedia.org/wiki/Non-functional_requirement

Les exigences non fonctionnelles apparaissent de la même manière que les exigences fonctionnelles apparaissent. Utilisateurs. Le contexte dans lequel le système sera mis en œuvre. Beaucoup de lieux. La gestion. Autres organisations. Administrateurs de réseau, administrateurs système, administrateurs de base de données. Quiconque est partie prenante ou simplement spectateur contribuera aux exigences non fonctionnelles.

Lorsque je regarde les "documents sur les exigences" au cours des 30 dernières années, je peux le dire. De nombreux documents d'exigences rédigés par de grandes organisations informatiques internes sont des déclarations politiques avec peut-être 80% d'exigences non fonctionnelles et moins de 20% d'exigences fonctionnelles.

J'en ai lu une qui avait une seule phrase qui était une exigence fonctionnelle. Le reste du document de 30 pages a parlé de la plate-forme, du support, des sauvegardes et des restaurations, des systèmes d'exploitation et de la base de données, et des normes, et des opérations, et beaucoup, beaucoup de choses que le système n'a pas faire .

9
S.Lott

Les exigences non fonctionnelles et les attributs de qualité sont identiques

L'idée derrière le changement de nom ces derniers temps est que ces soi-disant exigences non fonctionnelles sont en fait des fonctionnalités système (ou un ensemble de fonctionnalités système) qui ont un impact transversal dans le système. En d'autres termes, l'impact transversal que ce type de "fonctionnalité spéciale" a sur un système en fait un attribut de qualité de ce système. Par exemple:

Un système à 5 composants doit traiter une demande en 10 ms. Si un composant a un défaut qui prend 5 ms pour faire sa part dans le traitement, cela affectera les performances du système dans son ensemble.

Tout comme la sécurité ne concerne pas seulement une connexion et lorsqu'elle est affectée, elle affecte l'ensemble du système.

En résumé, les attributs de qualité (c'est-à-dire les exigences non fonctionnelles) concernent la fonctionnalité, la façon dont vous implémentez quelque chose et comment cette implémentation affecte vos systèmes. Généralement, la différence par rapport aux "exigences normales" réside dans son impact, sa portée et sa visibilité.

Voici un lien intéressant sur la façon de les identifier de manière structurée:

Et un livre sur la façon de les documenter et de les définir correctement:

4
mimsugara