Course: Software Engineering and Technology

Eindhoven University of Technology, Eindhoven
January 26-29, 2015

IPA organises Advanced Courses on each of its major research fields: Algorithmics and Complexity, Formal Methods and Software Technology. Each of these Advanced Courses intends to give an overview of (part of) the research of IPA in this specific field.

The Advanced Course, which is hosted by IPA at the Eindhoven University of Technology, focusses on subject areas in software engineering and software technology where successful research is being conducted by groups in IPA. From several of these areas, functional programming, coordination, model driven architecture and model driven engineering, topics are taken to which an entire course day is dedicated. Course days consist of lectures mixed with active training (exercises, assignments, etc.).

Dates, Location and Programme

The lectures will take place in room 1.105 in building Laplace of the TU/e. The overall schedule of the course is as follows: course days will start at 10.00 and last until approximately 16.30 hours. Short coffee breaks are planned at around 11.00 and around 14.45 and an organised lunch break at, roughly, 12.30-13.30. The general overview of the programme is as follows:

FRIDAY 23 January Arend Rensink (UT)
CANCELLED due to injury of the speaker
The lecturer has had to cancel this lecture due to injury. There will be no replacement.
MONDAY 26 January Bastiaan Heeren (OU) and Johan Jeuring (UU and OU)
Software technology for learning and teaching
In this day of lectures we will discuss how software technology can contribute to learning and teaching. In particular, we will discuss how we can support learning using digital technologies: learning environments, intelligent tutoring systems, serious games, etc. Such environments diagnose or assess student actions or student products, and give hints or worked-out solutions to a student. In all of these environments, we need to encode what constitutes desirable behavior of a student. Based on a description of a desirable way to solve an exercise, we need to find out if a student is making progress, or strays away from the goal. We use rewrite strategies and parsing techniques to diagnose the steps from a student. Student actions are interpreted as rewrite steps, and we parse these steps against rewriting strategies, possibly including buggy steps or strategies.Program: we assume we have 6 or 7 slots of 45 minutes available:

1 Introduction: why do we use software technology for supporting learning and teaching

2-3 Strategies, rewriting, parsing, and domain reasoners

4-5 Lab session: developing your own domain reasoner

6 Programming tutors

NB. Students are required to install the Haskell platform prior to taking the course.

TUESDAY 27 January Guido Wachsmuth (TUD), Gabriël Konat (TUD), Eelco Visser (TUD)
Interactive Language Design with the Spoofax Language Workbench
The Spoofax language workbench is a platform for the development of textual software languages with state-of-the-art IDE support. Spoofax provides a comprehensive environment that integrates syntax definition, name-binding, static analysis, program transformation, code generation, and declarative specification of IDE components. It supports agile development of languages by allowing incremental, iterative development of languages and showing editors for the language under development alongside its definition.During this hands-on session, participants will learn the principles and techniques for the design and implementation of software languages in Spoofax. They will develop a small DSL, using Spoofax’s high-level DSLs for language engineering. Spoofax’s testing language enables test-driven language engineering. The syntax definition formalism SDF supports modular definition of (composite) languages. The name binding language NaBL enables declarative definitions of name binding and scope rules of software languages. The type specification language TS supports declarative definitions of type systems of software languages. The Stratego transformation language unifies model transformation and code generation.NB This is a hands-on session, please bring a laptop or be prepared to share with another participant.
WEDNESDAY 28 January Alexander Serebrenik (TU/e)
Software Evolution
Change is often considered as the only constant factor in software development. Successful software systems are, therefore, those systems that can adapt to the ever changing requirements of the environment. One can, thus, compare this process of adaptation to the Darwin’s Survival of the fittest principle. This course will explore issues related to software evolution: why it is difficult, how we can cope with this difficulty and what can we learn from the past. Specifically, the course will look at advanced tools and techniques proposed by the research community to understand software evolution.
THURSDAY 29 January Danny Weyns (Linnaeus University, SE)
Principles of Software Architecture
The course will cover the following topics:

  1. What is software architecture?
  2. Design, documenting and evaluating architecture
  3. Rational and architecture knowledge
  4. Architecture-based self-adaptation

Course Material

Where possible, this material has been made available for downloading via this link.


The courses are intended for IPA PhD students, giving them an overview of IPA’s research. For IPA PhD students, participation is free of charge (including overnight accommodation if necessary, see below), but registration is required. Other IPA-members can attend if there is capacity left, and the same holds for members of associated research schools. For these categories we will charge costs for the course material, lunches, etc, and IPA will not provide overnight accommodation. Contact us for information regarding pricing. For all categories, in case of no show extra charges may apply.


You can register by sending an email to IPA (out online registration form is temporarily offline due to DoS). Specify which days you will attend, whether you require accommodation and dietary restrictions in your email. To make the course count as one of the required elements in the “Opleidings- en Begeleidingsplan” of an IPA Ph.D student, at least 80 percent of the course days must be attended. If you require overnight accommodation in Eindhoven for one or more nights during the course, please specify this in the “Remarks” box of the form. Registration closes on Friday 16 January, 2015.


Unlike Spring Days and Fall Days, overnight accommodation is not included by default for this course. The schedule is set up in such a way that it is feasible for many students to commute. In the event this is not feasible, let us know and we will provide basic overnight accommodation.  You can specify your accommodation needs on the registration form.