Qual è la differenza tra i requisiti utente e i requisiti di sistema?

4

Da quello che ho letto credo che i requisiti degli utenti siano solo i requisiti di sistema dati in termini di personale, è corretto? Mi riferisco in particolare al libro "Software Engineering" di Ian Sommerville che sono obbligato a seguire. Considerato l'esempio di seguito riportato da questo libro, perché non esiste un requisito dell'utente che corrisponda al secondo requisito di sistema. Ad esempio "l'utente richiede che il rapporto venga generato dopo le 17.30 l'ultimo giorno lavorativo del mese." Per me è ancora in linguaggio naturale, quindi è leggibile dall'utente. Quanti dettagli devono essere inclusi in un requisito utente rispetto ai requisiti di sistema e dove si disegna la linea?

Definizione dei requisiti utente:

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

Specifiche dei requisiti di sistema:

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.
    
posta 5had3sofQu4rtz 29.11.2014 - 23:48
fonte

4 risposte

11

Parlerò ai tuoi esempi.

Il primo esempio di "requisito utente" è più simile a un desiderio o "caratteristica". Il modo in cui puoi capire la differenza tra una caratteristica e un requisito è che ci sono abbastanza dettagli nel requisito per renderlo testabile. Il requisito 1 non è testabile perché, beh, è un desiderio. "Vorrei che il sistema avesse alcuni rapporti per i gestori." Come sai che il requisito è stato raggiunto, che puoi dichiarare il successo?

Il requisito 1.1 è testabile perché puoi aspettare fino all'ultimo giorno lavorativo del mese e vedere se un rapporto viene generato in quel giorno (oppure puoi inserire date nel sistema e osservarne il comportamento).

Il requisito 1.2 è testabile per gli stessi motivi.

Nessun requisito di sistema, tuttavia, ti dice come dovrebbero apparire i rapporti, come sono disposti i dati o come sono fatti i calcoli; descrivono solo le relazioni in termini generali. In pratica, ci sarà una specifica di progettazione software di qualche tipo che ti indicherà in dettaglio come saranno questi rapporti.

    
risposta data 30.11.2014 - 17:02
fonte
8

Nel senso di Sommerville:

I requisiti degli utenti parlano del dominio problematico, il mondo dell'utente. Descrivono quali effetti devono essere raggiunti. Questi effetti sono la responsabilità combinata del software, l'hardware e gli utenti .

I requisiti di sistema parlano del dominio della soluzione, il mondo della logica del software. Descrivono cosa deve fare il software (al contrario degli effetti nel mondo dell'utente che questo può o non può raggiungere).

Ad esempio per un software di contabilità,

  • il requisito dell'utente è calcolare le entrate corrette.
  • Ma il requisito di sistema è solo calcolare la somma corretta delle entrate parziali inserite dall'utente.

Se l'utente inserisce entrate parziali errate il software lo è non richiesto per correggerli magicamente: l'output sarà essere la somma corretta degli input, ma non le entrate totali corrette.

La differenza non è eccessivamente interessante per la maggior parte dei semplici sistemi di informazione. Può essere molto importante per il software vitale; vedere ad esempio il vari incidenti che coinvolgono il problema quando o quando l'inversione di spinta può essere attivato su un aereo commerciale: il requisito dell'utente "La spinta inversa può essere attivata solo se l'aereo è su una pista" è risultato essere sorprendentemente difficile da trasformare in requisiti di sistema che porta in modo affidabile all'effetto desiderato .

    
risposta data 02.12.2014 - 18:06
fonte
0

Requisiti utente indicano quale applicazione deve / dovrebbe fare per soddisfare le esigenze dell'utente. È un elenco di funzionalità che un'applicazione deve / dovrebbe avere e viene utilizzata come guida quando si sviluppa un'applicazione: quindi tutti i punti vengono controllati, si è (probabilmente) fatto.

Tendo a chiamarlo semplicemente "elenco di funzionalità".

Requisiti di sistema indica quale sistema deve essere in grado di eseguire il programma:

  • Hardware: CPU, memoria, spazio su disco, ecc.
  • Software: sistema operativo, librerie, pacchetti, ecc.

C'è un po 'di confusione:

  • In "requisiti utente" l'utente è un soggetto, quello che richiede e il programma in fase di sviluppo è un oggetto.
  • Nei "requisiti di sistema" il programma in fase di sviluppo è un argomento (e non è nemmeno menzionato in una frase), mentre "sistema" è un oggetto.

La parola "sistema" può riferirsi a cose diverse:

  • software in fase di sviluppo
  • dispositivo fisico che esegue il software in fase di sviluppo
  • rete di tali dispositivi
  • OS insieme con l'ambiente di esecuzione

La cosa che hai chiamato " System Requirements Specification" è probabilmente qualcosa come il Software specifica dei requisiti : ritengo che sia un superset di requisiti utente.

    
risposta data 30.11.2014 - 17:38
fonte
-2

I requisiti dell'utente indicano quale applicazione deve essere eseguita per soddisfare le esigenze degli utenti

I requisiti di sistema indicano che un sistema deve essere in grado di eseguire il programma

    
risposta data 28.06.2017 - 11:48
fonte

Leggi altre domande sui tag