28021 - INGEGNERIA DEL SOFTWARE T

Anno Accademico 2016/2017

  • Docente: Giuseppe Bellavia
  • Crediti formativi: 9
  • SSD: ING-INF/05
  • Lingua di insegnamento: Italiano
  • Moduli: Giuseppe Bellavia (Modulo 1) Giuseppe Bellavia (Modulo 2)
  • Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
  • Campus: Bologna
  • Corso: Laurea in Ingegneria informatica (cod. 0926)

Conoscenze e abilità da conseguire

Conoscenza dei modelli e degli strumenti per l'analisi, il progetto, lo sviluppo e il collaudo dei sistemi software. Capacità di progetto, sviluppo e collaudo di sistemi software.

Contenuti

  1. Introduzione all'ingegneria del software; prodotto software.
  2. Processo di sviluppo del software: studio di fattibilità, analisi e specifica dei requisiti, progettazione, realizzazione e collaudo dei moduli, integrazione e collaudo del sistema, utilizzo e manutenzione; fattori di qualità del software; modello a cascata, modelli evolutivi, extreme programming, analisi dei rischi, modello a spirale di Boehm.
  3. Analisi e progettazione orientata agli oggetti: linguaggi di modellazione, UML.
  4. Analisi: raccolta dei requisiti e loro validazione, analisi del dominio, analisi dei requisiti, casi d'uso e scenari, modello dei dati, individuazione delle classi e delle responsabilità, individuazione delle relazioni tra classi (ereditarietà, collaborazioni, associazioni), individuazione di attributi e metodi; modello dinamico: diagrammi di sequenza e di stato.
  5. Progettazione: implementazione delle associazioni, classi contenitore, classi generiche, identificazione degli oggetti, visibilità, classi radice, struttura a livelli di un'applicazione, supporto al livello data logic.
  6. Principi di progettazione: rigidità, fragilità e immobilità del software; "Single Responsibility Principle", "The Open/Closed Principle", "The Liskov Substitution Principle", "The Dependency Inversion Principle", "The Interface Segregation Principle"; design pattern.
  7. Introduzione al framework .NET e al linguaggio C#.

Metodi didattici

Il corso prevede lezioni frontali e almeno 15 ore di attività di laboratorio.

Modalità di verifica e valutazione dell'apprendimento

L'esame comprende un progetto e un orale. Il voto finale sarà calcolato nel seguente modo: 1/3 votoprogetto + 2/3 votoorale.

Il progetto è a tema libero e può essere sviluppato esclusivamente in team di 3 persone o singolarmente.
Il progetto consiste in una relazione e in una presentazione.
La relazione dovrà contenere la trattazione completa dell'intero progetto (testo e diagrammi UML) ad esclusione del prototipo (che deve essere presentato al momento della discussione).
La presentazione del progetto dovrà essere effettuata mediante slide.

Team di 3 persone
Gli argomenti da trattare sono i seguenti (la numerazione indica l'ordine di presentazione e gli argomenti che le singole persone dovranno presentare):

1.     Descrizione del problema
Documento dei requisiti
Glossario (solo nella relazione)
Casi d'uso, scenari (1+)
Prototipo (in linguaggio C#)

2.     Modello statico: diagramma delle classi con 10-15 classi di cui almeno 7 significative (non in gerarchia)
Modello dinamico: un diagramma di sequenza o un diagramma di stato

3.     Diagramma delle classi modificato in seguito alle scelte progettuali
Discussione sui design pattern (1+, singleton escluso) e sui principi di progettazione utilizzati

La presentazione del progetto e del prototipo dovrà durare circa 45 minuti (15x3).

Persona singola
Gli argomenti da trattare sono i seguenti:

1.     Descrizione del problema
Documento dei requisiti
Glossario (solo nella relazione)
Casi d'uso, scenari (1+)
Prototipo (in linguaggio C#)
Modello statico: diagramma delle classi con 8-12 classi di cui almeno 5 significative (non in gerarchia)
Diagramma delle classi modificato in seguito alle scelte progettuali
Discussione sui design pattern (1+, singleton escluso) e sui principi di progettazione utilizzati

La presentazione del progetto dovrà durare circa 30 minuti.

L'orale si effettuerà immediatamente dopo la discussione del progetto e verterà su tutto il programma del corso.

L'orale può essere sostituito dal test. Il test è disponibile solo negli appelli di giugno, luglio e settembre. È possibile sostenere il test al massimo 2 volte (giugno e luglio, giugno e settembre, luglio e settembre). L'eventuale ripetizione del test annulla il risultato precedente. L'annullamento ha effetto nel momento in cui ci si presenta alla prova.
Il risultato del test potrà essere utilizzato in sostituzione dell'orale sino all'ultima data disponibile per la consegna dei progetti.
Il test consiste in quiz a scelta multipla (una sola risposta è quella corretta).
Durante il test non è possibile utilizzare appunti o altro.

Orario di ricevimento

Consulta il sito web di Giuseppe Bellavia