Model-driven software design

A.Y. 2019/2020
Overall hours
Learning objectives
The course presents the fundamental principles and practices for designing and implementing software applications following the model-driven design methodology. This course introduces model-based engineering techniques, the use of model transformations, and the design patterns for component -based system development.
Expected learning outcomes
At the end of the course students are able to address the design and documentation of medium-size software projects. They have skills on developing complete requirement models and developing object oriented code from models. They have also skills on design and architectural patterns
Course syllabus and organization

Single session

Lesson period
First semester
Course syllabus
1. MODEL-DRIVEN ENGINEERING. Principles of the MDE. Models and meta-models. Application contexts of the MDE: MDA (model-driven architecture), UML profiles for Domain-Specific Languages specification.
2. UML MODELLING: STRUCTURAL SPECIFICATION. Class diagrams and object diagrams. Constraint specification in OCL. Design patterns.
3. MODELLAZIONE UML: SPECIFICA COMPORTAMENTALE. Interaction diagrams, state machines, activity diagrams.
4. UNIFIED PROCESS AND ARCHITECTURE DESIGN. Process UP. SW architecture design. UML architecture: component diagram and deployment diagram. Architectural Patterns.

Program of the lab actities:
- Use of the MODELIO framework
- UML diagrams development in MODELIO
- Specifcaition and design of a software system starting from informal requirements
- Java code from UML models
Prerequisites for admission
Knowledge and concepts learned in the courses of Programming and Secure Software Design are foundamental for this course. Passing these exams is therefore strongly recommended.
Teaching methods
Lessons and lab activities
Teaching Resources
· 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).

Web site:
Assessment methods and Criteria
The exam consists of a written test and a project, both mandatory. The written test, lasting two hours, aims to verify the student's knowledge on the theoretical aspects of the subject (through open-ended questions and / or exercises). The project consists in the development of a UML model and subsequent implementation in Java, of informal requirements provided by the teacher. This test aims to assess the student's skills on software modeling using UML and its implementation in Java. The written test and the UML/Java project are evaluated in thirties and the final mark is the average of the two evaluations.
Unita' didattica laboratorio
INF/01 - INFORMATICS - University credits: 1.5
Laboratories: 24 hours
Professor: Braghin Chiara
Unita' didattica lezioni
INF/01 - INFORMATICS - University credits: 4.5
Lessons: 36 hours
on appointment
Dept. of Computer Science