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.
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.
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é,
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é .
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:
Il y a un peu de confusion:
Le mot "système" peut désigner différentes choses:
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.