Novità sulla sicurezza

Quello che c’è da sapere sul V-Model

Scritto da GM International | 21 dic 2020

Il modello V è un modello di ingegneria del software utilizzato per facilitare lo sviluppo, la manutenzione e il miglioramento dei sistemi IT e per i requisiti di sicurezza del software.

Grazie ai vantaggi che porta in termini di riduzione dei rischi e di aumento dell’efficienza, V-model è un modello di sviluppo ampiamente utilizzato nelle organizzazioni industriali. Può infatti essere utilizzato per progetti software di qualsiasi dimensione e nei settori più disparati, con versioni leggermente adattate che riflettono le fasi procedurali tipiche del rispettivo settore.

La rappresentazione logica del modello invece di discendere lungo una linea retta, dopo la fase di programmazione risale con la tipica forma della lettera V. Il modello dimostra la relazione tra ogni fase del ciclo di vita dello sviluppo del software e la sua fase di testing (collaudo del software).

Il V-model realizza un metodo ben strutturato, in cui ogni fase è implementabile tramite la documentazione dettagliata della fase precedente. Le attività di testing hanno luogo già all’inizio del progetto prima della codifica, il che consente abbattere i tempi di progetto.

Oltre alle rispettive fasi di sviluppo di un progetto, il V-model definisce in parallelo le procedure di garanzia della qualità e descrive come le singole fasi possono interagire tra loro.

 

Il modello standard

Lo scopo principale da perseguire durante la stesura del software è quello di realizzare un prodotto comprensibile, testabile e manutenibile. In primo luogo, il V-model definisce lo svolgimento di un progetto in singole fasi spinte sempre più nel dettaglio. All’inizio del progetto, il modello prevede un’analisi dei requisiti generali del sistema pianificato. In seguito, si arricchisce di requisiti per l’architettura di sistema. Segue quindi la progettazione del sistema, in cui sono pianificati i componenti e le interfacce del sistema. Una volta completate queste fasi, può essere progettata nel dettaglio l’architettura del software

Dopodiché segue l’effettivo sviluppo del software secondo gli schemi definiti e infine le fasi di garanzia della qualità, riferite alle varie fasi di sviluppo.

Il modello a V prevede la possibilità che ci siano dei feedback tra le fasi di testing / integrazione e le fasi di definizione poste allo stesso livello. Tali feedback costituiscono le correzioni e le modifiche da applicare quale esito negativo delle fasi di testing e di integrazione.

La corretta implementazione dell’architettura software pianificata viene verificata mediante unit test, i quali consentono di verificare nel dettaglio se i singoli moduli del software soddisfano esattamente le funzioni richieste e forniscono realmente i risultati attesi.

Alla fine del progetto, l’analisi dei requisiti dell’intero sistema viene messa in relazione con il collaudo del prodotto finito. Al momento del collaudo finale, il cliente verifica se le specifiche sono rispettate durante il funzionamento. Di norma, viene testato solo il comportamento del software a livello di interfaccia (test di accettazione).

 

Vantaggi e svantaggi del V-model

Il modello di sviluppo è ampiamente diffuso soprattutto perché garantisce un elevato grado di trasparenza e processi chiaramente definiti e comprensibili. Tra i vantaggi offerti vi sono l’ottimizzazione della comunicazione tra le parti coinvolte; la minimizzazione dei rischi e una migliore pianificazione; il miglioramento della qualità del prodotto; il risparmio sui costi grazie ad attività trasparenti dell’intero ciclo di vita del prodotto.

Nel complesso il modello può aiutare ad evitare lavori superflui e assicurare che tutte le attività siano completate al momento giusto e nel giusto ordine, riducendo al minimo il tempo di inattività.

In alcuni casi però il modello di sviluppo è inadeguato per mappare completamente il processo di sviluppo dal punto di vista degli sviluppatori e la struttura relativamente rigida non consente quasi mai una risposta flessibile ai cambiamenti.

In questi casi sono disponibili modelli di sviluppo alternativi che possono essere utilizzati a seconda del progetto e della struttura del team. Ad esempio il modello a cascata è particolarmente adatto per piccoli progetti lineari, mentre il modello a spirale può essere utilizzato per progetti iterativi.

Nel 2006, il modello a V è stato aggiornato per poter riflettere principi più recenti, come ad esempio lo sviluppo “Agile”. Ciò ha dato come risultato il V-model XT. XT sta per Extreme Tailoring e descrive la nuova possibilità di adattare il modello su misura alle esigenze del progetto, semplificare alcune fasi di sviluppo e coinvolgere maggiormente il cliente.

 

Il modello a V nel ciclo di vita di sicurezza del software

Introducendo la variabile “sicurezza”, il modello di sviluppo a “V” si differenzia da quello standard. Ciò è dovuto al fatto che le norme relative alla sicurezza funzionale definiscono due cicli di vita, uno per il sistema e uno per il software. Si tratta comunque di due cicli strettamente correlati e interdipendenti anche in base alle rigide prescrizioni delle normative.

Nel modello applicato al ciclo di vita di sicurezza sono assenti le fasi di analisi dei requisiti e di system design. Questo è dovuto al fatto che le fasi di concezione e pianificazione vengono svolte a livello di sistema in quanto sono strettamente correlate alle analisi di sicurezza (ad esempio hazard & risk analysis).

Nel modello applicato al ciclo di vita di sicurezza la prima fase è costituita dalla definizione dei requisiti di sicurezza del software. Tali requisiti vengono derivati dai requisiti di sicurezza del sistema e discendono dalle analisi di sicurezza globali.

Nei progetti complessi e di grandi dimensioni la fase di specificazione dell’architettura può essere divisa nella fase di scomposizione del software nei suoi moduli principali, e in quella di “software system design” che si occupa di scomporre ulteriormente il software fino alla identificazione dei singoli moduli.

Oltre alle normali attività di validazione (testing), il modello applicato al ciclo di vita di sicurezza prevede una serie di attività di verifica. Tali attività hanno l’obiettivo di controllare la coerenza di quanto prodotto in ogni fase con i requisiti di sicurezza. Validazione e verifica (V&V) sono considerate tra le principali attività che hanno lo scopo di assicurare l’integrità della sicurezza del sistema in via di realizzazione.