Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

Verlässliche Echtzeitsysteme - Übung

Ziel der Übung

Analog zur Vorlesung befassen sich die Übungsaufgaben mit der zuverlässigen Entwicklung zuverlässiger Software. In den Übungsaufgaben werden sowohl selbstgeschriebene als auch fremde Codestücke unter die Lupe genommen. Die Programmiersprache ist hierbei ausschließlich C. Als Vorraussetzung für die Übung sollte man deshalb grundlegende C-Kenntnisse mitbringen.

Zuverlässige Software entwickeln

Während der erste Teil sich auf das Finden von Entwicklungsfehlern konzentriert, betrachten wir in der zweiten Hälfte auch Fehler, die zur Laufzeit auftreten können. Hierzu zählen vor allem unerwartete Hardwarefehler, die den Programmfluss bzw. Rechenergebnisse beeinflussen können. In der Übung werden wir hierzu verschiedene konstruktive Maßnahmen kennenlernen und umsetzen, die die Software gegen derartige Fehlerszenarien härten können.

Zuverlässig entwickeln

Ein wesentlicher Bestandteil dieser Veranstaltung ist das Kennenlernen und der Umgang mit Werkzeugen, die die Entwicklung verlässlicher Systeme unterstützen. Hierzu zählen u.a.:

Übungsfolien und vorläufige Terminplanung

KapitelThemaDatumFolien
U1Organisation 02.05.2019 1x1, 2x2, animiert
U2Einführung in den Umgang mit git 1x1, 2x2, animiert
U3Implementieren eines Filters mit Festkommaarithmetik 09.05.2019 1x1, 2x2, animiert
U4Triple Modular Redundancy 16.05.2019 1x1, 2x2, animiert
U5EAN Codes und Fehlerinjektion 23.05.2019 1x1, 2x2, animiert
U6Testen 06.06.2019 1x1, 2x2, animiert
U7Stackverbrauchs Analyse 27.06.2019 1x1, 2x2, animiert
U8Abstrakte Interpretation 04.07.2019 1x1, 2x2, animiert
U9Wiederholung 18.07.2019

Übungsaufgaben

Nr. Titel Kurzbeschreibung Ausgabetermin Fester Termin Vorgaben
1 git Einführung in den Umgang mit git 02.05.2019 16.05.2019 Aufgabe 1
2 Filter Implementieren eines Filters mit Festkommaarithmetik 09.05.2019 21.05.2019 Aufgabe 2
3 TMR Schutz durch Einbringung von Redundanz 16.05.2019 04.06.2019 Aufgabe 3
4 EAN Schutz durch arithmetische Codierung 23.05.2019 18.06.2019 Aufgabe 4
5 Testen Manuelles und automatisiertes Testen 06.06.2019 25.06.2019 Aufgabe 5
6 Statische Analyse clang static analyzer, stack analyse, WCET 27.06.2019 09.07.2019 Aufgabe 6
7 Abstrakte Interpretation Implementierung und Korrektheitsnachweis eines einfachen Ringpuffers und Filters 04.07.2019 16.07.2019 Aufgabe 7