The goal of the lecture part is the elaboration of basic concepts of model driven software development.
The goal of the lab part is the elaboration of practical assignments around the topics taught in the lecture part. Thereby students will get familiar with model driven software development tools using one big example.
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 of three students. During the lab the 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
- Guest Lectures
- Summary, Outlook and Discussion
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 theoretical part and the practical part affect the grade at a ratio of 1:1.
Practical Part:
The practical part consists of four assignments which are elaborated in teams of three students. All of these assignment have to be presented at an assignment review, where the functionality of the solution will be assessed as well as each student's comprehension of concepts and techniques underlying the assignment.
A positive grading requires at least 30 % of obtainable points of each assignment. Overall, at least 50 % of the four assignments' points have to be reached.
Theoretical Part:
There are two mandatory written exams throughout the term. Each of the two exams must be positive (at least 50 % of the points). One of the two exams (xor) may be repeated at the alternative exam date in March.
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