Finalità del corso
Obiettivo del corso è l'introduzione ai concetti di base dell'Ingegneria del Software, ossia quel settore dell'informatica dedicato allo studio delle metodologie, delle tecniche e degli strumenti utilizzati nella produzione industriale del software.
In particolare il corso descrive vari modelli del processo di
sviluppo del software presentando i problemi relativi alle varie
fasi del ciclo di vita, con riferimento sia al software tradizionale,
che al software basato sulle tecniche di intelligenza artificiale.
Elenco tematiche
Introduzione. Origini e motivazione dell'Ingegneria del Software. Definizioni di base. Concetto di Qualità. Ciclo di vita. Aspetti economici. Fattori di rischio e di complessità nel processo di produzione. Sistemi software tradizionali e sistemi basati su tecniche di intelligenza artificiale.
Modelli di processo. Modelli a cascata e a spirale. Il ruolo della prototipizzazione.
Analisi dei requisiti e definizione delle specifiche. Tecniche di analisi e modellizzazione. Tecniche di specifica.
Progetto e sviluppo del software. Obiettivi della progettazione. Diversi approcci alla progettazione. Codifica.
Verifica e Validazione del software. Collaudo. Testing. Metriche software. Certificazione della qualità, standard ISO.
Gestione di un progetto software. Pianificazione. Valutazione
dei costi e dei benefici. Gruppo di lavoro. Amministrazione e
controllo. Strumenti per lo sviluppo. Ambienti. Sistemi CASE.
Elenco testi
I. Sommerville, Software Engineering. Addison Wesley, 1996.
G. Guida, C. Tasso. Design and Development of Knowledge-Based
Systems. J. Wiley, 1994.
C. Ghezzi, A. Fuggetta, S. Morasca, A. Morzenti, M. Pezzè.
Ingegneria del Software. Mondadori Informatica, 1991.
T. Demarco. Structured Analysis and System Specification, Prentice-Hall, 1979.