INFORMAZIONI SU

Ingegneria del Software - Progettazione e Laboratorio - Software Engineering and Laboratory

Programma dell'insegnamento - Corso di laurea in Informatica Magistrale

 

Docente

  • Prof. Maurizio Pighin

Indirizzo e-mail

maurizio.pighin@uniud.it

Indirizzo Pagina Web Personale

http://users.dimi.uniud.it/pighin/

Crediti

9 CFU

Finalità e obbiettivi formativi

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.

Attività di Laboratorio

Il laboratorio è articolato il 24 ore di attività assistita e di ulteriore attività autonoma da parte degli studenti organizzati in gruppi autonomi. Il laboratorio verte su 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)

Prerequisiti

E’ prerequisito il corso di Ingegneria del Software

Bibliografia

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

 

Modalità d'esame

Prova orale.

Orario di ricevimento

Gli orari di ricevimento sono visibili alla pagina web del docente