Course syllabus


DAT240 / DIT976 Software language engineering for domain-specific languages lp3 VT22 (7.5 hp).

The course is offered by the Department of Computer Science and Engineering.

Exam review: April 12, 12:00-13:00, Jupiter 424


Contact details

Course purpose

Standard visual modeling languages, such as UML, taken out of the box, often do not fit an organization's needs. Extending modeling languages with necessary constructs and features, or creating complementary languages, requires specialist knowledge beyond that of software modeling. The purpose of this course is for the student to get familiarized with contemporary technologies and notations for the creation, adaptation, and transformation of modeling languages.



See Course Summary below (Calendar in Canvas). Lectures are hybrid until further notice.

Course literature

Andrzej Wasowski and Thorsten Berger (2021). Domain-Specific Languages: Effective modeling, automation, and reuse. Springer, 2021. To appear. Preliminary version in Files\book.

Brambilla, Marco & Cabot, Jordi & Wimmer, Manuel (2012). Model-Driven Software Engineering in Practice. 10.2200/S00441ED1V01Y201208SWE001. Link to PDF.

Lorenzo Bettini (2013). Implementing Domain-Specific Languages with Xtext and Xtend. Packt Publishing.

Richard Gronback (2009). Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit. Pearson Education. Link to PDF.


Course design

The course’s overall pedagogical strategy is problem-based learning. The learning proceeds by group work, in which an authentic, open-ended problem is addressed. Learning is student-directed and student-centered, which means that groups are free to address variations of the problems, as long as variants are directed towards reaching the learning goals. The teachers’ roles are to facilitate the acquisition of knowledge among participants, rather than to transfer knowledge to the participants.
Several learning resources are provided:

  • Intended learning objectives (below) define what should be learned and the examination’s focus.
  • Problems “drive” the study activities. To facilitate the right kinds of learning, problems are purposely non-trivial and open-ended.
  • The supervisors will give feedback on the solutions to the problems.
  • Literature and lectures define and explain all concepts specified by the learning goals.
  • Tools support practical exploration of the concepts studied.
  • Lectures (3h every week) set the scope for the studies, and introduce key concepts.
  • Groups help with knowledge sharing, building collective know-how, collective thinking, division of work, discussions of solutions, pressure, articulation, motivation and many other things.
  • Group supervisor: each group is appointed a group supervisor responsible for helping groups establish good group work and problem-solving practices, guide groups, so that efforts take sensible directions, monitor whether the group is functional, make progress in the right direction, give feedback on solutions, mark the groups’ weekly hand-ins in collaboration with other supervisors, and follow criteria set by the examiner. (Final grading is done by the examiner.)
  • Supervised group work (30min+open supervision session every week) in which the supervisor gives feedback on the hand-in of the previous week’s assignments the supervisor anwers questions with respect to the next assignment. The supervisor offers guidance to solve the assignment, and the group identifies what has to be learned or done to solve the problem together with the supervisor. For examination reasons, the group work is mandatory and monitored.
  • Self-directed group work (7h every week) in which groups work on their own. Feedback on the weekly hand-ins to confirm the learning of the module’s knowledge goals are sufficient or to give feedback that more learning activity is needed on the topic.

Recommended Study Tactics

Problem-based learning requires somewhat different study tactics. Although tactics vary with individuals, here is some general advice for this course:

  1. Commit yourself to problem solving. Problems are designed to “bring out” learning activities necessary for reaching the set learning goals. If you solve the problems, you can hardly avoid reaching the goals.
  2. Keep up with the literature reading list. Each problem is associated with selected chapters to read. These chapters motivate, explain, define, and exemplify the concepts that the problem (and this course) is about. Although lectures introduce the concepts, some reading is typically necessary to resolve questions that arise, and to deepen the knowledge. The list of literature is not there to be learned by heart: study what is relevant to the problem, relevant to the learning goals, or that you just find interesting.
  3. Expect (and learn to deal with) frustration. Real-world problem solving in authentic contexts comes with hassle (such as tool compatibility problems), surprises (such as seemingly simply sub-problems turning out difficulty), or roadblocks (such as intriguing bugs). In such situations, don’t despair. Simplify the problem, get help, discuss the problem with other groups, google for a solution, do something else for a while, or get some sleep. Then get back to the problem.
  4. Let learning goals guide your study. Examination is focused on assessing achievement of learning goals, so make sure to understand these goals, and plan your time to achieve them.

Changes made since the last occasion

The course will be run for the last time. The teacher of the course has changed since the last time. Technical tutorial documents will be added to the course.


Learning objectives and syllabus

Learning objectives:

Knowledge and understanding

  • explain the following concepts: models, metamodel, constraints, transformation, semantics, abstract and concrete syntax;
  • explain the architecture of contemporary modeling frameworks
  • explain how domain specific modeling languages can be realized within a contemporary modeling framework
  • explain current research trends in domain-specific language (DSL) engineering

Skills and abilities

  • construct domain specific languages, e.g. specify meta models including syntax and semantics
  • define syntactic constraints using a constraint language
  • implement meta models within a modeling framework
  • construct model editors within a modeling framework
  • create model validators within a modeling framework
  • specify model transformations, and realize them within a modeling framework
  • apply the domain specific modeling approach to an authentic case
Judgement and approach.
  • recognize emerging technologies for model driven engineering using relevant information sources
  • select appropriate modeling technologies for a modeling tooling problem at hand
  • propose effective strategies and concrete technologies for realizing parts of a DSL based on a concrete problem

Link to the syllabus on Studieportalen

Link to the syllabus on the GU website


Group Forming

Groups are formed by the students themselves. Groups should contain 3-4 students.


Examination form

Examination consists of two parts: a written examination (3 hec) and practical projects and assignments (4.5 hec). The written examination is individual. The project examination is based on the outcome of the group work.

Examination of group work is performed through the weekly hand-ins (Pass and Fail). Notice that each individual must actively contribute to each and every hand-in to pass the course. Individuals who fail to deliver on a module must do the re-examination for the respective parts of the project. Only active contributors may put their name on a hand-in. Free-riding will lead to disciplinary action.

Re-examination of the written part is by an ordinary written re-exam. Re-examination of the project part is by:
submission of missing parts (or re-submission of none non-acceptable parts), and by an oral examination (in conjunction with the hand-in).

Each weekly hand-in is graded with either Pass or Fail. To pass the project part of the course every hand-in must have been passed, and a satisfying project report handed in (as part of the final assignment). Specifically, the project report must be well written and demonstrate knowledge in all teaching modules. The final grade of the course is determined by the exam grade, given that the project is passed.

The exam will take place on Wednesday the 16th of March, 2022 (FM).

Course summary:

Date Details Due