SOFTWARE DEPENDABILITY

Informatica SOFTWARE DEPENDABILITY

0522500119
DIPARTIMENTO DI INFORMATICA
CORSO DI LAUREA MAGISTRALE
INFORMATICA
2022/2023



OBBLIGATORIO
ANNO CORSO 1
ANNO ORDINAMENTO 2016
SECONDO SEMESTRE
CFUOREATTIVITÀ
972LABORATORIO
Obiettivi
L'OBIETTIVO FORMATIVO DELL'INSEGNAMENTO È QUELLO DI FORNIRE LE METODOLOGIE E LE TECNICHE DI ANALISI, PROGETTAZIONE E VERIFICA DI AFFIDABILITÀ DEL SOFTWARE. IN PARTICOLARE, TALI CONCETTI VENGONO AFFRONTATI NEL CONTESTO DI SISTEMI SOFTWARE COMPLESSI E CRITICI.

CONOSCENZA E CAPACITÀ DI COMPRENSIONE
GLI STUDENTI ACQUISIRANNO LE CONOSCENZE RELATIVE ALLE METODOLOGIE E LE TECNICHE DI ANALISI, PROGETTAZIONE E VERIFICA DI AFFIDABILITÀ DEL SOFTWARE. GLI STUDENTI ACQUISIRANNO LA CAPACITÀ DI COMPRENDERE LO STATO DELL'ARTE, LA LETTERATURA SCIENTIFICA E GLI STANDARD INTERNAZIONALI DEL SETTORE.

CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE
GLI STUDENTI SARANNO IN GRADO DI APPLICARE LE CONOSCENZE RELATIVE ALLE METODOLOGIE E TECNICHE DI ANALISI PER LA PROGETTAZIONE E LA VERIFICA DI AFFIDABILITÀ DEL SOFTWARE, IN PARTICOLARE NEL CONTESTO DEI SISTEMI SOFTWARE COMPLESSI E CRITICI.
Prerequisiti
GLI STUDENTI DEVONO AVERE CONOSCENZA PREGRESSA DEI CONCETTI DI BASE DI INGEGNERIA DEL SOFTWARE, IN PARTICOLARE DEI MODELLI DI SVILUPPO SOFTWARE E DEL TESTING DI SISTEMI SOFTWARE.
Contenuti
I CONTENUTI SONO ARTICOLATI IN TRE MODULI FORMATIVI:

M1: FONDAMENTI DI AFFIDABILITÀ DEL SOFTWARE
IL PRIMO MODULO INTRODUCE LO STUDENTE AI FONDAMENTI RELATIVI ALL’AFFIDABILITÀ DEL SOFTWARE, ARCHITETTURE AFFIDABILI ED ARCHITETTURE IOT:
- REQUISITI DI AFFIDABILITÀ ED INGEGNERIA DELL'AFFIDABILITÀ- 4 ORE FRONTALI;
- INTRODUZIONE A METODOLOGIE AGILI E DEVOPS - 4 ORE FRONTALI;
- ARCHITETTURE IOT, CONTAINERIZZAZIONE ED ORCHESTRAZIONE - 4 ORE FRONTALI E 4 ORE DI LABORATORIO;
- SOFTWARE ANALYTICS - 2 ORE FRONTALI E 4 ORE DI LABORATORIO.

M2: SOFTWARE TESTING
IL SECONDO MODULO APPROFONDISCE ED INTEGRA LE CONOSCENZE RELATIVE ALLA VERIFICA E CONVALIDA DEL SOFTWARE GIÀ ACQUISITE IN UN CORSO BASE DI INGEGNERIA DEL SOFTWARE DELLA LAUREA TRIENNALE, INCLUDENDO:
- INTRODUZIONE AL SOFTWARE TESTING - 2 ORE FRONTALI;
- TEST DRIVEN DEVELOPMENT IN DEVOPS - 2 ORE FRONTALI;
- METODI DI SELEZIONE E PROGETTAZIONE DI CASI DI TEST - 6 ORE FRONTALI E 2 ORE DI LABORATORIO;
- TESTING DI REQUISITI NON FUNZIONALI (I.E., PERFORMANCE TESTING, ENERGY TESTING) - 6 ORE FRONTALI E 4 ORE DI LABORATORIO;
- GENERAZIONE AUTOMATICA DI CASI DI TEST TRAMITE ALGORITMI DI RICERCA - 4 ORE FRONTALI E 2 ORE DI LABORATORIO;
- TESTING DI SISTEMI EMBEDDED E CYBER-PHYSICAL - 2 ORE FRONTALI.

