Spesso i requisiti di sistema vengono espressi in linguaggio naturale (NL).
Alcune alternative al NL:
La libertà di chi scrive i requisiti è limitata usando un ‘modello’ predefinito e standard per tutti i requisiti.
Viene limitata anche la terminologia usata per descrivere il requisito.
Il vantaggio è che si conserva l’espressività del linguaggio naturale, ma al tempo stesso si impone un grado di uniformità per descrivere le specifiche.
È una dichiarazione ufficiale di ciò che gli sviluppatori dovrebbero implementare (attenzione: il COSA ma non il COME).
Deve includere sia i requisiti utente (RU), sia una specifica dettagliata dei requisiti di sistema (RS).
Talora RU e RS sono contenuti nello stesso documento, talora in documenti separati.
Un SRS costituisce il punto di convergenza di tre diversi punti di vista: cliente, utente, sviluppatore.
Un SRS fornisce un punto di riferimento per la validazione del prodotto finale.
Un SRS di qualità è il pre-requisito per un software di alta qualità:
Un SRS di qualità riduce i costi di sviluppo:
FASE → COSTO (in ore uomo)
Analisi dei Requisiti → 2
Progettazione → 5
Codifica → 15
Test di accettazione → 50
Esercizio e manutenzione → 150
Definisce una generica struttura per un documento dei requisiti che deve essere istanziata per ogni specifico sistema. Contiene più capitoli:
Table of contents
1.Introduction
1.1. Purpose (Scopo del documento)
1.2. Scope (Scopo del prodotto)
1.3. Definitions, Acronyms and Abbreviations
1.4. References
1.5. Overview (Descrizione generale del resto del documento)
2.General Description
2.1. Product Perspective
2.2. Product Functions
2.3. User Characteristics
2.4. General Constraints
2.5. Assumptions and Dependencies
….
Dallo standard IEEE 830 -1998.
3.Specific Requirements
3.1. Functional Requirements
3.1.1. Functional Requirement 1
3.1.1.1. Introduction
3.1.1.2. Inputs
3.1.1.3. Processing
3.1.1.4. Output
3.1.2. Functional Requirement 2
…
3.1.3.Functional Requirement n
…
Dallo standard IEEE 830 -1998.
3.2. External Interface Requirements
3.2.1. User Interfaces
3.2.2. Hardware Interfaces
3.2.3. Software Interfaces
3.2.4. Communications Interfaces
3.3. Performances Requirements
3.4. Design Constraints
3.4.1 Standard Compliance
3.4.2. Hardware Limitation
…
Dallo standard IEEE 830 -1998.
3.5. Software System Attributes
3.5.1. Security
3.5.2. Maintainability
…
3.6. Other Requirements
3.6.1. Logical Database Requirements
3.6.2. Operations
3.6.3. Site Adaptation requirements
…
Dallo standard IEEE 830 -1998.
Ciascuna Funzionalità deve essere specificata indicando gli input, l’output e l’azione elaborativa. Ad esempio:
3.2.1 Inserisci articolo
Introduzione: La funzionalità consente l’immissione dei dati relativi ad un nuovo articolo ed alla loro registrazione in un archivio;
Input: codice articolo, descrizione, unità di misura;
Elaborazione: visualizzazione di un form per l’immissione dei dati di input; lettura dei dati di input; verifica che l’unità di misura sia uno dei tre valori possibili e registrazione dei dati immessi nell’archivio Articoli;
Output: dati di input registrati nell’archivio Articoli o messaggio di errore ‘Unità di misura non ammessa’.
Elenco Fornitori
Precondizione
L’utente si è precedentemente autenticato come titolare del ristorante
Input
Elaborazione
Output
L’obiettivo è quello di assicurare che l’SRS rifletta accuratamente e con chiarezza i requisiti effettivamente richiesti al software.
Tipi di errori riscontrabili in un SRS:
1. Introduzione
4. Casi d'uso
6. Class Diagram – parte prima
7. Class diagram – parte seconda
8. Class diagram – parte terza
9. Modellazione architetturale
10. Sequence Diagram
14. Progettazione Architetturale
15. Design Patterns – Parte prima
16. Design Patterns – Parte seconda
17. Progettazione dell'interfaccia utente
Ian Sommerville, Ingegneria del Software, capitoli 6 e 7.