INGEGNERIA DEL SOFTWARE

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:

  • Pressman, "Principi di Ingegneria del Software", McGraw-Hill, 2008.
  • Fowler, "UML Distilled", Pearson Italia (Addison-Wesley), 2010.
  • Bochicchio, Civera, De Sanctis, Golia, Leoncini, Leoncini, Mostarda, "C# 4 Guida Completa per lo Sviluppatore", Hoepli, 2010.
  • Gamma, Helm, Johnson, Vlissides, "Design Patterns: Elementi per il Riuso di Software ad Oggetti", Pearson Italia (Addison-Wesley), 2002.
  • 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