web-dev-qa-db-fra.com

Quelle est la différence entre les exigences des utilisateurs et les exigences du système?

D'après ce que j'ai lu, je crois que les exigences des utilisateurs ne sont que les exigences du système données en termes profanes, est-ce correct? Je me réfère spécifiquement au livre "Software Engineering" de Ian Sommerville que je suis obligé de suivre. Compte tenu de l'exemple ci-dessous tiré de ce livre, pourquoi n'y a-t-il pas une exigence utilisateur pour correspondre à la deuxième exigence système Par exemple, "l'utilisateur exige que le rapport soit généré après 17h30 le dernier jour ouvrable du mois". Pour moi, c'est toujours en langage naturel, donc il est lisible par l'utilisateur. Combien de détails doivent être inclus dans une exigence utilisateur par rapport à une exigence système et où tracez-vous la ligne?

Définition des besoins des utilisateurs:

1. The MHC-PMS shall generate monthly management reports showing
   the cost of drugs prescribed by each clinic during that month.

Spécification de la configuration requise:

1.1. On the last working day of each month, a summary of the drugs
     prescribed, their cost, and the prescribing clinics shall be generated.
1.2. The system shall automatically generate the report for printing after
     17.30 on the last working day of the month.
6
5had3sofQu4rtz

Je vais parler de vos exemples.

Le premier exemple d'une "exigence de l'utilisateur" ressemble plus à un souhait ou une "fonctionnalité". La façon dont vous pouvez faire la différence entre une fonctionnalité et une exigence est qu'il y a suffisamment de détails dans l'exigence pour la rendre testable. L'exigence 1 n'est pas testable parce que, eh bien, c'est un souhait. "Je souhaite que le système ait des rapports pour les managers." Comment savez-vous que l'exigence est remplie, que vous pouvez déclarer le succès?

La condition 1.1 est testable car vous pouvez attendre le dernier jour ouvrable du mois et voir si un rapport est généré ce jour-là (ou vous pouvez injecter des dates dans le système et observer son comportement).

L'exigence 1.2 peut être testée pour les mêmes raisons.

Cependant, aucune des exigences du système ne vous indique à quoi devraient ressembler les rapports, comment les données sont présentées ou comment les calculs sont effectués; ils ne décrivent les rapports qu'en termes généraux. En pratique, il y aura une spécification de conception de logiciel qui vous indiquera en détail à quoi ressembleront ces rapports.

12
Robert Harvey

Dans le sens de livre de génie logiciel d'Ian Sommerville :

Les besoins des utilisateurs parlent du domaine problématique, du monde de l'utilisateur. Ils décrivent les effets à atteindre. Ces effets sont la responsabilité combinée du logiciel, du matériel et des utilisateurs (ensemble: le système socio-technique).

Configuration requise parle du domaine de la solution, le monde de la logique logicielle. Ils décrivent ce que le logiciel doit faire (par opposition aux effets dans le monde de l'utilisateur que cela peut ou non produire). Ils sont de la seule responsabilité du système technique (sans la partie socio).

Par exemple pour un logiciel de comptabilité,

  • l'exigence de l'utilisateur est de calculer les revenus corrects.
  • Mais la configuration système requise consiste uniquement à calculer la somme correcte des revenus partiels saisis par l'utilisateur.

Si l'utilisateur entre des revenus partiels incorrects, le logiciel n'est pas obligé de les corriger comme par magie: la sortie sera la somme correcte des entrées, mais pas le revenu global correct.

La différence n'est pas trop intéressante pour la plupart des systèmes d'information simples. Cela peut être très important pour les logiciels vitaux; voir par exemple les différents accidents impliquant le problème quand ou quand l'inversion de poussée ne peut pas être activée sur un avion commercial: L'exigence de l'utilisateur "la poussée inverse ne peut être activée que si l'avion est sur une piste" s'est avérée être étonnamment difficile à transformer en exigences système qui conduisent de manière fiable à l'effet souhaité .

10
Lutz Prechelt

Exigences utilisateur indique ce que l'application doit/doit faire pour satisfaire les besoins de l'utilisateur. C'est une liste de fonctionnalités qu'une application doit/devrait avoir, et elle sert de guide lorsque vous développez une application: alors tous les points sont vérifiés, vous avez (probablement) terminé.

J'ai tendance à appeler cela simplement la "liste des fonctionnalités".

Configuration requise indique quel système doit être en mesure d'exécuter le programme:

  • Matériel: CPU, mémoire, espace disque, etc.
  • Logiciels: OS, bibliothèques, packages, etc.

Il y a un peu de confusion:

  • Dans les "besoins des utilisateurs", l'utilisateur est un sujet, celui qui en a besoin et le programme en cours de développement est un objet.
  • Dans les "exigences système", le programme en cours de développement est un sujet (et il n'est même pas mentionné dans une phrase), tandis que le "système" est un objet.

Le mot "système" peut désigner différentes choses:

  • logiciel en cours de développement
  • dispositif physique qui exécute le logiciel en cours de développement
  • réseau de tels appareils
  • OS avec environnement d'exécution

La chose que vous avez appelée " Système Spécification des exigences" est probablement quelque chose comme la spécification des exigences Logiciel - Je considère que c'est un surensemble des besoins des utilisateurs.

0
scriptin