ADVANCED SOFTWARE ENGINEERING

Obiettivi formativi

Obiettivi generali: Il corso si propone di presentare un approccio tramite metodi formali, tipicamente basati su trasformazioni di modelli, allo sviluppo di sistemi software di media complessità (tipicamente applicazioni Enterprise). Obiettivi specifici: Il corso formerà gli studenti su: 1. Fondamenti di metamodellazione 2. Fondamenti di trasformazioni di modelli 3. Linguaggi specifici al dominio 4. Architetture software Conoscenza e comprensione: Gli studenti apprenderanno le nozioni fondamentali per la modellazione indipendente dalla piattaforma a partire dalle specifiche dei requisiti e come utilizzare gli strumenti di trasformazione per ottenere implementazioni di codice (parziale) che soddisfino i requisiti e l'utilizzo di architetture enterprise. Applicazione di conoscenza e comprensione: Gli studenti saranno in grado di utilizzare alcuni dei linguaggi e degli strumenti più popolari nel campo della modellazione dei sistemi e della trasformazione dei modelli e li utilizzeranno per sviluppare applicazioni a vari livelli di complessità. Autonomia di giudizio: Gli studenti svilupperanno le capacità di analisi necessarie per valutare diverse alternative nel campo della modellazione di sistema, in particolare per quanto riguarda la modellazione di dominio e della valutazione dei requisiti architetturali. Abilità comunicative: Gli studenti impareranno a documentare le loro scelte, anche attraverso l'uso di strumenti di generazione della documentazione, in particolare sfruttando notazioni diagrammatiche. Capacità di apprendimento: La padronanza dei concetti di modello formale e di trasformazione di modello, nonché la familiarità con ambienti di sviluppo software che integrino queste nozioni, permetterà agli studenti di proseguire nell'esplorazione e nell'apprendimento di linguaggi e approcci basati su questi concetti.

Canale 1
PAOLO GASPARE BOTTONI Scheda docente

Programmi - Frequenza - Esami

Programma
Il corso si struttura in cinque parti principali 1. Fondamenti di metamodellazione (10 ore) a. Modelli e metamodellazione. b. Il metamodello di UML. 2. Fondamenti di trasformazioni di modello (14 ore) a. Trasformazioni orizzontali b. Trasformazioni verticali c. Linguaggi per trasformazioni di modelli c1. QVT c2. Trasformazioni di grafi 3. Linguaggi specifici al dominio: (8 ore) a. Metamodello per linguaggi specifici al dominio b. Modelli di caratteristiche e linee di prodotto software 4. Utilizzo di strumenti: (16 ore) a. AGG (Attributed Graph Grammars) b. EMF (Eclipse Modeling Framework) c. WebRatio d. Besser 5. Fondamenti di architetture Software (6 ore) a. Architetture distribuite b. Architetture orientate ai servizi c. Architetture a microservizio Le restanti ore saranno dedicate ad affrontare collettivamente problematiche di carattere generale emergenti dallo svolgimento dei progetti.
Prerequisiti
Si assume una conoscenza dei concetti di base su programmazione orientata agli oggetti e su metodi logici dell'informatica. In particolare, verrà verificata la previa conoscenza di UML e OCL, e si procederà eventualmente a una breve introduzione.
Testi di riferimento
UML Documentation Jordi Cabot, The low-code handbook: Learn how to unlock faster and better software development with low-code solutions, 2024 Marco Brambilla, Jordi Cabot, Manuel Wimmer, Model-Driven Software Engineering in Practice, Morgan & Claypool, USA, 2012. Stefano Ceri, Piero Fraternali, Aldo Bongio, Marco Brambilla, Sara Comai, Maristella Matera, Designing Data Intensive Web Applications, Morgan Kauffman, 2003 Markus Völter, Thomas Stahl, Jorn Bettin, Arno Haase, Simon Helsen, Model-Driven Software Development: Technology, Engineering, Management, Wiley, 2006 Ian Sommerville, Engineering Software Products, Pearson, 2019
Modalità insegnamento
Il corso si svolge attraverso lezioni in presenza , fondamentalmente basate su slide illustrative degli argomenti dei diversi moduli, sull'utilizzo di tool dedicati, e momenti di tutoraggio sullo svolgimento dei progetti. Durante le lezioni si verifica anche lo svolgimento degli homework, tramite discussione collettiva.
Frequenza
La frequenza è fortemente consigliata.
Modalità di esame
Il voto è principalmente basato sulla valutazione del lavoro svolto in relazione al progetto. Vengono proposti anche homework in relazione ai diversi argomenti affrontati man mano nel corso, la cui soluzione viene discussa in aula. La qualità degli homework concorre a determinare il voto finale.
Bibliografia
Documentazione OMG su UML e MDA Markus Völter, DSL Engineering - Designing, Implementing and Using Domain-Specific Languages, http://voelter.de Steven Kelly, Juha-Pekka Tolvanen, Domain-Specific Modeling: Enabling Full Code Generation, Wiley 2008 Letteratura scientifica su trasformazioni di grafi e linguaggi specifici al dominio.
Modalità di erogazione
Il corso si svolge attraverso lezioni in presenza , fondamentalmente basate su slide illustrative degli argomenti dei diversi moduli, sull'utilizzo di tool dedicati, e momenti di tutoraggio sullo svolgimento dei progetti. Durante le lezioni si verifica anche lo svolgimento degli homework, tramite discussione collettiva.
PAOLO GASPARE BOTTONI Scheda docente

