Obiettivi formativi:
Questo insegnamento ha lo scopo di presentare le metodologie, le tecniche e gli strumenti fondamentali per la gestione delle varie fasi del processo di sviluppo di sistemi software complessi, con particolare riferimento al paradigma di progettazione e programmazione orientato agli oggetti. |
Settore scientifico-disciplinare:
INF/01. |
Crediti:
9. |
Modulo:
Unico. |
Durata:
Annuale, 88 ore (56 di lezione teorica + 32 di esercitazione guidata). |
Frequenza:
Consigliata, ma non obbligatoria. |
Docente:
Ing. Edoardo Bontà. |
Programma:
01. Fondamenti di ingegneria del software: 01.01 Concetti di base dell'ingegneria del software. 01.02 La qualità del software. 01.03 Il processo di sviluppo software. 02. Analisi e progettazione ad oggetti: 02.01 Il paradigma ad oggetti. 02.02 Introduzione alla modellazione del software. 02.03 Unified Process. 03. Unified modeling language (UML): 03.01 Introduzione a UML. 03.02 Diagrammi di struttura: classi, oggetti, package. 03.03 Diagrammi di comportamento: casi d’uso. 03.04 Analisi di robustezza e interazione fra entità. 03.05 Diagrammi di interazione: comunicazione, sequenza. 03.06 Macchine a stati, attività e altri diagrammi. 04. Design pattern: 04.01 Introduzione ai design pattern. 04.02 Pattern creazionali: Singleton, Factory. 04.03 Pattern strutturali: Proxy. 04.04 Pattern comportamentali: Observer, Visitor. 05. Metodi di ingegneria del software: 05.01 Analisi dei requisiti. 05.02 Principi di progettazione del software. 05.03 Tecniche di collaudo del software. 05.04 Metriche del software. 06. Gestione di progetti software: 06.01 Pianificazione del progetto software. 06.02 Stime di progetto. 06.03 Analisi e gestione dei rischi. 06.04 Pianificazione temporale. 06.05 Gestione delle configurazioni software. 06.06 La documentazione di progetto. 06.07 Strumenti CASE. 07. Argomenti avanzati: 07.01 I metodi formali. 07.02 Ingegneria del software cleanroom. 07.03 Reingegnerizzazione. 08. Attività di laboratorio (linguaggio C#): 08.01 Concetti di base del linguaggio. 08.02 Classi e oggetti. 08.03 Ereditarietà. 08.04 Polimorfismo, classi astratte e interfacce. 08.05 Gestione delle eccezioni. 08.06 Generics. |
Testi di riferimento:
|
Propedeuticità:
Programmazione Procedurale e Logica, Algoritmi e Strutture Dati. |
Modalità didattiche:
Lezioni teoriche ed esercitazioni guidate in laboratorio (materiale didattico). |
Modalità di accertamento:
Progetto individuale, prova scritta e prova orale (prove d'esame). |
Commissione d'esame:
Ing. Edoardo Bontà e Prof. Marco Bernardo (supplente: Dott. Alessandro Aldini). |
Note:
Il progetto, da svolgere individualmente su un tema concordato con il docente e da consegnare almeno una
settimana prima della prova scritta, viene valutato in trentesimi ed è ritenuto sufficiente se il
relativo voto, che rimane valido per tutti gli appelli anche di successivi anni accademici, è di
almeno 18/30. Qualora il progetto venga riconsegnato in un appello successivo, il voto del progetto
precedentemente consegnato viene annullato e al voto del nuovo progetto consegnato viene applicata una
penale di 5/30. La prova scritta, che può essere sostenuta solo previo superamento del progetto, viene valutata in trentesimi ed è ritenuta sufficiente se il relativo voto, che rimane valido per il solo appello in cui la prova viene sostenuta, è di almeno 18/30. La prova orale, che può essere sostenuta solo previo superamento delle altre due prove, comporta un aggiustamento per eccesso o per difetto di al più 5/30 della media aritmetica dei voti delle altre due prove, determinando così il voto finale. |
Ultima modifica: 18/10/2012 | Approvato da: Presidente CCdL |