INGEGNERIA DEL SOFTWARE

a.a. 2000/01

Docente: Prof. Fausto Giunchiglia

Il corso si sviluppa attorno ad una delle tematiche centrali dell’ingegneria del software, ovvero il processo di sviluppo del software. Verranno approfondite metodologie utilizzate in fasi critiche del processo quali specifica dei requisiti e progettazione.
Il corso mira a fornire competenze pratiche, applicabili anche nello sviluppo di piccoli progetti software, sia attraverso l’analisi di case studies che con la sperimentazione in laboratorio di strumenti software che supportano l’uso delle metodologie proposte nel corso.

Programma
1. Elementi di Ingegneria del software
Breve introduzione e analisi di un case study.

2. Il ciclo di vita del software
Viene esaminato il concetto di sviluppo del software e quello di prodotto, e le problematiche ad essi connesse. Si analizzano i fattori di qualità del software e i modelli del ciclo di vita del software.

3. Il concetto di specifica e UML
Vengono analizzate diverse tipologie di linguaggi di specifica: linguaggi formali e non. Si approfondisce il linguaggio di specifica Unified Modeling Language (UML), standard OMG per la progettazione OO, concentrandosi su alcuni diagrammi base (use cases, class diagram, sequence diagram). La parte pratica del corso riguarderà l’applicazione di UML per la specifica dei requisiti e il disegno di sistema, utilizzando tools per UML.

4. Approfondimenti
4.1 Modelli di processo di sviluppo del software avanzati. Esempi: modelli incrementali, a spirale.
4.2 Benchmark di processo: il Capability Maturity Model.
4.3 Il linguaggio di specifica Z.
4.4 Case Sudies dall’industria

Modalità d’esame
L’accertamento prevede:
1. la discussione di alcuni esercizi basati sull’uso di UML;
2. superamento di una prova pratica (al computer) di utilizzo dei tools presentati durante il corso;
3. prova orale
 

Propedeuticità
Ingegneria delle telecomunicazioni: Informatica.
Informatica: Programmazione 1, Programmazione 2.

Testi Consigliati

· Pagine Web del corso contenente anche il materiale utilizzato a lezione (http://mnemosyne.itc.it:1024/perini/html/corso-se/se99.html - DA SOSTITUIRE CON NUOVA URL!!)
· Ingegneria del software. Progettazione, sviluppo e verifica. A. Fuggetta, C. Ghezzi, S. Morasca, A. Morzenti, M. Pezzè. Mondadori Informatica, 1996.
· UML Distilled: Applying the Standard Object Modeling Language, Martin Fowler, Kendall Scott, Addison-Wesley, 1997

Testi per la consultazione

· WebBook di Ingegneria del Software del Politecnico di Milano (http://www.cefriel.it/~alfonso/WebBook/).
· The Unified Modeling Language. User Manual. J.Rumbaugh, Ivar Jacobson, Grady Booch. Addison-Wesley 1999.
· The Unified Software Development Process. Ivar Jacobson, Grady Booch, J.Rumbaugh. Addison-Wesley 1999.