ADVANCED SOFTWARE ENGINEERING Single channel
Chair (Coordinator) and Rapporteur: PAOLO GASPARE BOTTONI
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.
Learning outcomes
The course is focused on issues of model-driven development, in its various articulations, also providing a theoretical foundation based on the algebraic approach to graph transformation.
At the end of the semester, course participants will have learned system modeling through textual and diagrammatic languages based on various types of metamodels as well as the fundamental notions relating to the definition of domain-specific languages.
They will also have acquired skills in the use of different modeling tools.
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.
Programme
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
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.
Books
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
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.
Lessons 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.
Example exam questions
The description of the themes for the projects is published on Classroom (code )
- Academic year/1
- Lesson code1047614
- Year and semester1st year - 2nd semester
- Activity typeAttività formative affini ed integrative
- Academic areaAttività formative affini o integrative
- SSDINF/01
- Mandatory presenceNo
- Languageeng
- CFU6 CFU
- Total duration60 hours
- Hours distribution36 classroom hours, 24 training hours