Ingegneria del Software 1

prof. Carlo Tasso

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.