SOFTWARE DEPENDABILITY

DARIO DI NUCCI SOFTWARE DEPENDABILITY

0522500119
DIPARTIMENTO DI INFORMATICA
CORSO DI LAUREA MAGISTRALE
INFORMATICA
2024/2025

OBBLIGATORIO
ANNO CORSO 1
ANNO ORDINAMENTO 2016
PRIMO SEMESTRE
CFUOREATTIVITÀ
630LEZIONE
324LABORATORIO
Obiettivi
IL CORSO SI PROPONE DI FORNIRE METODI E TECNICHE PER ANALIZZARE E VERIFICARE L'AFFIDABILITÀ DEL SOFTWARE. QUESTI CONCETTI VENGONO AFFRONTATI NEL CONTESTO DI SISTEMI SOFTWARE COMPLESSI E CRITICI.

CONOSCENZA E CAPACITÀ COMPRENSIONE
AL TERMINE DEL CORSO LO STUDENTE AVRÀ ACQUISITO CONOSCENZA E COMPRENSIONE IN MERITO A
- PRINCIPI FONDAMENTALI DI AFFIDABILITÀ DEL SOFTWARE;
- CICLI DI VITA E INFRASTRUTTURE SOFTWARE AFFIDABILI;
- ANALISI DEL SOFTWARE PER MIGLIORARE LA QUALITÀ DEL SOFTWARE E AUMENTARE LA SICUREZZA DEL SOFTWARE;
- TESTING DEI REQUISITI FUNZIONALI E NON FUNZIONALI DEL SOFTWARE;
- GENERAZIONE AUTOMATIZZATA DI CASI DI TEST PER TESTARE REQUISITI FUNZIONALI E NON FUNZIONALI.

CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE
DOPO AVER COMPLETATO IL CORSO, LO STUDENTE SARÀ IN GRADO DI
- UTILIZZARE METODI E TECNICHE DI INGEGNERIA DEL SOFTWARE PER MONITORARE LA QUALITÀ, LE PRESTAZIONI E LA SICUREZZA DEL SOFTWARE;
- PROGETTARE SISTEMI DISTRIBUITI SU CLOUD, VALUTANDONE LE PRESTAZIONI, CONFIGURANDONE LE SPECIFICHE, SVILUPPANDO APPLICAZIONI IN CONTESTO CONCORRENTE E PARALLELO;
- UTILIZZARE LE TECNICHE DI ANALISI E VERIFICA DEL SOFTWARE PIÙ ADEGUATE AL SOFTWARE DA ANALIZZARE;
- CREARE SOFTWARE SICURO EVITANDO LE VULNERABILITÀ;
- IDENTIFICARE LE PRINCIPALI VULNERABILITÀ DEI SISTEMI IN RETE E VALUTARE LA SICUREZZA DEI SISTEMI IN RETE COMPLESSI.

AUTONOMIA DI GIUDIZIO
DOPO AVER COMPLETATO IL CORSO, LO STUDENTE SARÀ IN GRADO DI:
- COMUNICARE IN MODO CHIARO ED EFFICACE, IN FORMA SCRITTA E ORALE, PER TRASMETTERE CONOSCENZE, IDEE, PROBLEMI, SOLUZIONI, E LE MOTIVAZIONI CHE NE STANNO ALLA BASE, ADATTANDO LE MODALITÀ ESPRESSIVE ALLE CARATTERISTICHE CULTURALI E PROFESSIONALI DEI DESTINATARI DELLA COMUNICAZIONE);
- UTILIZZARE EFFICACEMENTE GLI STRUMENTI DI COMUNICAZIONE MULTIMEDIALE;
- COMUNICARE IN INGLESE CON TECNICI ED ESPERTI DOTATI DI BUONE COMPETENZE LINGUISTICHE E DIMOSTRARE PADRONANZA DELLA TERMINOLOGIA TECNICA;
- COMPRENDERE ED ELABORARE TESTI TECNICI IN INGLESE DI MEDIA DIFFICOLTÀ;
- LAVORARE IN TEAM CON ADEGUATE CAPACITÀ RELAZIONALI E DECISIONALI;
- RENDICONTARE LA PROPRIA ATTIVITÀ LAVORATIVA.

