TTM4160 - Design of Reactive Systems 2

About

Examination arrangement

Course content

The course discusses the construction of efficient and dependable software solutions for distributed reactive systems in general, and for telematics systems in particular, with the use of formal specifications expressed in the language UML. It consists of six major units: 1) Implementing State Machines: The syntax, semantics, and realizability of executable state machines are discussed. 2) Implementation Design: Here, one learns how given specifications can be mapped to physical components. Further, one should understand how system specifications can be adapted to support certain hardware needs. 3) Software Design: Patterns and methods necessary to create event-driven software will be taught including internal organization and interface issues of software components. 4) System Development with Reactive Blocks: Students shall learn to understand systems on various specification levels as well as the use of application patterns in software development and model-driven software engineering in practice. 5) Application Design: The structure of state-of-the-art systems in the Internet of Things domain are discussed including relevant aspects as preserving responsiveness and communication aspects. 6) Testing: The students should learn about the main ideas and techniques for testing systems.

Learning outcome

A. Knowledge: 1) The general nature of distributed and reactive systems, how they can be modeled and the role of modeling to ensure system quality and timeliness in development processes. 2) Selected modeling languages, methods and tools, in particular, the mainstream industry languages UML and TTCN. 3) General principles for meeting real-time, dependability and performance constraints. 4) Validation of systems by testing. 5) Implementation design: the principal differences between specification and design models and physical realization in hardware and software including principal design trade-offs and solutions. 6) Tools for specification, design, implementation and analysis: model-driven development from abstract system models, through design synthesis to code generation and execution.

B. Skills: 1) Analyzing existing systems, networked services and applications. 2) Specifying, design and implementation of new systems, networked services and applications according to the defined requirements. 3) Practical developing, executing and using selected services such as distributed, mobile services using Java based platforms and the ability to use state of the art tools for model driven development.

C. General competence: 1) Application of the principles for software design of distributed real-time systems. 2) Basic understanding of the mechanisms in support systems and platforms, as well as concrete experience in realizing a telesystem by using a UML-based engineering method and a Java framework.

Learning methods and activities

The course is taught according to the principle of team-based learning. It consists of individual work, group work and immediate feedback. The objective is to foster active participation from the students in the course. The principle is explained at www.teambasedlearning.org. Throughout the semester, students receive feedback on the learning process by several readiness assurance tests, which also contribute to the final grade.

Further on evaluation

Portfolio assessment is the basis for the grade in the course. The portfolio includes the results of the readiness assurance tests which count 25% and an oral final exam which counts 75%. The results for the parts are given in %-scores. The entire portfolio is assigned a letter grade. If a student also after the re-sit exam has the final grade F/failed, the student must repeat the entire course. Works that count in the final grade must be repeated