Metodologie e strumenti dell'Ingegneria dei Requisiti ... - MobiLab
Metodologie e strumenti dell'Ingegneria dei Requisiti ... - MobiLab
Metodologie e strumenti dell'Ingegneria dei Requisiti ... - MobiLab
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Capitolo 1<br />
1. I requisiti<br />
Il termine "requisito" ha una natura controversa 2 , che viene chiarita da Alan Mark Davis, uno<br />
<strong>dei</strong> maggiori esperti di ingegneria <strong>dei</strong> requisiti, come segue:<br />
" Se una compagnia vuole dare in appalto un grande progetto di sviluppo software, deve<br />
definire i requisiti in modo abbastanza astratto da non predefinire alcuna soluzione. I requisiti<br />
devono essere scritti in modo che diversi appaltatori possano fare le offerte proponendo vari metodi<br />
per soddisfare le necessità del cliente. Quando l'appalto è stato assegnato, l'appaltatore deve<br />
scrivere per il cliente una definizione del sistema molto dettagliata, in modo che il cliente possa<br />
capire e verificare cosa il software farà. Entrambi questi documenti possono essere chiamati<br />
documenti <strong>dei</strong> requisiti del sistema " [1].<br />
La prima distinzione proposta da Davis è, dunque, quella tra requisiti utente 3 , che<br />
rappresentano l'entità (bisogni/necessità dello stakeholder 4 ) ad un alto livello di astrazione ed i<br />
requisiti di sistema 5 (cosa farà il sistema ed i vincoli operativi),nche ne offrono una descrizione al<br />
un livello di maggior dettaglio.<br />
Sebbene la distinzione tra i "ruoli" utente-sistema possa sembrare chiara, alcune volte non è<br />
semplice attuare una separazione netta tra i due livelli descrittivi, così da cadere in errore in questa<br />
fase del processo di sviluppo.<br />
Una seconda classificazione <strong>dei</strong> requisiti, ancora una volta proposta da A.M. Davis, si basa<br />
sulla pratica del triage 6 : secondo questo approccio, la priorità del requisito rappresenta uno <strong>dei</strong><br />
presupposti per stipulare un contratto tra gli stakeholder, che stabiliranno quali requisiti debbano<br />
essere soddisfatti ed entro quali limiti di tempo e di costo.<br />
Per meglio comprendere questo principio, potremmo immaginare di operare con un progetto<br />
ipotetico dotato di risorse illimitate: in tal caso, pur essendo pronti a soddisfare tutte le esigenze<br />
degli stakeholder coinvolti, sarebbe opportuno valutare gli aspetti che siano in grado di apportare<br />
una maggiore soddisfazione e che diverrebbero prioritari.<br />
2 In alcuni casi, un requisito è una formulazione astratta e di alto livello di un servizio che il sistema dovrebbe fornire,<br />
oppure un vincolo di sistema; in altri casi, un requisito è visto come una definizione formale e dettagliata di una<br />
funzione del sistema.<br />
3 <strong>Requisiti</strong> utente: rappresentano i bisogni/necessità degli stakeholder<br />
4 Stakeholder: Un individuo, un gruppo di persone, un'organizzazione, o altra entità direttamente o indirettamente<br />
interessata al sistema.<br />
5 <strong>Requisiti</strong> di sistema: definiscono le funzioni, i servizi ed i vincoli operativi del sistema in modo dettagliato. Il<br />
documento <strong>dei</strong> requisiti ad essi relativo, noto come Documento <strong>dei</strong> <strong>Requisiti</strong> di Sistema (o Functional Requirements<br />
Specification) , dovrebbe essere preciso nel descrivere accuratamente cosa debba essere implementato. Esso può<br />
essere parte del contratto tra l'acquirente e lo sviluppatore.<br />
6 Triage: Questo termine, adoperato in campo medico, consiste nel distinguere le urgenze nei pronto soccorso, così da<br />
garantire l'intervento tempestivo ai casi inidcati come urgenti.<br />
10