1. Requisiti funzionali: Questi descrivono * cosa * il sistema dovrebbe fare. Sono spesso espressi come:
* Casi d'uso: Descrivi le interazioni tra utenti (o altri sistemi) e il sistema, delineando una sequenza specifica di azioni e risultati previsti.
* Storie utente: Descrizioni più brevi e più informali di funzionalità dal punto di vista di un utente (ad esempio, "Come cliente, voglio essere in grado di aggiungere articoli al mio carrello per la spesa in modo da poterli acquistarli in seguito.").
* Elenchi di funzionalità: Una semplice enumerazione delle caratteristiche del sistema. Meno dettagliato dei casi d'uso ma utili per la pianificazione di alto livello.
* Diagrammi di stato: Mostra i diversi stati che un sistema può trovarsi e come passa tra loro. Utile per sistemi con una gestione statale complessa.
* Diagrammi di flusso di dati: Illustrare il flusso di dati attraverso il sistema.
2. Requisiti non funzionali (o attributi di qualità): Questi descrivono * come * il sistema dovrebbe eseguire. Sono spesso correlati a:
* Performance: Tempi di risposta, throughput, tassi di transazione, utilizzo delle risorse (CPU, memoria, rete). Spesso espresso quantitativamente (ad esempio, "il sistema deve rispondere alle richieste dell'utente entro 2 secondi").
* Scalabilità: Capacità di gestire un carico crescente (utenti, dati, transazioni). Spesso specificato in termini di crescita prevista e prestazioni del sistema in base a tale crescita.
* Sicurezza: Protezione contro l'accesso non autorizzato, le violazioni dei dati e altre minacce. Definito attraverso politiche di sicurezza e meccanismi di controllo degli accessi.
* Affidabilità: Frequenza e durata dei guasti, tempo medio tra guasti (MTBF), tempo medio di recupero (MTTR).
* Disponibilità: Percentuale di tempo il sistema è operativo.
* Manutenza: Facilità di modifica e aggiornamento del sistema.
* Usabilità: Facilità d'uso per gli utenti previsti. Spesso misurato tramite test e feedback dell'utente.
* Portabilità: Capacità di funzionare su piattaforme e ambienti diversi.
3. Requisiti di capacità: Questi descrivono la capacità del sistema di gestire un certo carico di lavoro. Questo include:
* Volume dei dati: Quantità di dati che il sistema deve archiviare ed elaborare.
* Concorrenza utente: Numero di utenti simultanei Il sistema può supportare.
* Tasso di transazione: Numero di transazioni Il sistema può elaborare per unità di tempo.
* Limiti delle risorse: Limiti su CPU, memoria, archiviazione, larghezza di banda di rete.
Metodi per specificare funzionalità e capacità:
* Lingua naturale: Spesso usato per descrizioni di alto livello, ma può essere ambiguo.
* Lingue delle specifiche formali: Usa notazioni matematiche o logiche precise per evitare l'ambiguità (ad es. Z, VDM). Più rigorosa ma richiede competenze specializzate.
* Lingue di modellazione: Utilizzare le notazioni visive per rappresentare la struttura e il comportamento del sistema (ad es. UML). Un buon equilibrio tra precisione e comprensibilità.
* Documento di specifica dei requisiti di sistema (SRS): Un documento formale che descrive in modo completo tutti i requisiti funzionali e non funzionali.
La scelta dei metodi dipende da fattori come la dimensione del progetto, la complessità, il budget e la competenza tecnica del team. Spesso, viene utilizzata una combinazione di questi metodi per creare una specifica completa e chiara. È fondamentale garantire che le specifiche siano inequivocabili, complete, coerenti e verificabili. La tracciabilità tra requisiti, progettazione e implementazione è importante anche per lo sviluppo e la manutenzione efficaci del sistema.
software © www.354353.com