Progettazione model driven del software

A.A. 2019/2020
6
Crediti massimi
60
Ore totali
SSD
INF/01
Lingua
Italiano
Obiettivi formativi
L'insegnamento presenta i principi e le tecniche per la progettazione model-driven di applicazioni software. L'obbiettivo principale è quello di presentare l'approccio di progettazione di sistemi software basato sull'uso di modelli, di trasformazioni di modelli, e di pattern architetturali per un design a componenti.
Risultati apprendimento attesi
Lo studente saprà affrontare la progettazione e la documentazione di progetti software di medie dimensioni. Avrà imparato a produrre la specifica completa dai requisiti informali ed a sviluppare codice orientato agli oggetti partendo da modelli. Avrà acquisito competenze su pattern ricorrenti sia di progettazione che di architetture.
Programma e organizzazione didattica

Edizione unica

Periodo
Primo semestre
Programma
1. MODEL-DRIVEN ENGINEERING. Principi dell' MDE. Modello e meta modello. Contesti di applicazione dell' MDE: MDA (model-driven architecture), Profili UML per la specifica di Domain-Specific Languages.
2. MODELLAZIONE UML: SPECIFICA STRUTTURALE. Modellare con le classi (diagramma delle classi, diagramma degli oggetti). Specifica dei vincoli: OCL. Uso dei Design pattern.
3. MODELLAZIONE UML: SPECIFICA COMPORTAMENTALE. Modellare interazioni e comportamento (diagrammi di interazione, macchine di stato, diagrammi di attività).
4. PROCESSO UP (UNIFIED PROCESS) E SPECIFICA DI ARCHITETTURE SW. Il processo UP. Principi guida per lo sviluppo di architetture SW. Modellazione UML dell'architettura (diagramma delle componenti, digramma di dislocamento). Pattern architetturali.

Programma delle attività di laboratorio:
- Uso dell'ambiente MODELIO
- Sviluppo in Modelio dei diversi diagrammi UML
- Sviluppo di un modello UML partendo da requisiti informali
- Codiifica in Java di un modello di progetto in UML
Prerequisiti
Prerequisiti del corso sono le conoscenze ed i concetti forniti dagli insegnamenti di Programmazione e di Progettazione del Software Sicuro. Il superamento di tali esami è quindi fortemente consigliato.
Metodi didattici
Lezioni frontali ed esercitazioni in laboratorio
Materiale di riferimento
· Martin Fowler. UML distilled. Guida rapida al linguaggio di modellazione standard, Pearson Education Italia, 2010, 4ª ed.
· Luciano Baresi, Luigi Lavazza, Massimiliano Pianciamore. Dall'idea al codice con UML 2. Guida all'utilizzo di UML attraverso esempi. Con CD-ROM., Pearson Education Italia, 2006.
· Craig Larman. Applying UML and Patterns. An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition) - Prentice Hall (2004).

Sito Web:
http://ericcobeneps.ariel.ctu.unimi.it/
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame consiste di una prova scritta e di una prova pratica, entrambe obbligatorie. La prova scritta, della durata di due ore, punta ad accertare le conoscenze dello studente sugli aspetti teorici della materia (tramite domande a risposta aperta e/o esercizi). La prova pratica consiste nello sviluppo di un modello UML, e successiva implementazione in Java, di un progetto i cui requisiti informali sono forniti dal docente. Tale prova mira ad accertare le competenze dello studente sulla modellazione del Software mediante UML e sua implementazione in Java. La valutazione di entrambe le prove è in trentesimi ed il voto finale è la media delle due valutazioni.
Moduli o unità didattiche
Unita' didattica laboratorio
INF/01 - INFORMATICA - CFU: 1
Laboratori: 24 ore
Docente: Braghin Chiara

Unita' didattica lezioni
INF/01 - INFORMATICA - CFU: 4
Lezioni: 36 ore

Docente/i
Ricevimento:
Su appuntamento.
Dip. di Informatica, Via Celoria 18, stanza 6011 (sesto piano)
Ricevimento:
su appuntamento
Dipartimento di Informatica