Model-Driven Software Design

A.Y. 2024/2025
6
Max ECTS
60
Overall hours
SSD
INF/01
Language
Italian
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
Single course

This course can be attended as a single course.

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 activities:
- Use of the UMLStar framework
- UML diagrams development in MODELIO
- Specification 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 fundamental for this course. Passing these
exams is therefore strongly recommended.
Teaching methods
Lessons and lab activities
Teaching Resources
· Martina Seidl, Marion Scholz, Christian Huemer, Gerti Kappel. UML @ Classroom. An Introduction to Object-Oriented Modeling. Springer. 2015
· 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:
http://ericcobeneps.ariel.ctu.unimi.it/
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.
INF/01 - INFORMATICS - University credits: 6
Laboratories: 24 hours
Lessons: 36 hours
Shifts:
Professor(s)
Reception:
on appointment
Dept. of Computer Science