Che cos’è, a cosa serve e importanza della gestione dei requisiti

Che cos’è, a cosa serve e importanza della gestione dei requisiti

Gestione dei requisiti

Durante il processo software, la consapevolezza del problema da parte degli stakeholder cambia costantemente e questo, inevitabilmente, si riflette sui requisiti che dunque evolvono nel tempo. Infatti, spesso capita che gli utenti e i clienti si rendano conto di come alcuni aspetti del dominio non sono stati trattati, oppure sono stati affrontati in modo inadeguato, e da qui nasce l’esigenza di riesaminare il documento dei requisiti.

La gestione dei requisiti è il processo di comprensione e controllo dei cambiamenti ai requisiti di sistema: ciascun requisito dovrà essere seguito individualmente mantenendo alcuni collegamenti tra i requisiti dipendenti, in modo da riuscire a valutare l’impatto del cambiamento proposto. Inoltre andrebbe stabilito un processo formale per proporre le modifiche e collegarle ai corrispondenti requisiti di sistema, così da avere sempre un’idea chiara della motivazione che ha spinto a operare su quei requisiti.

Vediamo che, inevitabilmente, i requisiti sono soggetti ad un “evoluzione” durante il processo di ingegneria dei requisiti, e in seguito alla messa in produzione del sistema. Difatti, durante lo sviluppo delle definizioni dei requisiti, si sviluppa anche una maggiore comprensione nelle necessità degli utenti, e poiché nel tempo l’ambiente e gli obiettivi aziendali possono cambiare, i requisiti dovranno evolversi per riflettere tali cambiamenti.

Che cos'è, a cosa serve e importanza della gestione dei requisiti

Tipicamente, l’impatto di questa evoluzione si riflette sui seguenti requisiti:

  1. Requisiti impliciti: sono specifici del dominio e, quindi, per tale motivo sono specificati adeguatamente;
  2. Requisiti instabili: sono requisiti che cambiano continuamente durante lo sviluppo del sistema;
  3. Requisiti emergenti: sono requisiti che comportano l’ampliamento delle funzionalità del sistema e, come si comprende dal nome, sono dovuti a conoscenze emergenti sul problema;
  4. Requisiti duplicati: sono rappresentativi di una medesima esigenza;
  5. Requisiti di compatibilità: sono requisiti che dipendono da altri processi organizzativi e da altri sistemi.

Il processo di gestione dei requisiti dovrebbe partire appena è disponibile una bozza del documento dei requisiti, ma i cambiamenti/evoluzioni che si traducono in una modifica, piuttosto che in una cancellazione o nella creazione di nuovi requisiti, andrebbero opportunamente pianificati già durante il processo di deduzione dei requisiti.

Il primo passo essenziale nella gestione dei requisiti è, quindi, la pianificazione, che solitamente è molto costosa e, che per ogni progetto stabilisce il livello di dettaglio richiesto mediante le seguenti fasi successive:

  1. Identificazione dei requisiti: consiste nell’associare a ciascun requisito un identificativo univoco, in modo che si possa avere un riferimento incrociato con altri requisiti, e che sia di aiuto nella valutazione di tracciabilità;
  2. Creazione di un processo di gestione delle modifiche: si definiscono le attività che hanno lo scopo di valutare l’impatto e il costo delle modifiche;
  3. Definizione di politiche di tracciabilità: determinano i tipi di dipendenza tra i requisiti che devono essere tracciate, saranno stabilite le relazioni tra i requisiti e i casi d’uso e tra questi ultimi e il progetto del sistema. In particolare, la tracciabilità delle modifiche dovrà gestire le proposte di modifica in ogni fase del processo software.
  4. Supporto degli strumenti CASE: sono individuati tutti i possibili strumenti CASE (Computer Aided Software Engineering) per supportare la gestione dei requisiti nell’elaborazione di un grande quantitativo d’informazioni.

Nel momento in cui si ha a che fare con progetti di grandi dimensioni, e quindi con un elevato numero di requisiti, si rende necessario definire un canale ufficiale di controllo delle modifiche apportate ai requisiti, noto come Change Control Board. Esso è rappresentato da un team di esperti che analizzano, valutano, approvano o rifiutano i cambiamenti proposti. Nel complesso, il Change Control Board, si occuperà di determinare l’impatto che un eventuale modifica può avere sul sistema, stabilendo se risulta opportuno o meno attuare tale modifica.

Sarà, inoltre, importante definire la baseline dei requisiti che mostra l’insieme dei requisiti che rappresentano la base dell’accordo iniziale con il committente e sui quali sarà misurato l’impatto delle modifiche. Essa sarà utile per valutare lo stato di avanzamento del progetto, infatti, ad ogni requisito al suo interno verrà associato uno stato di avanzamento: proposto, approvato, implementato oppure verificato.

I tool per la gestione dei requisiti

Le attività di progettazione, definizione e gestione dei requisiti sono alla base di un progetto di successo. Per questo motivo, oggi gli ingegneri di sistema richiedono un’efficace gestione dei requisiti al fine di catturare, tracciare e gestire i bisogni degli stakeholder e dei cambiamenti che si verificano durante tutto il ciclo di vita del progetto.
In risposta a quest’esigenza il mercato mette a disposizione prodotti, che col passare del tempo stanno diventando sempre più complessi, che si pongono da supporto alla gestione dei requisiti. Questi prodotti sono tipicamente denominati Requirements DataBase (RDB), poiché associabili a dei database relazionali con funzionalità dedicate ai requisiti.
Tali strumenti di supporto mirano, inoltre, a migliorare la comunicazione e la collaborazione tra i soggetti del team di sviluppo, cosa che conduce ad una migliore gestione dei requisiti, e quindi ad una riduzione dei rischi associati al progetto.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *