Verifiche delle proprietà del software e della loro corrispondenza alle specifiche formali

Documenti analoghi
Materiale didattico. Sommario

Cosa è l Informatica?

Analisi e specifica dei requisiti

Introduzione al Calcolo Scientifico

Il calcolatore. Architettura di un calcolatore (Hardware)

Introduzione al Corso di Verifica Automatica dei Sistemi: Teoria e Applicazioni

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ottimizziamo il flusso di lavoro aziendale ed abbattiamo i costi di gestione mediante l uso di tecnologie adeguate.

Qualità delle app per e-gov: i test di usabilità

SETA Selection Tool del Sistema ARTIST

Parole note, nuovi significati: linguaggio, determinismo e infinito

Le aree dell informatica

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi

Le aree dell informatica

INTRODUZIONE AL TESTO FILOSOFICO

Studio del linguaggio TROPOS per la modellazione dei requisiti orientata agli agenti

Sviluppo dei Programmi

Laboratorio di Progettazione di Sistemi Software Progetto: modellazione di un dominio e sue attività

Corso di Informatica

TIA Portal Frequently Asked Questions. For internal use only / Siemens Spa All Rights Reserved.

Concetti Introduttivi. Il Computer

Laboratorio software. A.A C. Brandolese

TECNOLOGIE DELL INFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE

Programmazione di INFORMATICA e Laboratorio

Algoritmi. Pagina 1 di 5

La Raccolta dei Requisiti. Corso di Ingegneria del Software Anno Accademico 2012/2013

Elena Baralis 2007 Politecnico di Torino 1

Capitolo 6 Le infrastrutture SoftWare

orario ricevimento via orario ufficio risposta entro 3 giorni

Tecnologie Informatiche L-31. Corso di Ingegneria del software e Laboratorio di Ingegneria del software

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

BASI DI DATI. basi di dati - introduzione ai sistemi informativi 1

Un nostro tecnico alle prese con un upgrade di circa 20 server presso un nostro cliente

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

DIAGNOSTICA DEI CIRCUITI INTEGRATI DEFINIZIONI GENERALI

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

vero: metodi di sequenziali, linee di (lettura del disegno) 5. Utilizzare software di base di lavorazione per la

MBM Italia S.r.l. Via Pellizzo 14/a Padova Tel. Fax

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Analytical and simulation performance models for software system analysis and prediction

SISTEMI INFORMATIVI AZIENDALI. introduzione ai sistemi informativi 1

Metodi formali per la verifica dell affidabilità di sistemi software (e hardware) (Peled, Software Reliability Methods, cap. 1) Importanza della

Strumenti per l automazione del testing di applicazioni web Javascript-based

Descrizione processo

Capitolo I1: Laboratorio con DevC++

Algoritmi e Linguaggi

Sviluppo di programmi

I sistemi operativi. Prof. Daniele Contarino

NUCLEI FONDANTI COMPETENZE CONTENUTI ABILITA METODOLOGIE E STRUMENTI METODO SCIENTIFICO VEDERE

Distribuiamo e integriamo prodotti per l automazione

Università di Torino. Torino 20 Febbraio, 2004

Enti locali a confronto Crescere con le imprese e con il territorio Milano, 30 maggio 2012

Normalizzazione. Definizione

Utilizzo collegamento remoto

testo Saveris Web Access Software Istruzioni per l'uso

Applicazione dei PLC nei servizi di trasporto e distribuzione dell energia. Pietro Zambon Omron Electronics

IL PROCESSO di PROGETTAZIONE

la dimensione massima dell arena è di 30x30 m la dimensione massima dei marker è di 50x50 cm la dimensione minima dei marker è di 20x20 cm

Programma di INFORMATICA

UNIVERSITA' DEGLI STUDI DI MILANO - BICOCCA Facoltà di Scienze Matematiche, Fisiche e Naturali

Programmazione didattica di Matematica a. s. 2015/2016 V H

La piattaforma Moodle al servizio del Test di Accertamento dei Requisiti Minimi (TARM) per l ingresso in Università

Processi decisionali e modelli di simulazione

Introduzione ai Calcolatori Elettronici

SISTEMI DI MONITORAGGIO ATTIVO

Sistema operativo & file system 1

