Il corso intende fornire i principi di base per l'analisi e la progettazione di sistemi software.
· Fondamenti di Ingegneria del Software - Il processo di produzione del software. Qualità del software. Metodologie per lo sviluppo del software. Analisi di sistemi software. Progettazione di sistemi software. Strumenti per la progettazione e realizzazione di sistemi software.
· Sviluppo di Sistemi Software Orientati agli Oggetti - Analisi orientata agli oggetti dei sistemi software. Progettazione e sviluppo di sistemi software orientati agli oggetti. Design pattern.
· Il linguaggio Java - Oggetti e classi. Ereditarietà e polimorfismo. Eccezioni. Input/output. Collezioni di oggetti. Programmazione concorrente.
Le esercitazioni saranno mirate all'apprendimento delle tecniche e all'uso di strumenti per progettazione e realizzazione di sistemi software principalmente attraverso l’uso del linguaggio di programmazione Java.
Sono previste una prova teorica e una prova pratica.
Sono considerati propedeutici: Fondamenti di Informatica, Fondamenti di Programmazione.