Progetto PROSSIMO: Sintesi e analisi automatica di CPS (v.1)
Caricamento...
Data
2019-07-24
Autori
Pulina, Luca
Cicala, Giuseppe
Titolo del periodico
ISSN
Titolo del volume
Editore
Abstract
La società dipende sempre più da sistemi informatici e software dedicati per l’assi- stenza in quasi ogni aspetto della vita quotidiana. Spesso non ci rendiamo nemmeno conto che sono coinvolti computer e software. Diverse funzioni di controllo nelle au- to moderne sono basate su soluzioni software integrate, ad es. freni, airbag, cruise control e sistemi di iniezione del carburante. Cellulari, sistemi di comunicazione, di- spositivi medici, sistemi audio e video e dispositivi elettronici di consumo in generale contengono grandi quantità di software. Anche i sistemi di trasporto, di produzione e di controllo stanno applicando sempre più soluzioni software integrate per ottene- re flessibilità e un buon rapporto tra costo ed efficienza. Un esempio comune è la crescente complessità dei sistemi, una tendenza che è accelerata dall’adattamento di soluzioni di rete cablate e wireless: in una moderna automobile ad esempio le funzioni di controllo sono distribuite su più unità di elaborazione che comunicano attraverso reti e bus dedicati. Tuttavia, le soluzioni basate su computer e software sono diven- tate onnipresenti e si trovano in diversi sistemi critici per la sicurezza. Quindi la sfida principale per il campo dell’informatica è quella di fornire formalismi, tecniche e strumenti che consentano la progettazione efficiente di sistemi corretti e ben fun- zionanti, nonostante la loro complessità. Negli ultimi due decenni circa un approccio molto attraente verso la correttezza dei sistemi di controllo basati su computer sono quelli della verifica del modello (Model Checking). Il model checking è una tecnica di verifica formale che consente di verificare le proprietà comportamentali desiderate di un determinato sistema sulla base di un modello adeguato del sistema attraverso un’ispezione sistematica di tutti gli stati del modello. L’attrattiva del model chec- king deriva dal fatto che è completamente automatico e offre controesempi nel caso in cui un modello non riesca a soddisfare una proprietà offrendo informazioni indi- spensabili per le attività di debug. Inoltre, le prestazioni degli strumenti di verifica dei modelli si sono dimostrate essere mature come testimoniato da un gran numero di applicazioni industriali di successo.
Inoltre vengono proposti i Modelli di Specifica di Proprietà (PSP) per facilitare la formalizzazione dei requisiti e che consentono la verifica automatizzata. In partico- lare, la consistenza interna delle specifiche scritto con i PSP può essere controllata automaticamente con l’uso, ad esempio, di risolutori di soddisfacibilità per la Logica Temporale Lineare (LTL). Tuttavia, per la maggior parte delle applicazioni pratiche, l’espressività dei PSP è troppo limitata ad abilitare la scrittura di specifiche dei re- quisiti utili e dimostrare che un insieme di requisiti è incostistente può essere inutile a meno che non venga estratto un insieme minimo di requisiti in conflitto per aiutare i progettisti a correggere una specifica sbagliata. In questo documento, vengono estesi i PSP aggiungendo le asserzioni numeriche atomiche, viene presentata una codifica da PSP alle formule LTL e un algoritmo che estrae un sottoinsieme inconsistente e irriducibile dell’insieme originale dei requisiti. La nostra estensione ci consente di ragionare sulla consistenza interna dei requisiti funzionali che non sarebbe rilevata dai PSP di base. I risultati sperimentali dimostrano che con questo approccio si può verificare e spiegare (in)consistenze nelle specifiche con quasi duemila requisiti gene- rati usando un modello probabilistico, e che consente un’efficace gestione nei casi di studio reali.