INFORMAZIONI SU

Ingegneria del Software - Progettazione e Laboratorio

Programma dell'insegnamento di Ingegneria del Software - Progettazione e Laboratorio - Corso di laurea magistrale in Informatica (2012/13)

Docente

Prof. Maurizio Pighin maurizio.pighin@uniud.it http://users.uniud.it/pighin/

Crediti

9 CFU

Finalità

Obiettivo del corso è l'approfondimento delle principali tematiche dell’Ingegneria del Software. Viene richiamato il ciclo di progettazione e di vita di un prodotto software. Vengono poi studiati e approfonditi gli argomenti più avanzati, quali l’ingegneria del software esistente, il configuration management, le metodologie di test, la progettazione dei sistemi, le metriche teoriche ed operative, i più noti modelli di qualità di prodotto e di processo, le metodiche di pianificazione e controllo, i principali strumenti di lavoro.
Durante il corso viene svolto un case-study completo, seguendo un processo di sviluppo di un progetto software in tutte le fasi sia del ciclo di vita (specifiche, progetto, codifica, test, rilascio, manutenzione) che operativo (pianificazione, analisi costi, metriche, organizzazione del lavoro, consuntivazioni economiche).

Programma

Introduzione e Richiami Generali: Le motivazioni del Software Engineering. Richiami alle definizioni di base. La dimensione economica del problema. I fattori di complessità del processo di sviluppo.
Configuration Management: Le motivazioni del Configuration Management. Il CM-Planning. Trattamento delle versioni. Assemblaggio dei componenti e System Building.
Ingegneria del Software Esistente: L'I.S.E: definizioni e problematiche. Le metodologie di re-engineering. Le metodologie di riuso. Lo sviluppo per il riuso e tramite il riuso.
Verifica e Validazione: I risultati teorici negativi. Strategie di test. Test dinamico. Le catene di test. I test di regressione. L'automazione del test e l’analisi mutazionale. Il Risk-based test. Il test statico. Cenni sui metodi formali di test.
Metriche: Le definizioni generali. Gli obiettivi delle misure. Le scale di misurazione. Le misure di controllo e predittive. Il data collection. Gli attributi interni e le loro misurazioni. La metrica di Halstead. La metrica di Albrecht. La metrica di McCabe ed altre metriche di complessità. Gli attributi esterni e le loro misurazioni
Modelli di qualità: La certificazione di qualità, problematiche metodologie. Certificazione di processo: il modello CMM; certificazione di prodotto: i modelli di McCall, Bohem e IS0 9126.
Valutazione e stima dei costi: L’analisi prestazioni/costo e l’analisi delle decisioni. La stima dei costi del Software. Richiamo modello COCOMO. Altri modelli di stima.
Pianificazione e Controllo del Processo Produttivo: L’organizzazione e gestione dei gruppi di lavoro. La pianificazione ed i suoi obiettivi. I diagrammi di Pert e gli schemi di Gantt.
Manutenzione: Costi, stime, misurazioni, dinamica del processo manutentivo. Il modello COCOMO.
Metodologie Agili: Confronto con le metodologie classiche. Elementi di base dell’Extreme Programming
Strumenti di lavoro: La tecnologia CASE: Tools, Ambienti. Le funzionalità. Gli strumenti di supporto nelle varie fasi del processo di sviluppo.

Bibliografia

1. R.S. Pressman, Principi di Ingegneria del Software, McGrawHill, 5° ed., 2008
2. I.Sommerville, Software Engineering, 7° Ed., Addison Wesley P.C., 2004.
3. N.E.Fenton, S.L.Pfleeger, Software Metrics - A rigorous and practical Approach, 2° Edition, PWS Publishing Company, 1997.
4. A. Binato, A. Fuggetta, L. Sfardini, Ingegneria del Software, creatività e metodo, Pearson-Addison Wesley, 2006
5. C.Ghezzi, M.Jazayeri, D.Mandrioli, Ingegneria del Software – Fondamenti e Principi, 2° ed., Pearson-PrenticeHall, 2004
6. Autori Vari, Metriche del software - esperienze e ricerche, Franco Angeli, 2006
7. Materiale didattico disponibile sul sito d’Ateneo

Modalità d'esame

L’esame consiste in una parte di teoria e nello sviluppo e discussione di un progetto.