Qual è la differenza tra requisito funzionale e non funzionale? [chiuso]


283

Qual è la differenza tra requisiti funzionali e non funzionali nel contesto della progettazione di un sistema software?

Fornisci esempi per ciascun caso.



@TravisJ Ancora una volta, manteniamo il tag sulle domande fino a quando non avremo finito con la prima fase della combustione dei tag.
TylerH,

Risposte:


525

Un requisito funzionale descrive cosa dovrebbe fare un sistema software, mentre i requisiti non funzionali pongono vincoli su come il sistema lo farà.

Lasciami elaborare.

Un esempio di requisito funzionale sarebbe:

  • Un sistema deve inviare un'e-mail ogni volta che viene soddisfatta una determinata condizione (ad es. Un ordine, un cliente si iscrive, ecc.).

Un requisito non funzionale correlato per il sistema può essere:

  • Le e-mail devono essere inviate con una latenza non superiore a 12 ore da tale attività.

Il requisito funzionale descrive il comportamento del sistema in relazione alla funzionalità del sistema. Il requisito non funzionale elabora una caratteristica prestazionale del sistema.

I requisiti in genere non funzionali rientrano in settori quali:

  • Accessibilità
  • Capacità, corrente e previsioni
  • Conformità
  • Documentazione
  • Ripristino di emergenza
  • Efficienza
  • Efficacia
  • Estensibilità
  • Tolleranza ai guasti
  • interoperabilità
  • manutenibilità
  • vita privata
  • portabilità
  • Qualità
  • Affidabilità
  • Resilienza
  • Tempo di risposta
  • Robustezza
  • scalabilità
  • Sicurezza
  • Stabilità
  • Supportability
  • testabilità

Un elenco più completo è disponibile alla voce di Wikipedia per i requisiti non funzionali .

I requisiti non funzionali sono talvolta definiti in termini di metriche (ovvero qualcosa che può essere misurato sul sistema) per renderli più tangibili. I requisiti non funzionali possono anche descrivere aspetti del sistema che non riguardano la sua esecuzione, ma piuttosto la sua evoluzione nel tempo (es. Manutenibilità, estensibilità, documentazione, ecc.).


Ti rimanderò naturalmente, data la tua reputazione e la storia professionale (che ho visto prima di scrivere questo): il tuo esempio di requisito non funzionale non può essere considerato un comportamento? O il punto è più sul fatto che i requisiti non funzionali descrivono i vincoli relativi ai comportamenti?
Thomas,

1
Per chiarire un po 'la mia domanda (e potrebbe non essere responsabile): c'è un modo per chiarire meglio il confine di ciò che costituisce il comportamento?
Thomas,

più 1 per un bell'esempio di sistema di posta elettronica. :)
Ahtisham,

33

i requisiti funzionali sono le principali cose che l'utente si aspetta dal software, ad esempio se l'applicazione è un'applicazione bancaria, l'applicazione dovrebbe essere in grado di creare un nuovo account, aggiornare l'account, eliminare un account, ecc. i requisiti funzionali sono dettagliati e specificati nella progettazione del sistema

I requisiti non funzionali non sono semplici requisiti del sistema, ma sono correlati all'usabilità (in qualche modo), ad esempio per un'applicazione bancaria sarà disponibile un requisito non funzionale principale, l'applicazione dovrebbe essere disponibile 24 ore su 24, 7 giorni su 7, senza tempi di inattività se possibile.


27

Richieste funzionali

  1. Requisiti funzionali specifica una funzione che un sistema o un componente di sistema deve essere in grado di eseguire. Può essere documentato in vari modi. I più comuni sono descrizioni scritte nei documenti e casi d'uso.

  2. I casi d'uso possono essere elenchi di enumerazione testuali nonché diagrammi che descrivono le azioni dell'utente. Ogni caso d'uso illustra scenari comportamentali attraverso uno o più requisiti funzionali. Spesso, tuttavia, un analista inizia suscitando una serie di casi d'uso, da cui l'analista può derivare i requisiti funzionali che devono essere implementati per consentire a un utente di eseguire ogni caso d'uso.

  3. Requisiti funzionali è ciò che un sistema dovrebbe realizzare . Può essere

    • calcoli
    • Dettagli tecnici
    • Manipolazione di dati
    • Elaborazione dati
    • Altre funzionalità specifiche
  4. Un tipico requisito funzionale conterrà un nome e un numero univoci, un breve riepilogo e una logica. Queste informazioni vengono utilizzate per aiutare il lettore a capire perché è necessario il requisito e per tracciare il requisito attraverso lo sviluppo del sistema.

Requisiti non funzionali