ABILITÀ COMUNICATIVE
DOPO AVER COMPLETATO IL CORSO, LO STUDENTE SARÀ IN GRADO DI:
- PENSARE IN MODO CRITICO E METTERE IN DISCUSSIONE LE SCELTE PROGETTUALI E REALIZZATIVE;
- SVILUPPARE RAGIONAMENTI E RIFLESSIONI AUTONOME E INDIPENDENTI;
- COMPRENDERE LA RILEVANZA DI UNA PLURALITÀ DI PUNTI DI VISTA E APPROCCI ALTERNATIVI;
- VALUTARE CRITICAMENTE GLI ASPETTI POSITIVI E NEGATIVI DI SOLUZIONI ALTERNATIVE, TENENDO IN CONSIDERAZIONE LA QUALITÀ E IL RAPPORTO COSTO/EFFICACIA;
- STABILIRE UN ORDINE DI PRIORITÀ PER OBIETTIVI SPESSO CONTRASTANTI;
- LAVORARE CON UN ELEVATO GRADO DI AUTONOMIA;
- PIANIFICARE UNA RACCOLTA DATI ADEGUATA AGLI OBIETTIVI PROPOSTI E INTERPRETARE CRITICAMENTE I DATI RACCOLTI PER RICAVARE GIUDIZI AUTONOMI SUPPORTATI DA ANALISI OGGETTIVE E QUANTITATIVE.

CAPACITÀ DI APPRENDIMENTO
DOPO AVER COMPLETATO IL CORSO, LO STUDENTE SARÀ IN GRADO DI:
- ORGANIZZARE LE PROPRIE IDEE IN MODO CRITICO E SISTEMATICO;
- RIFLETTERE SULLA PROPRIA ESPERIENZA DI APPRENDIMENTO E ADATTARLA IN RISPOSTA A SUGGERIMENTI E STIMOLI ESTERNI;
- RICONOSCERE LA NECESSITÀ DI ULTERIORI STUDI E DI ULTERIORI ATTIVITÀ DI RICERCA.
Prerequisiti
GLI STUDENTI DOVREBBERO CONOSCERE I CONCETTI DI BASE DELL'INGEGNERIA DEL SOFTWARE, IN PARTICOLARE I MODELLI DI SVILUPPO DEL SOFTWARE E IL TESTING DEL SOFTWARE.
Contenuti
I CONTENUTI SONO SUDDIVISI IN TRE MODULI FORMATIVI:

M1: FONDAMENTI DI AFFIDABILITÀ DEL SOFTWARE E DELL'INFRASTRUTTURA
IL PRIMO MODULO INTRODUCE LO STUDENTE AI FONDAMENTI DELL'AFFIDABILITÀ DEL SOFTWARE, DELLE INFRASTRUTTURE PROGRAMMABILI AFFIDABILI E DELL'ANALISI DEL SOFTWARE PER MIGLIORARE L'AFFIDABILITÀ DEL SOFTWARE:
- REQUISITI INGEGNERISTICI DI AFFIDABILITÀ DEL SOFTWARE - 4 ORE DI LEZIONI FRONTALI;
- METODOLOGIE AGILE E DEVOPS – 2 ORE DI LEZIONI FRONTALI
- INFRASTRUTTURE AFFIDABILI E PROGRAMMABILI: CONTAINERIZZAZIONE E ORCHESTRAZIONE - 2 ORE DI LEZIONI FRONTALI E 6 ORE DI SESSIONI DI LABORATORIO;
- ANALISI SOFTWARE – 2 ORE DI LEZIONI FRONTALI E 4 ORE DI SESSIONI DI LABORATORIO.

M2: TESTING DEL SOFTWARE
IL SECONDO MODULO APPROFONDISCE E INTEGRA LE CONOSCENZE RELATIVE ALLA VERIFICA E VALIDAZIONE DEL SOFTWARE GIÀ ACQUISITE IN UN CORSO DI INGEGNERIA DEL SOFTWARE DI BASE DELLA LAUREA TRIENNALE:
- INTRODUZIONE AL TESTING DEL SOFTWARE – 2 ORE DI LEZIONI FRONTALI;
- TEST-DRIVEN DEVELOPMENT– 2 ORE DI LEZIONI FRONTALI;
- METODI PER SELEZIONARE, PROGETTARE, VALUTARE E OTTIMIZZARE I CASI TEST - 4 ORE DI LEZIONI FRONTALI E 2 ORE DI SESSIONI DI LABORATORIO;
- TEST PRESTAZIONALI – 2 ORE DI LEZIONI FRONTALI E 4 ORE DI SESSIONI DI LABORATORIO;
- GENERAZIONE AUTOMATIZZATA DI CASI TEST – 4 ORE DI LEZIONI FRONTALI E 2 ORE DI SESSIONI DI LABORATORIO;
- TESTING DI SISTEMI CYBER-FISICI – 2 ORE DI LEZIONI FRONTALI.

