32683 - Ingegneria del Software 2

Settore scientifico-disciplinare: ING-INF/05

Crediti: 5

Obiettivi formativi specifici

Il corso si propone di fornire le conoscenze di base sulla raccolta, analisi, classificazione, validazione e verifica dei requisiti; sui metodi descrittivi ed operazionali, informali e formali per la specifica di requisiti funzionali; sulle tecniche per la verifica dei requisiti e del software, basati sia su analisi statica che dinamica della specifica e del codice.

Contenuti essenziali

Il processo di Requirement Engineering. Elicitazione, Classificazione, Analisi dei conflitti, Prioritizzazione, Validazione dei Requisiti. Il Requirement Document: struttura e standard IEEE. Analisi e Specifica dei requisiti: Requisiti funzionali, non funzionali, di dominio, utente. Metodi di Specifica Informali (Linguaggio Naturale Strutturato), Metodi di Specifica Semi-Formali (Diagrammi Data-Flow, Diagrammi Entità-Relazione), Metodi di Specifica Formali (Automi, Reti di Petri, Speciche Logiche, Specifiche Algebriche). Tecniche di c onvalida e verifica. Analisi statica (tecniche dataflow e strutturali, criteri di selezione dataflow). Esecuzione simbolica. Analisi dinamica. Testing. Unit Testing, Testing di Sistema, Test di accettazione (alpha testing), beta testing, test di regressione, test di integrazione. Debugging, controllo delle versioni e delle configurazioni. Tecniche per la verifica di specifiche formali. Tecniche di verifica automatica delle proprietà. Il problema della raggiungibilità. Tecniche di esplorazione dello spazio degli stati. Model Checking.. Theorem proving.

Capacità operative

Al termine del corso l'allievo sarà in grado di analizzare e classificare requisiti. Specificare i requisiti funzionali utilizzando la tecnica opportuna. Validare/Verificare un prodotto software e/o i suoi requisiti.

Tipologia delle attività didattiche e loro articolazione

Numero totale di lezioni: 60 ore.

Tipologia e modalità d'esame

Prova scritta ed esame orale.

Propedeuticità :

Ingegneria del Software 1.

Riferimenti bibliografici:

•  Dispense e appunti del corso

•  C. Ghezzi, A. Fuggetta, S. Morasca, A. Morzenti, M.Pezzè, Ingegneria del Software, Mondadori Informatica, 1996

•  A. Fuggetta, WebBook di Ingegneria del software, disponibile in rete al sito http://www.cefriel.it/~alfonso/WebBook

•  I. Sommerville, Software Engineering, Addison Wesley, 6 th edition .