The term model engineering comprises different approaches of model driven software development such as model driven architecture, domain specific languages, software factories etc. All of these different approaches concentrate on a central model and not only on pure program code.
During this course the different concepts, tools, and practical experiences from the field of model engineering will be examined. The course is split up into a theoretical part and an accompanying model engineering lab. Concepts from the field of metamodeling, development of textual and graphical modeling languages, model transformation, and code generation will be taught in the lecture part. At the beginning of the lab students will form teams. During the labs these teams will be given practical assignments chosen from the topics of the lecture part.
Modules:
- Preliminary discussion, Introduction
- Metamodeling
- Object Constraint Language (OCL)
- Textual Modeling Languages
- Graphical Modeling Languages
- Model Transformations
- ATLAS Transformation Language (ATL)
- Code Generation
- Multi-level Modeling
- Guest Lectures
- Summary, Outlook and Discussion
Contents are introduced in lectures and deepened in corresponding exercises solved in small groups. Software tools are used where necessary.
Model Engineering will implement the concept of the flipped classroom:
- Lecture content is made available weekly in the run-up to the face-to-face unit as videos (exception: preliminary discussion, summaries, guest lectures).
- In the face-to-face units, the essential lecture content is dealt with again interactively. Students should take an active role here (e.g. through questions and examples).
- The face-to-face units serve to demonstrate and discuss the tools used and as a question and answer session for the labs.
- All tests and lab assignment discussions are carried out in person.
Effort for the student:
13 x 2 h = 26 h Attending lectures
2 x 20 h = 40 h Preparing assignments 1 + 2
25 h Preparing assignment 3
26 h Preparing assignment 4
4 x 30 min = 2 h Presenting assignments
2 x 15 h = 30 h Learning for tests
2 x 30 min = 1 h Attending tests
------------------------------------------------------
150 h = 6 ECTS
The grading is based on written exams, as well as on oral exams concerning the solved exercises. In the oral exams, both the functionality of the solution, as well as the conceptual and technical understanding of each individual group member are evaluated.
Marco Brambilla, Jordi Cabot, Manuel Wimmer: Model-Driven Software Engineering in Practice, 2nd Edition, Morgan&Claypool Publishers, 2017 (several issues of the first edition are available in the library)
Thomas Stahl, Markus Völter, Sven Efftinge, Arno Haase: Modellgetriebene Softwareentwicklung, 2nd Edition, dpunkt.verlag, 2007 (several issues are available in the library)
Dave Steinberg, Frank Budinsky, Marcelo Paternostro, Ed Merks: Eclipse Modeling Framework, 2nd Edition, Addison-Wesley, 2009 (several issues are available in the library)
Markus Voelter: DSL Engineering, dslbook.org, 2013
Anneke G. Kleppe: Software language engineering, Addison-Wesley, 2008 (online available via library)
Benoit Combemale, Robert France, Jean-Marc Jézéquel, Bernhard Rumpe, James Steel, Didier Vojtisek: Engineering Modeling Languages, CRC Press Inc., 2016