M3: RILEVAMENTO E SFRUTTAMENTO DELLE VULNERABILITÀ DEL SOFTWARE
IL TERZO MODULO PRESENTA TECNICHE STATICHE E DINAMICHE PER RILEVARE E SFRUTTARE LE VULNERABILITÀ DEL SOFTWARE:
- INTRODUZIONE ALLE VULNERABILITÀ DEL SOFTWARE – 2 ORE DI LEZIONI FRONTALI;
- TECNICHE STATICHE E DINAMICHE PER RILEVARE E SFRUTTARE LE VULNERABILITÀ DEL SOFTWARE – 2 ORE DI LEZIONI FRONTALI E 4 ORE DI SESSIONI DI LABORATORIO;
- GENERAZIONE AUTOMATIZZATA DI TEST DI SICUREZZA - 2 ORE DI SESSIONI DI LABORATORIO.
Metodi Didattici
LA PARTE TEORICA SI SVILUPPA CON LEZIONI FRONTALI (6 CFU, 30 ORE) DI CARATTERE TEORICO/METODOLOGICO PER TRASFERIRE LE CONOSCENZE E GLI STRUMENTI NECESSARI PER LE ATTIVITÀ PROGETTUALI.
LA PARTE PRATICA PREVEDE SESSIONI PRATICHE CON LE TECNICHE E I CONCETTI PRESENTATI NELLA PARTE TEORICA (3 CFU, 24 ORE). LA FORMULA SEGUITA CONSISTE NEL MOSTRARE UNO STRUMENTO E PERMETTERE AGLI STUDENTI DI SPERIMENTARLO SU UN PROGETTO SOFTWARE DA LORO SCELTO.
Verifica dell'apprendimento
IL RAGGIUNGIMENTO DEGLI OBIETTIVI DIDATTICI È CERTIFICATO DAL SUPERAMENTO DI UN ESAME CON VALUTAZIONE IN TRENTESIMI. L'ESAME PREVEDE LA REALIZZAZIONE E CONSEGNA DI UN PROGETTO INDIVIDUALE O DI GRUPPO CON LA RELATIVA DOCUMENTAZIONE E UNA PROVA ORALE. LA CONSEGNA DELLA DOCUMENTAZIONE PROGETTUALE È PROPEDEUTICA ALLA PROVA ORALE.
Testi
- KNIGHT, J. (2012). FUNDAMENTALS OF DEPENDABLE COMPUTING FOR SOFTWARE ENGINEERS. CRC PRESS
- PEZZÈ, M., & YOUNG, M. (2008). SOFTWARE TESTING AND ANALYSIS: PROCESS, PRINCIPLES, AND TECHNIQUES. JOHN WILEY & SONS
- MEAD, N. R., ALLEN, J. H., BARNUM, S., ELLISON, R. J., & MCGRAW, G. R. (2004). SOFTWARE SECURITY ENGINEERING: A GUIDE FOR PROJECT MANAGERS. ADDISON-WESLEY PROFESSIONAL
- DISPENSE DEL DOCENTE.
Altre Informazioni
LA FREQUENZA DEL CORSO NON È OBBLIGATORIA MA FORTEMENTE CONSIGLIATA. GLI STUDENTI DEVONO ESSERE PREPARATI AD ESSERE ATTIVAMENTE COINVOLTI NEL CORSO ATTRAVERSO L'INTERAZIONE CON IL DOCENTE IN AULA E LA FORMAZIONE INDIVIDUALE. LA PREPARAZIONE ADEGUATA, FINALIZZATA AL SUPERAMENTO DELL'ESAME, SARÀ COSTITUITA DA DUE ORE DI STUDIO INDIVIDUALE PER OGNI ORA TRASCORSA IN AULA E DA UN'ORA DEDICATA ALL'ATTIVITÀ PROGETTUALE ASSOCIATA. IL CORSO PREVEDE UNA SOLIDA PREDISPOSIZIONE ALL'APPRENDIMENTO DEGLI STRUMENTI SOFTWARE NECESSARI PER SVILUPPARE MODULI AFFIDABILI.
IL MATERIALE DIDATTICO SARÀ DISPONIBILE SULLA PIATTAFORMA E-LEARNING DI DIPARTIMENTO.
Orari Lezioni

  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2024-11-18]