Laurea magistrale in Informatica per la comunicazione (Università degli Studi di Milano)

Questo insegnamento introduce le tecniche basilari per la progettazione di sistemi software complessi.

Avvisi

Lingua

Le lezioni sono in italiano.

Orari del corso

Le lezioni si svolgeranno presso il dipartimento di Scienze dell'Informazione, secondo il seguente orario:

Giorno Ora Luogo
martedì 9:30 - 11:30 aula alfa
giovedì 12:30 - 14:30 aula beta

Eventuali variazioni rispetto al calendario pianificato verranno comunicate in aula e pubblicizzate nel paragrafo Avvisi di questa pagina.

Ricevimento studenti

Su appuntamento, stanza 5015 del Dipartimento di Informatica. È possibile contattare il docente tramite posta elettronica, avendo cura di leggere preventivamente la guida predisposta dal Prof. Sebastiano Vigna e di specificare chiaramente nell'oggetto del messaggio il nome dell'insegnamento e l'anno accademico. In particolare, si invitano gli studenti a usare sempre come mittente l'indirizzo fornito loro dall'Ateneo (basato cioè sul dominio studenti.unimi.it) firmando con nome, cognome e matricola e ricordando che i tempi di risposta possono variare in funzione degli impegni del docente.

Materiale didattico

La parte di ingegneria del software fa riferimento al testo: Eric J. Braude, Michael E. Bernstein, Software Engineering -- Modern Approaches, Second Edition, Wiley, 2011 (ISBN 978-0-471-69208-9).

La parte sui design pattern è basata su: Eric Freeman, Elisabeth Freeman, Head First -- Design Patterns, O'Reilly, 2004 (ISBN 0-596-00712-4).

Le trattazione su SWT è presa dai tutorial che riguardano i widget di base e i dispositori predisposti dalla University of Manitoba. I più arditi possono cimentarsi con i widget avanzati.

Gli strumenti di sviluppo introdotti sono descritti nel tutorial su JUnit, nel capitolo 2 e nel capitolo 4 (fino al paragrafo «Advanced Merging» escluso) del volume Version Control with Subversion, nonché nei tutorial Hg Init e An Introduction to the UNIX Make Utility.

Programma

Il programma riguarda gli argomenti dettagliati nel calendario delle lezioni, che corrisponde al materiale trattato sul libro di testo all'interno dei capitoli da 1 a 9.

Calendario delle lezioni

Data Argomento
08/03/2011 Introduzione
15/03/2011 Strategy
22/03/2011 Progettazione orientata agli oggetti e test unitari
24/03/2011 Ciclo di vita del software
29/03/2011 Singleton e simple factory
31/03/2011 Interfacce grafiche
07/04/2011 UML
12/04/2011 UML
14/04/2011 Observer
19/04/2011 Change control e version control
28/04/2011 Tool di sviluppo
03/05/2011 Factory
05/05/2011 Template method
10/05/2011 Adapter
12/05/2011 Façade e decorator
17/05/2011 Command
19/05/2011 Iterator
24/05/2011 Composite
26/05/2011 Model-View-Controller
31/05/2011 Model-View-Controller
07/06/2011 State
09/06/2011 Altri pattern
14/06/2011 Esercizi riepilogativi
16/06/2011 GWT e Model-View-Presenter

Modalità d'esame

L'esame consiste in una prova orale.

Appelli d'esame

Sessione Data
giugno 20/06/2011
luglio 14/07/2011
settembre 19/09/2011
ottobre 12/10/2011
gennaio 12/01/2012
gennaio 27/01/2012