ADVANCED SOFTWARE ENGINEERING

Course objectives

General goals: The course aims at presenting a formal method approach, typically based on model transformations, for the development of medium complexity software systems (typically Enterprise applications). Specific goals: The course will form students on: 1. Foundations of metamodeling 2. Fundamental of model transformations 3. Domain specific languages 4. Software architectures Knowledge and understanding The student will learn fundamental notions for platform-independent modelling starting from specification of requirements, and how to use transformation tools to get to implementations of (partial) code satisfying the requirements, as well as on software architectures. Applying knowledge and understanding The student will be able to use some of the most popular languages and tools in the field of systems modeling and model transformation, and use them to develop applications at various levels of complexity. Critical and judgmental skills: Students will develop the analytical skills necessary to evaluate various alternatives in the field of system modeling, in particular regarding domain modeling and assessment of architectural requirements. Communication skills: Students will learn to document their choices, also through the use of documentation generation tools, exploiting in particular diagrammatic notations. Learning ability: The mastery of the concepts of formal model and model transformation, as well as the familiarity with software development environments that integrate these concepts, will allow students to continue exploring and learning languages and approaches based on these concepts.

Channel 1
PAOLO GASPARE BOTTONI Lecturers' profile

Program - Frequency - Exams

Course program
The course is structured in five main parts 1. Fundamentals of metamodelling (10 hours) a. Models and metamodelling. b. The UML metamodel. 2. Fundamentals of model transformations (14 hours) a. Horizontal transformations b. Vertical transformations c. Languages for model transformations c1. QVT c2. Transformations of graphs 3. Domain specific languages: (8 hours) a. Metamodels for domain specific languages b. Feature models and software product lines 4. Use of tools: (16 hours) a. AGG (Attributed Graph Grammars) b. EMF (Eclipse Modeling Framework) c. WebRatio d. Besser 5. Fundamentals of Software Architecture (6 hours) a. Distributed architectures b. Service-oriented architectures c. Microservice architectures The remaining hours will be dedicated to collectively addressing general problems emerging from the development of the projects.
Prerequisites
A knowledge of the basic concepts of object-oriented programming and logical methods of computer science is assumed. In particular, prior knowledge of UML and OCL will be verified, and a brief introduction will be made if necessary.
Books
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
Teaching mode
The course takes place through face-to-face lessons, basically based on illustrative slides of the topics of the various modules, on the use of dedicated tools, and moments of tutoring on the development of projects. During the lessons, the realisation of the homework is also assessed, through collective discussion.
Frequency
Frequency is strongly advised.
Exam mode
Grading is mainly based on the evaluation of the work done in relation to the project. Home works are also proposed in relation to the various topics as they are addressed during the course, the solution of which is discussed in the classroom. The quality of the homework contributes to determining the final grade.
Bibliography
OMG documentation on UML and 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 Scientific literature on graph transformations and domain-specific languages.
Lesson mode
The course takes place through face-to-face lessons, basically based on illustrative slides of the topics of the various modules, on the use of dedicated tools, and moments of tutoring on the development of projects. During the lessons, the realisation of the homework is also assessed, through collective discussion.
PAOLO GASPARE BOTTONI Lecturers' profile

Program - Frequency - Exams

Course program
The course is structured in five main parts 1. Fundamentals of metamodelling (10 hours) a. Models and metamodelling. b. The UML metamodel. 2. Fundamentals of model transformations (14 hours) a. Horizontal transformations b. Vertical transformations c. Languages for model transformations c1. QVT c2. Transformations of graphs 3. Domain specific languages: (8 hours) a. Metamodels for domain specific languages b. Feature models and software product lines 4. Use of tools: (16 hours) a. AGG (Attributed Graph Grammars) b. EMF (Eclipse Modeling Framework) c. WebRatio d. Besser 5. Fundamentals of Software Architecture (6 hours) a. Distributed architectures b. Service-oriented architectures c. Microservice architectures The remaining hours will be dedicated to collectively addressing general problems emerging from the development of the projects.
Prerequisites
A knowledge of the basic concepts of object-oriented programming and logical methods of computer science is assumed. In particular, prior knowledge of UML and OCL will be verified, and a brief introduction will be made if necessary.
Books
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
Teaching mode
The course takes place through face-to-face lessons, basically based on illustrative slides of the topics of the various modules, on the use of dedicated tools, and moments of tutoring on the development of projects. During the lessons, the realisation of the homework is also assessed, through collective discussion.
Frequency
Frequency is strongly advised.
Exam mode
Grading is mainly based on the evaluation of the work done in relation to the project. Home works are also proposed in relation to the various topics as they are addressed during the course, the solution of which is discussed in the classroom. The quality of the homework contributes to determining the final grade.
Bibliography
OMG documentation on UML and 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 Scientific literature on graph transformations and domain-specific languages.
Lesson mode
The course takes place through face-to-face lessons, basically based on illustrative slides of the topics of the various modules, on the use of dedicated tools, and moments of tutoring on the development of projects. During the lessons, the realisation of the homework is also assessed, through collective discussion.
  • Lesson code1047614
  • Academic year2025/2026
  • CourseComputer Science
  • CurriculumSingle curriculum
  • Year1st year
  • Semester2nd semester
  • SSDINF/01
  • CFU6