Macchine sequenziali. Automa a Stati Finiti (ASF)

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS

Il concetto di informatica. Graziano Pravadelli (2012)

Microsoft Visio 2002 UML Sergio Colosio

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

OPEN SOURCE. Concetti chiave e implicazioni per le scelte aziendali (fornitori e utenti)

Programmazione modulare

Prefazione...IX. Ringraziamenti...XIII. Gli autori...xv. Capitolo 1 - Le tecnologie mobili: la nuova generazione di tecnologie dell informazione...

Virtualizzazione e macchine virtuali. Presentata da Bernardo Lombardi

Le basi di dati. Definizione 1. Lezione 2. Bisogna garantire. Definizione 2 DBMS. Differenza

F O R M A T O E U R O P E O

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.

Veronafiere! ottobre 2014! Gli atti dei convegni e più di contenuti su

Corso Programmazione Java Standard

Adattabilità fisica e inferenze nella visualizzazione

MaX - Un applicazione software per il

File e cartelle File system Software di utilità Il S.O. e le periferiche Il S.O. e la memoria

Valutazione delle Prestazioni Dipartimento di Informatica Università di Torino. Matteo Sereno

Laurea magistrale in Relazioni di lavoro (LM-77 Scienze economico aziendali) Modena, 29 maggio 2014

(b) LOGIC SYNTHESIS DESIGN FLOW

ISTITUTO TECNICO INDUSTRIALE STATALE "G. MARCONI" Via Milano n PONTEDERA (PI) DIPARTIMENTO: Informatica

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Applicazione: Trattamento Dati Personali

ARCHITETTURA DI UN DBMS

Prof. Ing. Maria Pia Fanti Dipartimento di Elettrotecnica ed Elettronica Politecnico di Bari AUTOMAZIONE INDUSTRIALE

PROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE QUINTA

Docente: Prof. Marco Patella Tutor: Vincenzo Lomonaco

Rapporto conclusivo di accessibilità

I Diagrammi di Flusso OO

Fondamenti VBA. Che cos è VBA

Linguaggi di alto livello, compilatori e interpreti


UDA 7 - GEOMETRIA E MISURA

Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale

Transcript:

Verifiche delle proprietà del software e della loro corrispondenza alle specifiche formali Prof.ssa Susanna Donatelli Prof. Franco Sirovich Dipartimento di Informatica Università di Torino www.di.unito.it susi@di.unito.it 011-6706746 1

Specificare Informale Indicazioni Lingua italiana il più precisa possibile Difficilmente elaborabile Semi-formale Indicazioni di maggior precisione Semi-elaborabile Formale Indicazioni non-ambigue Elaborabili in modo automatico 2

Specificare Costo della specifica iniziale e capacità richieste Costo totale dello sviluppo e del mantenimento Informale Semi-formale Formale 3