LBushkin ha già spiegato di più sui requisiti non funzionali. Aggiungerò altro.

  1. I requisiti non funzionali sono altri requisiti oltre ai requisiti funzionali. Questi sono i requisiti che specificano i criteri che possono essere utilizzati per giudicare il funzionamento di un sistema, piuttosto che comportamenti specifici .

  2. I requisiti non funzionali si presentano sotto forma di "sistema deve essere" , una proprietà generale del sistema nel suo insieme o di un aspetto particolare e non una funzione specifica. Le proprietà complessive del sistema indicano comunemente la differenza tra successo o fallimento del progetto di sviluppo.

  3. Requisiti non funzionali - possono essere suddivisi in due categorie principali:

    • Qualità di esecuzione , come sicurezza e usabilità, che sono osservabili in fase di esecuzione.
    • Qualità di evoluzione , come testabilità, manutenibilità, estensibilità e scalabilità, che sono incorporate nella struttura statica del sistema software.
  4. I requisiti non funzionali pongono restrizioni al prodotto in fase di sviluppo, al processo di sviluppo e specificano i vincoli esterni che il prodotto deve soddisfare.
  5. L' IEEE Std-830 - 1993 elenca i requisiti non funzionali 13 da inserire in un software Requisiti dei documenti.
  1. Requisiti di prestazione
  2. Requisiti di interfaccia
  3. Requisiti operativi
  4. Requisiti di risorse
  5. Requisiti di verifica
  6. Requisiti di accettazione
  7. Requisiti per la documentazione
  8. Requisiti di sicurezza
  9. Requisiti di portabilità
  10. Requisiti di qualità
  11. Requisiti di affidabilità
  12. Requisiti di manutenibilità
  13. Requisiti di sicurezza

Se un requisito sia espresso come requisito funzionale o non funzionale può dipendere:

  • sul livello di dettaglio da includere nel documento dei requisiti
  • il grado di fiducia esistente tra un cliente del sistema e uno sviluppatore del sistema.

Ex. Potrebbe essere necessario un sistema per presentare all'utente una visualizzazione del numero di record in un database. Questo è un requisito funzionale. Quanto aggiornato sia questo aggiornamento, è un requisito non funzionale. Se il numero deve essere aggiornato in tempo reale, gli architetti di sistema devono assicurarsi che il sistema sia in grado di aggiornare il conteggio dei record [visualizzati] entro un intervallo accettabilmente breve del numero di record che cambiano.

Riferimenti:

  1. Requisito funzionale
  2. Requisito non funzionale
  3. Quantificazione e tracciabilità dei requisiti

1
ben spiegato. Grazie!
Arslan Ramay,

1
Bella risposta con buoni riferimenti. Voglio solo aggiungere lo standard più aggiornato, poiché IEEE 830-1993 è stato sostituito. Lo standard più recente è ISO / IEC / IEEE 29148: 2018 "Ingegneria di sistemi e software - Processi del ciclo di vita - Ingegneria dei requisiti" ( iso.org/standard/72089.html )
disconnessione il

8

I requisiti funzionali sono quelli correlati alla funzionalità tecnica del sistema.

requisito non funzionale è un requisito che specifica i criteri che possono essere utilizzati per giudicare il funzionamento di un sistema in condizioni particolari, piuttosto che comportamenti specifici.

Ad esempio, se si considera un sito di shopping, l'aggiunta di articoli al carrello, la navigazione di articoli diversi, l'applicazione di offerte e offerte e l'inserimento corretto di ordini rientrano nei requisiti funzionali.

Laddove, come prestazioni del sistema nelle ore di punta, il tempo impiegato dal sistema per recuperare i dati dal DB, la sicurezza dei dati dell'utente, la capacità del sistema di gestire se un gran numero di accessi degli utenti rientra in requisiti non funzionali.


Risposta eccellente.
Iftekhar,

3

REQUISITI FUNZIONALI delle attività che il sistema deve svolgere

  • il business utilizza le funzioni svolte dagli utenti
  • esempio di casi d'uso se si stanno sviluppando funzioni richieste per un sistema di gestione stipendi
  • generare trasferimenti elettronici di fondi
  • importi delle commissioni di calcolo
  • calcolare le imposte sui salari
  • segnalare la detrazione fiscale all'IRS

2

Penso che il requisito funzionale sia dal lato client a quello sviluppatore per quanto riguarda la funzionalità dell'utente da parte del software e il requisito non funzionale sia dallo sviluppatore al client, ovvero il requisito non è dato dal client ma è fornito dallo sviluppatore per far funzionare il sistema senza problemi, ad es. sicurezza, protezione, flessibilità, scalabilità, disponibilità, ecc.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.