Anno di corso: 1

Crediti: 8
Crediti: 8
Crediti: 8
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale

Anno di corso: 2

Anno di corso: 3

Crediti: 8
Crediti: 8
Crediti: 8
Crediti: 8
Crediti: 16
Tipo: A scelta dello studente
Crediti: 4
Tipo: Lingua/Prova Finale
Crediti: 13
Tipo: Altro

ANALISI E PROGETTAZIONE DEL SOFTWARE

Scheda dell'insegnamento

Anno accademico di regolamento: 
2017/2018
Anno di corso: 
2
Anno accademico di erogazione: 
2018/2019
Tipo di attività: 
Obbligatorio
Lingua: 
Italiano
Crediti: 
8
Ciclo: 
Secondo Semestre
Ore di attivita' didattica: 
76
Prerequisiti: 

Conoscenza di un linguaggio di programmazione orientato agli oggetti come Java.

Moduli

Metodi di valutazione

Modalita' di verifica dell'apprendimento: 

La valutazione dell'apprendimento include un esame scritto: una prima parte con domande aperte ed esercizi su tutto il programma del corso ed una seconda parte su analisi e progettazione di un piccolo sistema. Orale facoltativo.

La valutazione per chi segue le lezioni consiste in un compitino in aula sulla prima parte del corso con alcune domande aperte teoriche ed alcuni esercizi sui diagrammi UML e lo sviluppo di un progetto di gruppo (in 3-5 studenti) nella seconda parte del corso svolto in laboratorio e a casa. Il progetto consiste nall'analisi e progettazione di un sistema.

Orale facoltativo.

Valutazione: 
Voto Finale

Obiettivi formativi

Lo studente acquisirà le competenze necessarie a sviluppare progetti software in gruppi di piccole/medie dimensioni. In particolare, lo studente sarà in grado di analizzare un problema, produrre una specifica dei requisiti, svolgere le attività di analisi e progettazione della soluzione, produrre una implementazione di un sistema che sia consistente con un progetto, utilizzare ambienti di sviluppo e controllo versione avanzati.

Contenuti

Introdurre il processo di sviluppo del software, concentrandosi in particolare sulle fasi di analisi e di progettazione. Introduzione ai Design Pattern.

Programma esteso

1 Introduzione all’Ingegneria del Software e al Processo di sviluppo del Software. Processi di sviluppo agili

2 Analisi dei requisti e specifica dei casi d’uso

3 Analisi e Progettazione. Introduzione ed utilizzo dei pattern GRASP:

4 Introduzione a UML

5 Introduzione ai Design Patterns.

6 Attività di laboratorio sull’utilizzo di ambienti per lo sviluppo ed il controllo delle versioni

7 Introduzione all'attività di test.

8 Intrduzione al Refactoring del Codice e ai Code Smell nel codice.

Bibliografia consigliata

I. Sommerville, Ingegneria del Software, Pearson, 10° ed, 2017.

C. Larman, Applicare UML e i pattern – analisi e progettazione orientata agli oggetti, Pearson, 4° ed, 2016.

M. Fowler, UML Distilled, Peason, 4° ed, 2018. M. Fowler, Patterns of Enterprise Application Architecture, Addison-Wesley

Slide, articoli e tutorial di approfondimento su alcuni argomenti del corso.

Metodi didattici

Lezioni, sessioni di laboratorio, esercitazioni in aula, esercitazioni in laboratorio ed esercitazioni assegnate da terminare a casa.