TTM4115 - Design of Reactive Systems 1


Examination arrangement

Examination arrangement: Portfolio assessment
Grade: Letters

Evaluation form Weighting Duration Examination aids Grade deviation
Work 30/100
Work 30/100
Work 40/100

Course content

The course is about methods and languages for developing reactive systems. The main topics are:
- Design of systems according to user requirements and use cases 
- Languages for modelling systems, with an emphasis on behavior descriptions
- Development methods, including agile methods
- Methods and paradigms to ensure correctness and quality of system designs

Learning outcome

A. Knowledge:
1) Classify different types of requirements, and explain the main activities during requirements development. Recite potential problems during requirements engineering.
2) Recognize modeling elements in UML, properly explain their semantics, and correctly map them to program code. This comprises use case, sequence, state machine, activity and deployment diagrams.
3) Understand and describe the main features of application protocols such as HTTP, CoAP and MQTT, and select and apply them to a system architecture.
4) List and explain the main elements in a development method as for instance Scrum, and reason about their applicability in a given development context.

B. Skills:
1) Capture user requirements and synthesize relevant use cases at a proper level of detail.
2) Write project deliverables that describe system requirements, properties and solutions.
3) Plan and coordinate the development of larger software products (consisting of more than one single application) within a team of developers.
4) Apply agile development methods and reflect about their usage within the context of a project.
5) Make proper design choices for the system architecture and document them accordingly.

Learning methods and activities

The course uses team-based learning. Traditional lectures and exercises are combined. Throughout the semester, students receive feedback on their learning process by several readiness assurance tests, which also contribute to the final grade.
To learn working on larger projects and in a realistic setting, a term assignment is part of the course. In this assignment, students plan, refine and develop an application.

Further on evaluation

Portfolio assessment is the basis for the grade in the course. The portfolio consists of a term assignment which counts 40%, the results of the readiness assurance tests which count 30% and the results of graded exercises that count 30%. The results for the parts are given in %-scores. The entire portfolio is assigned a letter grade. The tests and exercises are given in English only.
If a student has the final grade F/failed, the student must repeat the entire course. Works that count in the final grade must be repeated.

Course materials

To be announced at the beginning of the term. The material includes course-specific lecture notes, a compendium from standard software development books as well as online sources, including blog posts, articles and videos.

Credit reductions

Course code Reduction From To
SIE5020 7.5


Detailed timetable


Examination arrangement: Portfolio assessment

Term Statuskode Evaluation form Weighting Examination aids Date Time Room *
Spring ORD Work 30/100
Spring ORD Work 30/100
Spring ORD Work 40/100
  • * The location (room) for a written examination is published 3 days before examination date.
If more than one room is listed, you will find your room at Studentweb.