Programmi - Frequenza - Esami

Programma
Il corso si struttura in cinque parti principali 1. Fondamenti di metamodellazione (10 ore) a. Modelli e metamodellazione. b. Il metamodello di UML. 2. Fondamenti di trasformazioni di modello (14 ore) a. Trasformazioni orizzontali b. Trasformazioni verticali c. Linguaggi per trasformazioni di modelli c1. QVT c2. Trasformazioni di grafi 3. Linguaggi specifici al dominio: (8 ore) a. Metamodello per linguaggi specifici al dominio b. Modelli di caratteristiche e linee di prodotto software 4. Utilizzo di strumenti: (16 ore) a. AGG (Attributed Graph Grammars) b. EMF (Eclipse Modeling Framework) c. WebRatio d. Besser 5. Fondamenti di architetture Software (6 ore) a. Architetture distribuite b. Architetture orientate ai servizi c. Architetture a microservizio Le restanti ore saranno dedicate ad affrontare collettivamente problematiche di carattere generale emergenti dallo svolgimento dei progetti.
Prerequisiti
Si assume una conoscenza dei concetti di base su programmazione orientata agli oggetti e su metodi logici dell'informatica. In particolare, verrà verificata la previa conoscenza di UML e OCL, e si procederà eventualmente a una breve introduzione.
Testi di riferimento
UML Documentation Jordi Cabot, The low-code handbook: Learn how to unlock faster and better software development with low-code solutions, 2024 Marco Brambilla, Jordi Cabot, Manuel Wimmer, Model-Driven Software Engineering in Practice, Morgan & Claypool, USA, 2012. Stefano Ceri, Piero Fraternali, Aldo Bongio, Marco Brambilla, Sara Comai, Maristella Matera, Designing Data Intensive Web Applications, Morgan Kauffman, 2003 Markus Völter, Thomas Stahl, Jorn Bettin, Arno Haase, Simon Helsen, Model-Driven Software Development: Technology, Engineering, Management, Wiley, 2006 Ian Sommerville, Engineering Software Products, Pearson, 2019
Modalità insegnamento
Il corso si svolge attraverso lezioni in presenza , fondamentalmente basate su slide illustrative degli argomenti dei diversi moduli, sull'utilizzo di tool dedicati, e momenti di tutoraggio sullo svolgimento dei progetti. Durante le lezioni si verifica anche lo svolgimento degli homework, tramite discussione collettiva.
Frequenza
La frequenza è fortemente consigliata.
Modalità di esame
Il voto è principalmente basato sulla valutazione del lavoro svolto in relazione al progetto. Vengono proposti anche homework in relazione ai diversi argomenti affrontati man mano nel corso, la cui soluzione viene discussa in aula. La qualità degli homework concorre a determinare il voto finale.
Bibliografia
Documentazione OMG su UML e MDA Markus Völter, DSL Engineering - Designing, Implementing and Using Domain-Specific Languages, http://voelter.de Steven Kelly, Juha-Pekka Tolvanen, Domain-Specific Modeling: Enabling Full Code Generation, Wiley 2008 Letteratura scientifica su trasformazioni di grafi e linguaggi specifici al dominio.
Modalità di erogazione
Il corso si svolge attraverso lezioni in presenza , fondamentalmente basate su slide illustrative degli argomenti dei diversi moduli, sull'utilizzo di tool dedicati, e momenti di tutoraggio sullo svolgimento dei progetti. Durante le lezioni si verifica anche lo svolgimento degli homework, tramite discussione collettiva.
  • Codice insegnamento1047614
  • Anno accademico2025/2026
  • CorsoComputer Science - Informatica
  • CurriculumCurriculum unico
  • Anno1º anno
  • Semestre2º semestre
  • SSDINF/01
  • CFU6