Dipartimento di Informatica - Sede di Crema

CORSO DI LAUREA TRIENNALE SSRI ONLINE

Sicurezza dei Sistemi e delle Reti Informatiche Erogazione Online

Progettazione di software sicuro

Docente
Elvinia Riccobene

Crediti
6 cfu

Anno: III

Quadr: II

Programma

  1. Sicurezza del software. Proprietà del software. Proprietà del software sicuro. Ciclo di vita del software: fasi di sviluppo del software, modelli di ciclo di vita. La sicurezza nel ciclo di vita del software. Ciclo di vulnerabilità. Attacchi a livello di progettazione, implementazione e funzionalità.
  2. Architetture sicure. Linee guida e principi per architetture sicure.
  3. Specifica e progettazione di software sicuro. Proprietà di specifiche di software sicuro. Metodi di specifica. Macchine a stati finiti. Communicating Machines. Macchine di stato UML. Design by contract. Il tool JML.
  4. Variabili, tipi primitivi e operatori. Istruzioni e blocchi. Strutture condizionali. Cicli. Array e stringhe. Classi ed oggetti. Costruttori di classe. Incapsulamento, ereditarietà e polimorfismo. Le interfacce.
  5. Implementazione. Sicurezza dei linguaggi di programmazione. Alcune violazioni di sicurezza in C. Programmi sicuri in C. Il caso di studio di Java sandbox. Dalla specifica al codice: macchine a stati finiti in Java.
  6. Testing. Il testing nel ciclo di vita del software. Tipi di testing. Tecniche per la validazione e verifica. I limiti del testing. Testing basato sui programmi. Grafo di flusso di un programma. Copertura delle istruzioni e degli archi. Copertura delle decisioni e delle condizioni. I metodi MCC e MCDC. Valutare la copertura con Emma. Il tool JUnit.

Modalità d’esame

L’esame consiste di:

  • una prova scritta cartacea con più domande di teoria ed esercizi
  • una prova pratica di laboratorio.

Ulteriore pagina di riferimento

http://ericcobenepss.ariel.ctu.unimi.it

E’ consentito l’accesso al sito solo agli studenti del Corso di Laurea.