VYXT: EFFICACIA E RAPIDITÀ NEL PROCESSO DI V&V CON IL NUOVO TOOL SEMI-AUTOMATICO.
Abbiamo sviluppato un tool semi-automatico che rende il processo V&V molto più veloce, efficiente e preciso.
A cura di Viviana Scot e Maddalena Valinoti
[Head of Software V&V e Software Safety Project Manager V&V – Area Ingegneria del Software]

INTRODUZIONE.
La verifica e validazione (V&V) è una attività fondamentale nei settori ferroviario, biomedicale e automotive, dove la sicurezza è una priorità assoluta. Garantire che il software rispetti minuziosamente gli standard di riferimento è essenziale per evitare rischi, assicurare prestazioni affidabili e in sicurezza.
Nel caso di software safety-critical, le attività di V&V, soprattutto nelle fasi iniziali di sviluppo, possono essere complesse e molto dispendiose in termini di tempo. Per questo, scegliere la giusta metodologia di lavoro è cruciale per creare soluzioni più sicure ed efficienti.
NIER ha sviluppato VyxT, un tool semi-automatico che rende il processo di V&V molto più rapido, preciso ed efficiente rispetto all’approccio manuale tradizionale, introducendo degli automatismi che migliorano la qualità del software e riducono il time to market.
Vediamo la sua struttura, le funzionalità e a quali esigenze è in grado di rispondere.
ARCHITETTURA MODULARE e SCALABILE.
VyxT è stato progettato per adattarsi alle diverse esigenze dei nostri clienti, grazie ad un’ architettura modulare e scalabile, progettata per offrire prestazioni elevate e massima flessibilità. E’ composto da due entità software, entrambe sviluppate in Python.
- Front-End (FE) (Fig.2) è la GUI verso il tecnico/validatore, sviluppata con il modulo “Tkinter” di Python;
- Back-End (BE) ha il ruolo di motore di esecuzione. Le principali librerie utilizzate sono: “XlsxWriter” per la gestione dei documenti Microsoft Excel, “python_docx”, per l’elaborazione dei documenti Microsoft Word e Pandas per la manipolazione dei dati.
VyxT è progettato per essere completamente indipendente dalla piattaforma su cui è installato, offrendo massima compatibilità e flessibilità. Grazie alla sua installazione semplice e rapida tramite un file di setup, può essere facilmente configurato su qualsiasi PC da ufficio, senza necessitare di hardware o software speciali. Inoltre, lo sviluppo, il controllo delle versioni e la distribuzione del tool sono gestiti da un team interno NIER tramite un progetto DevOps, assicurando aggiornamenti rapidi e maggiore efficienza operativa.

FUNZIONALITÀ CHIAVE.
VyxT rende il flusso di lavoro più semplice e veloce, acquisendo file di input in formato Microsoft Word (standard per la stesura di documenti ufficiali, che rappresentano molti degli input alle attività V&V) e restituendo i risultati in formato Microsoft Excel (Fig.3). Ciò consente di gestire e manipolare facilmente i dati per ottenere informazioni più precise e ripetitive. I dati di input, costituiti principalmente dalle specifiche software e di test, vengono elaborati in modo rapido ed efficiente.
il tool si adatta agevolmente alla diversa formattazione dei documenti di input dei diversi clienti: allo start, le uniche informazioni in input richieste all’utente sono il nome del cliente e del progetto (i tasti “Customer Name” e “Read Project”).
La GUI di VyxT è intuitiva e guida l’operatore attraverso le funzionalità. In ogni caso, con un semplice click sul pulsante “HELP”, è possibile accedere al manuale d’uso completo.