Specificare Requisiti non-funzionali: prestazioni affidabilità usabilità Sicurezza ( antivirus Possono essere in contrasto fra loro (es: ( personale Difficili da specificare (anche per mancanza di istruzione del ( sicurezza Difficili da verificare e da garantire nel tempo (es: I requisiti non-funzionali devono essere specificati allo stesso tempo e con la stessa attenzione di quelli funzionali (difficile aggiungere affidabilità, ( posteriori prestazioni e sicurezza a 4

Specifica informale Esempi: il nostro server degli ordini on-line deve essere in grado di supportare le seguente prestazioni: Sino a 10 utenti di tipo A --- meno di 0.5 sec per query Sino a 100 utenti di tipo B --- meno di 2 sec per query Etc... pensando al futuro! il nostro server deve garantire "queste" prestazioni nel 98% dei casi, con tempo massimo di down-time 1 minuto, qualunque sia la causa, anche catastrofica, del problema 5

Specifica semi-formale Estensioni del linguaggio di specifica semi-formale piu' di moda: UML ( www.uml.org ) I vari diagrammi sono modificati aggiungendo attributi e altre caratteristiche alle classi di base del meta-modello di UML, e quindi a tutti i diagrammi di UML L'estensione è realizzata tramite profili: UML MARTE www.omgmarte.org UML SPT RT Corba SysML www.omgsysml.org Richiede skill e molto lavoro 6

Un esempio di alcune classi in ( dependability ) MARTE 7

Specifica formale Linguaggi e logiche che permettono di specificare in modo preciso e non-ambiguo sistemi e vincoli temporali di affidabilità e prestazioni Cosa vuol dire "preciso"? ( 300ms Dato un vincolo ( msg m: m.inviato ack(m).receive and time < (.. ack(m1)=0.7 Data una sequenza temporale di eventi (time(m1) = 0.5, Il vincolo è soddisfatto? Se non è soddisfatto, mostra un controesempio Model-checking 8

Specifica formale Normalmente non si specificano sequenze temporali di esecuzioni, ma insiemi, anche infiniti, di esecuzioni, usando ( automata Estensioni di automi (timed ( automata Estensioni di Reti di Petri (timed and stochastic ( task Linguaggi ad-hoc per specifiche applicazioni (es: scheduling di 9

Specifica formale - sistemi Esempi Timed Petri Net 10

Specifica formale - sistemi Esempi Timed Automata Quando si percorre l'arco si resetta il clock L'arco puo' essere percorso solo se y>=5 11

Specifica formale - sistemi 12

Specifica formale - vincoli Logiche di vario tipo Timed CTL ( CSL ) Stochastic CTL 13

Specifica formale - strumenti Si distinguono in base ai linguaggi utilizzati per sistema e vincoli, agli algoritmi di model-checking, possibilità di generare codice, supporto fornito Uppaal Timed automata e logica TCTL molto semplificata www.uppaal.com Romeo/TINA - Timed Petri Nets e logica TCTL completa romeo.rts-software.org http://www.laas.fr/tina/ Oris varie forme di Timed Petri Nets e logica TCTL con supporto grafico per la definizione di vincoli e generatore per Linux real-time www.stlab.dsi.unifi.it/oris/ 14

Garantire/controllare requisiti non funzionali Approccio integrato, a seconda degli obiettivi e delle disponibilità: Generare automaticamente il codice dalle specifiche formali - approccio molto usato in sistemi embedded/real-time Generare modelli dal codice e verificare le proprietà approccio usato soprattutto per predire le prestazioni in ambiti esecutivi diversi Estendere la fase di test funzionale a includere anche aspetti non funzionali 15

Garantire/controllare requisiti non funzionali Problema: dipendenza dall'ambiente di esecuzione ( private Applicazioni che usano le reti di comunicazione (sia Internet che Aggiornamenti di librerie, sistema operativo, etc. ( carico Dipendenza dallo scheduler (e dal. Ricerca di una soluzione: specificare e costruire ambienti di test Un esempio di soluzione: utilizzare le macchine virtuali per "congelare" il sistema Utilizzato nel corso di Specifiche di Processi Concorrenti per assicurare un ambiente di lavoro uniforme per gli studenti Permette di aggiornare le librerie, per esempio, di Java, senza che questo influenzi l esecuzione dell applicativo 16

Scegliere tecniche e strumenti Quale tecnica? Quale strumento? Che tipo di esperti? Che limiti ha? Che metodologia adotta? In quali fasi delo sviluppo? Quanto costa? Di quante persone ho bisogno? Che esperienza è necessaria? Che tipo di formazione? Quali limitazioni di scala? Esaustività? Affidabilità? Espressività? Efficienza? Supporto? Grado di automazione? 17

Scegliere tecniche e strumenti (2) Ma soprattutto, cosa chiede il mercato oggi, e cosa chiederà domani?

Program Verification SLAM Bandera http://research.microsoft.com/en-us/projects/slam/ http://www.kroening.com/papers/ase2007-ddverify.pdf http://bandera.projects.cis.ksu.edu/ http://www.citeulike.org/user/bfraser/article/2374734 19

SLAM Verifica statica di programmi in C Verifica del rispetto delle specifiche di API Astrazione dal codice Model checking dell'astrazione ottenuta automaticamente dal codice Valido per domini con limitata dimensione degli stati delle variabili 20

Bandera Generazione automatica di modello a stati finiti di codice scritto in Java Produzione del modello nel formalismo di una serie di tool di verifica Uso del tool di verifica per verificare che il modello del codice soddisfa le proprietà rilevanti che la specifica soddisfa 21

Infine.. grazie della vostra attenzione 22