Software Architecture for Distributed Embedded Systems

Module Number: EIxx

Duration: 1 Semester

Ocurrence: Winter Semester

Language: English

Number of ECTS: 5

Staff

Professor in charge: Sebastian Steinhorst

Amount of work

Contact hours: 45

Self-study hours: 105

Total: 150

Description of achievement and assessment methods

Achievement of the intended learning outcomes is assessed in a single written exam (75 min) at the end of the semester. The written exam is performed in a closed book policy without supporting material. Assessment criteria are: Ability to make design decisions for software architecture based on design patterns which have been discussed in the course, combining theoretical concepts with practical implementation considerations. Ability to apply methods, concepts and design patterns related to software architecture for embedded and distributed systems.

(Recommended) requirements

Principles of embedded computing systems, object oriented programming

Contents

Introduction to object oriented software development; Unified Markup Language (UML) representation; basic principles of pattern-oriented software design; specific requirements for embedded systems; challenges of distributed architectures; selected structural, behavioral and creational "gang of four" design patterns which are relevant to the targeted applications; design patterns in the context of resource constrained embedded systems: hardware access, concurrency and resource management, safety and reliability; patterns for event handling, service access, configuration and concurrency of distributed applications.

Study goals

Upon successful completion of the module, the participants are able to explain, apply and develop software architectures for embedded and distributed systems. The students are able to discuss and evaluate different architectural design patterns and design paradigms for such systems. They are able use the learned methods for both the choice of appropriate software architectures and to solve specific problems for applications based on the insights provided in this course, as well as to apply the methods and architectural concepts in system design processes.

Teaching and learning methods

In addition to the students’ individual methods which shall be supported by the lectures, the tutorials will repeat and deepen the course content by discussion of problems and exercises in form of learning activities. Module Description. During the lectures, students are instructed in a teacher-centered style, integrating interactive components. The exercises are held in a student-centered way, encouraging learning activities and providing formative feedback.

Media formats

The following media are used:

- Presentations (Projector, Blackboard)

- E-learning platform Moodle

- Exercises with solutions available for download

Literature

• Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects, Volume 2, by Douglas Schmidt, Michael Stal, Hans Rohnert and Frank Buschmann

• Design Patterns: Elements of Reusable Object-Oriented Software, Book by Erich Gamma, John Vlissides, Ralph Johnson, and Richard Helm Further literature will be discussed in the lecture.