Vediamo più nel dettaglio le 5 funzionalità chiave.
- Requirements Extraction –> Filtra automaticamente i requisiti dai documenti di specifica software, facilitando il lavoro di verifica e riducendo il rischio di errori umani. Nel dettaglio, estrae automaticamente tutti i requisiti dal documento di specifica software, con l’identificativo univoco e il testo completo. Ma non solo: grazie al tasto “Change Settings” è possibile personalizzare l’estrazione secondo le varie esigenze. Tale pulsante, infatti, consente di aprire una finestra (Fig. 4), attraverso cui l’utente può selezionare tutte le informazioni relative ai requisiti presenti nel documento in input, necessarie allo svolgimento delle attività (ad esempio, l’identificativo del requisito sorgente o/e l’allocazione al modulo software). Questa funzionalità risulta particolarmente utile durante la verifica delle specifiche software, in quanto l’utente può filtrare e individuare rapidamente i requisiti di interesse, analizzando i dati estratti nel file Excel di output. Ciò consente di ridurre il rischio di errori umani, legato alla selezione e individuazione manuale dei requisiti (dell’ordine di qualche centinaio) e di migliorare l’efficacia e la precisione della verifica.
- Document Version Comparison –> Evidenzia le modifiche nei requisiti, risparmiando tempo rispetto al confronto manuale. Permette quindi di analizzare i documenti di specifica software, riportando nel file di output solo i requisiti modificati o aggiunti ed evidenziando con un codice colori le modifiche apportate (rosso per le parti aggiunte, blu per le cancellazioni). Grazie a questa funzionalità, è possibile stimare in poco tempo l’effort necessario per svolgere le attività di verifica, superando il tradizionale approccio manuale di esamina del documento Word (come il tasto “Confronta”), più lento e prono ad errori, legato alla selezione manuale dei requisiti modificati/aggiunti.
- Requirements & SIL Coverage –> Supporta la verifica preliminare delle specifiche sw, con check automatizzati della correttezza del SIL1 associato. Sfruttando questa informazione, è possibile rilevare tempestivamente eventuali anomalie bloccanti, come la mancata implementazione dei requisiti di sicurezza, ottimizzando le attività di verifica.
- Test – Requirement Tracking –> Crea in automatico la cosiddetta Matrice di tracciabilità, ovvero la matrice che riporta la corrispondenza “test case – elenco dei requisiti tracciati”. La creazione manuale della matrice di tracciabilità risulta dispendiosa in termini di tempo e soggetta, nuovamente, ad errori umani.
- Test – Requirement Coverage –> Fornisce un check preliminare sulla verifica delle funzionalità descritte dai requisiti da parte delle attività di test, controllando in automatico che tutti i requisiti siano tracciati su almeno un test case. Il tool fornisce una matrice di tracciabilità che associa ad ogni requisito i relativi test case ed evidenzia i requisiti non tracciati, segnandole come anomalie nel file Excel di output. Inoltre, questa funzionalità può essere utilizzata per: 1) compilare automaticamente la matrice di validazione dei requisiti nel report di validazione, 2) verificare la matrice di tracciabilità prodotta dal team di Test. Anche in questo caso, gli automatismi introdotti, consentono di superare il tradizionale approccio manuale, più inefficiente e più prono ad errori, dovuto alla creazione manuale della matrice di tracciabilità e a un ritardo nell’individuazione di anomalie.
1 SIL = Safety Integrity Level. Il valore del SIL è assegnato ad ogni requisito e può variare da 1 a 4, con il livello 4 che rappresenta il massimo grado di sicurezza
VyxT A LAVORO.

Selezionata la funzionalità, è possibile scegliere il file di input da analizzare (Fig. 5) e, al termine dell’elaborazione, salvare il risultato in formato Excel. Per le funzionalità 3 e 5, è possibile selezionare più di un file in input, consentendo elaborazioni in parallelo per accelerare il processo di V&V ma soprattutto per permettere all’utente di dedicare più tempo ad aspetti non automatizzabili, come quelli di sicurezza (Fig. 6).


La Figura 6 illustra le fasi in cui le cinque funzionalità del tool, descritte precedentemente, si inseriscono nel ciclo di sviluppo del software.

Il tool è stato sottoposto ad una campagna di test che ne ha dimostrato il corretto funzionamento. Grazie all’architettura versatile, è stato possibile utilizzare VyxT in diversi progetti, anche di clienti differenti, come Alstom, Progress Rail Signaling e RFI, integrandosi agilmente nei loro processi aziendali. Come esempio, si riporta un caso di utilizzo del tool per un importante cliente, durante il quale sono stati processati oltre 1000 requisiti e più di 400 test case, permettendo di rilevare tempestivamente oltre 200 anomalie bloccanti, come la mancata (o parziale) presa in carico dei requisiti di sicurezza e la mancata (o parziale) verifica delle funzionalità descritte dai requisiti, durante le attività di test. Ciò ha consentito di ridurre il numero di interazioni tra una fase e l’altra del ciclo di sviluppo, soprattutto backward, riducendo i tempi di rilascio del software sul mercato e i costi di progetto.
CONCLUSIONI.
VyxT è stato progettato per rispondere alle esigenze specifiche del validatore, con un focus particolare su automazione, precisione, migliore gestione del tempo ed energie su aspetti non automatizzabili, come quelli relativi alla sicurezza. A differenza di altri strumenti sul mercato, spesso complessi, costosi e difficili da configurare, VyxT offre una soluzione intuitiva, economica e facile da usare, con una gestione dei requisiti fluida.
Riassumendo, quali sono i tre principali vantaggi?
- Efficienza Operativa: Taglia il tempo delle attività V&V, riducendo i tempi di commercializzazione.
- Precisione e Consistenza: minimizza gli errori, assicurando la qualità del processo
- Facilità di utilizzo: l’interfaccia grafica semplice ed intuitiva e ad un rapido accesso al manuale d’uso rendono VyxT ideale anche per i nuovi utenti
VyxT è curato da un team interno che lavora a stretto contatto con gli utenti e ne raccoglie i suggerimenti. Uno dei prossimi sviluppi, si propone di applicare l’esperienza maturata da NIER nell’ambito del progetto GEMEB (Generative Models Empowering Businesses and Enhancing Workflows), per introdurre funzionalità innovative al tool, basate sull’intelligenza artificiale. Il progetto GEMEB, finanziato dall’Unione Europea nell’ambito del programma NextGeneration EU, si propone di sviluppare tecniche innovative di intelligenza artificiale per supportare la consultazione delle normative tecniche in ambito ferroviario, come le CENELEC e UNISIG, riducendo significativamente i tempi di consultazione delle normative e ottimizzando l’elaborazione di richieste puntuali. L’obiettivo è quello di utilizzare le competenze acquisite durante il progetto GEMEB per introdurre nuovi automatismi nel processo di V&V del software, in grado di fornire un’analisi testuale avanzata e di aumentare la capacità di operare in autonomia dalla formattazione dei documenti in input. Ciò consentirà di estendere il tool anche ad altri settori, diversi da quello ferroviario, come il biomedicale e l’automotive.