DAT240 / DIT975 Programvaruspråksteknik för domänspecifika språk lp3 VT21 (7.5 hp)
Course is offered by the department of Computer Science and Engineering
- Main lecturer: Rebekka Wohlrab, email@example.com
- Supervisor/teacher: Sergio García, firstname.lastname@example.org
- Supervisor/teacher: Weixing Zhang, email@example.com
- Examiner: Jan-Philipp Steghöfer, firstname.lastname@example.org
- Guest lecturer: Ali Shahrokni, email@example.com
- Priyadarshini Vaidyanathan, firstname.lastname@example.org
- Iswarya Malleswaran, email@example.com
- Birgitta Feldís Bjarkadóttir, firstname.lastname@example.org
- Heiðrún Valdís Heiðarsdóttir, email@example.com
- Eric Rylander, firstname.lastname@example.org
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.
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.
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 solution, 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 (0,5+0,5h every week) in which the supervisor gives feedback on the hand in of the previous week’s assignments the supervisor answers 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 than pre-university studies. Although tactics vary with individuals, here is some general advice for this course:
- 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.
- 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.
- 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.
- 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.
Learning objectives and skills
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
- 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
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. 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 syllabus page shows a table-oriented view of course schedule and basics of course grading. You can add any other comments, notes or thoughts you have about the course structure, course policies or anything else.
To add some comments, click the 'Edit' link at the top.