M3: PREDIZIONE DI DIFETTI E VULNERABILITÀ SOFTWARE
IL TERZO MODULO PRESENTA TECNICHE BASATE SU APPRENDIMENTO AUTOMATICO ED ALGORITMI DI RICERCA PER PREDIRE DIFETTI SOFTWARE E SFRUTTARE VULNERABILITÀ, INCLUDENDO:
- INTRODUZIONE AD ERRORI, DIFETTI E VULNERABILITÀ - 2 ORE FRONTALI;
- TECNICHE PER PREDIRE DIFETTI E VULNERABILITÀ SOFTWARE TRAMITE MACHINE LEARNING - 4 ORE FRONTALI E 4 ORE DI LABORATORIO;
- TECNICHE STATICHE E DINAMICHE PER SFRUTTARE VULNERABILITÀ SOFTWARE - 4 ORE FRONTALI E 2 ORE DI LABORATORIO;
- GENERAZIONE AUTOMATICA DI CASI DI TEST TRAMITE ALGORITMI DI RICERCA PER SFRUTTARE PROBLEMI DI SICUREZZA - 2 ORE FRONTALI E 2 ORE DI LABORATORIO.
Metodi Didattici
LA PARTE TEORICA DELL'INSEGNAMENTO VIENE SVILUPPATA CON LEZIONI FRONTALI IN AULA (6 CFU, 48 ORE) A CARATTERE TEORICO/METODOLOGICO PER IL TRASFERIMENTO DELLE CONOSCENZE RICHIESTE E DEGLI STRUMENTI NECESSARI PER LE ATTIVITÀ PROGETTUALI.

LA PARTE PRATICA VIENE SVOLTA IN LABORATORIO CON SPERIMENTAZIONE DELLE TECNICHE E DEI CONCETTI PRESENTATI NELLA PARTE TEORICA (3 CFU, 24 ORE). LA FORMULA SEGUITA CONSISTE NELL'ASSEGNARE UN ESERCIZIO, ANALIZZARE LA TRACCIA INSIEME, LASCIARE UN LASSO DI TEMPO BREVE PER PENSARE AD UNA SOLUZIONE INDIVIDUALMENTE, DISCUTERE LE SOLUZIONI INDIVIDUATE COLLEGIALMENTE E QUINDI PASSARE ALL'IMPLEMENTAZIONE INDIVIDUALE DELLA PROPRIA SOLUZIONE. DURANTE L'INSEGNAMENTO POSSONO ESSERE ASSEGNATI DEI PROGETTI DI SVILUPPO SOFTWARE DA SVOLGERE IN LABORATORIO.
Verifica dell'apprendimento
IL RAGGIUNGIMENTO DEGLI OBIETTIVI DELL'INSEGNAMENTO È CERTIFICATO MEDIANTE IL SUPERAMENTO DI UN ESAME CON VALUTAZIONE IN TRENTESIMI. L'ESAME PREVEDE LA REALIZZAZIONE DI UN PROGETTO INDIVIDUALE O DI GRUPPO E LA CONSEGNA DELLA RELATIVA DOCUMENTAZIONE E UNA PROVA ORALE.
Testi
- I. SOMMERVILLE, “SOFTWARE ENGINEERING”, ADDISON WESLEY;
- J. KNIGHT, "FUNDAMENTALS OF DEPENDABLE COMPUTING FOR SOFTWARE ENGINEERS", CHAPMAN AND HALL/CRC;
- M. PEZZÈ, M. YOUNG, "SOFTWARE TESTING AND ANALYSIS: PROCESSES PRINCIPLES AND TECHNIQUES", JOHN WILEY & SONS;
- DISPENSE DEL DOCENTE.
Altre Informazioni
LA FREQUENZA AL CORSO NON È OBBLIGATORIA MA FORTEMENTE CONSIGLIATA. GLI STUDENTI DOVRANNO ESSERE PREPARATI AD AFFRONTARE ATTIVAMENTE IL CORSO, TRAMITE INTERAZIONE CON IL DOCENTE IN AULA E LA FORMAZIONE INDIVIDUALE. UNA PREPARAZIONE SODDISFACENTE, CHE PORTI AL SUPERAMENTO DELL’ESAME, CONSISTERÀ IN DI DUE ORE DI STUDIO INDIVIDUALE PER CIASCUNA ORA TRASCORSA IN AULA OLTRE CHE UN’ORA DEDICATA ALL’ATTIVITÀ PROGETTUALE ASSOCIATA. IL CORSO PREVEDE UNA FORTE PREDISPOSIZIONE ALL’APPRENDIMENTO DI STRUMENTI SOFTWARE PER LO SVILUPPO DI MODULI DI AFFIDABILITÀ SOFTWARE.

IL MATERIALE DIDATTICO SARÀ DISPONIBILE SULLA PIATTAFORMA E-LEARNING DIPARTIMENTALE.
  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2022-08-05]