Sistemi critici per disponibilità e sicurezza suscitano un interesse crescente nel mondo della ricerca in quanto impiegati in molteplici contesti e caratterizzati da un notevole livello di distribuzione, complessità ed eterogeneità. Gli...
moreSistemi critici per disponibilità e sicurezza suscitano un interesse crescente nel mondo della ricerca in quanto impiegati in molteplici contesti e caratterizzati da un notevole livello di distribuzione, complessità ed eterogeneità. Gli attributi di interesse per tali sistemi (Affidabilità, Disponibilità, Sicurezza, ecc.), rientrano nella definizione generale di dependability, che integra anche i concetti di minacce (guasti, errori, malfunzionamenti) e strumenti (prevenzione, tolleranza, rimozione, previsione). Per soddisfare i requisiti funzionali e non funzionali, nonché ridurre costi e tempi di progetto, sviluppo e validazione, è indispensabile prevedere la dependability di tali sistemi fin dalle prime fasi di progetto. Diverse tecniche e strumenti sono stati proposti allo scopo, potendosi dividere nei due macrogruppi dei metodi simulativi e di quelli formali. I primi risultano in genere più efficienti e facili da usare, ma non in grado di fornire misure esatte della propria efficacia. I metodi formali risultano ben definiti (matematicamente) in termini di sintassi e semantica, per cui, fatti salvi approssimazioni o errori di modellazione, consentono di ottenere risultati esatti (es. proprietà sempre verificate dal modello, indipendentemente dalle sequenze di input a cui può essere sottoposto il sistema). E’ chiaro che quest’ultima possibilità rappresenta un vantaggio notevole in termini di efficacia rispetto agli approcci simulativi (es. testing). Esempi di metodi formali consistono nei linguaggi grafici o testuali che consentono di applicare tecniche di model-checking. Alcuni linguaggi di tipo grafico (es. reti di Petri e relative estensioni), in particolare, hanno riscosso un notevole successo per la loro caratteristica di coniugare potenza espressiva e facilità d’uso. A questi due aspetti, nel compromesso globale, va affiancato quello dell’efficienza computazionale degli algoritmi risolutivi, che molto spesso rappresenta un limite all’impiego pratico dei metodi formali in contesti industriali.
Allo scopo di adattare gli aspetti citati (facilità d’uso, potenza espressiva, efficienza) alle diverse parti, aspetti o livelli di astrazione di sistemi complessi ed eterogenei, sono stati introdotti i cosiddetti approcci multi-formalismo, in cui più linguaggi e tecniche formali convivono in un’unica vista del sistema, che può integrare sia aspetti strutturali che comportamentali (o funzionali). A fronte di evidenti vantaggi in termini di possibilità di analisi, un tale approccio introduce una serie di problematiche teoriche e pratiche di non facile soluzione.
Esistono diversi approcci teorici e framework di supporto al multiformalismo. Vale la pena di citare l’approccio OsMoSys che mantiene i modelli scritti in linguaggi diversi distinti tra loro, sfruttando risolutori esistenti (con cui si interfaccia tramite opportuni adapters) e orchestrandoli tramite un’opportuna Workflow Engine. OsMoSys rappresenta quindi sia un approccio metodologico che un framework di supporto alla modellazione multiformalismo / multirisolutore, sviluppato in collaborazione tra le università di Napoli e Torino.
Nella creazione di modelli multiformalismo, riveste particolare importanza il modo in cui i diversi sottomodelli interagiscono tra loro. In particolare, i modelli cosiddetti “connessi” prevedono il passaggio di dati e risultati da un modello all’altro, ma non consentono un’interazione stretta, in fase di esecuzione dei sottomodelli. Per consentire tale interazione, che consente di incrementare la potenza espressiva del modello globale aumentandone la coesione, è necessario caratterizzare i sottomodelli in termini di stato e azioni. I concetti di stato e azione generalizzano i formalismi, sotto l’unica ipotesi di sistemi di tipo a eventi discreti (Discrete Event Systems, DES). Gli operatori di composizionalità sono gli strumenti teorici che consentono di definire la semantica della composizione. Rappresentati graficamente e associata loro una sintassi e semiotica ben definita, possono essere integrati nel framework OsMoSys sfruttando la distinzione tra elementi interni e di interfaccia dei sottomodelli: lo stato degli elementi di interfaccia costituirebbe in tal caso una classe di equivalenza di stati del modello e semplificherebbe la modellazione, riducendo alle condizioni all’interfaccia quelle di cui il modellista deve tener conto nel momento in cui si appresta a definire le regole di composizione. L’implementazione di siffatti operatori in OsMoSys richiede la valutazione di aspetti sia teorici (es. verifica di correttezza dei modelli, conservazione delle proprietà) che pratici (es. reingegnerizzazione di parte del framework).