This course teaches you about how a good software can be designed for saftey critical microcontroller systems.  Some bad examples are shown and it will be explained how to avoid them. Furher it will be explained that only by a good design like shown in this course it is possible to implement important properties like portability, testability and maintainability. Starting with the static and dynamic aspects of the software architecture, we go into module design in an object oriented manner. Questionaires and exercises will help you to deepen the topics of this course. The costs for this online course are 99.00 EUR. You will be asked to pay via PayPal if you select the course.