Progettazione model driven del software

A.A. 2019/2020
Insegnamento per
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.
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.

Struttura insegnamento e programma

Edizione attiva
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

Informazioni sul programma
Alla fine del corso lo studente sarà in grado di affrontare la progettazione e la documentazione di progetti software di medie dimensioni. Avrà imparato a produrre la specifica completa in termini di modelli UML partendo dai requisiti informali. Avrà acquisito competenze su pattern ricorrenti sia di progettazione che di architetture. Sarà inoltre in grado di sviluppare la codifica in Java partendo dalla modellazione UML.
Propedeuticità
Programmazione
Progettazione del Software Sicuro.
Prerequisiti e modalità di esame
Prerequisiti del corso sono le conoscenze ed i concetti forniti dal corso di Programmazione e di Progettazione del Software Sicuro.

L'esame consiste di una prova scritta e di una prova pratica, entrambe obbligatorie. La prova scritta 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.
Metodi didattici
Lezioni frontali ed esercitazioni in laboratorio
Unita' didattica lezioni
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.
Metodi didattici
Lezioni Frontali
Materiale didattico e bibliografia
· 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).
Unita' didattica laboratorio
Programma
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
Metodi didattici
Lezioni ed esercitazioni
Periodo
Primo semestre
Periodo
Primo semestre
Modalità di valutazione
Esame
Giudizio di valutazione
voto verbalizzato in trentesimi
Docente/i
Ricevimento:
Su appuntamento.
Dip. di Informatica, Via Celoria 18, stanza 6011 (sesto piano)
Ricevimento:
su appuntamento
Dipartimento di Informatica