UnivIS
Informationssystem der Friedrich-Alexander-Universität Erlangen-Nürnberg © Config eG 
FAU Logo
  Sammlung/Stundenplan    Modulbelegung Home  |  Rechtliches  |  Kontakt  |  Hilfe    
Suche:      Semester:   
 
 Darstellung
 
Druckansicht

 
 
Modulbeschreibung (PDF)

 
 
 Außerdem im UnivIS
 
Vorlesungs- und Modulverzeichnis nach Studiengängen

Vorlesungsverzeichnis

 
 
Veranstaltungskalender

Stellenangebote

Möbel-/Rechnerbörse

 
 
Mathematik (Bachelor of Science) >>

Echtzeitsysteme 2 - Verlässliche Echtzeitsysteme (EZS2)5 ECTS
(englische Bezeichnung: Real-Time Systems 2 - Dependable Real-Time Systems)
(Prüfungsordnungsmodul: Vertiefungsmodul Verteilte Systeme und Betriebssysteme)

Modulverantwortliche/r: Wolfgang Schröder-Preikschat
Lehrende: Peter Ulbrich, Wolfgang Schröder-Preikschat


Startsemester: SS 2015Dauer: 1 SemesterTurnus: jährlich (SS)
Präsenzzeit: 60 Std.Eigenstudium: 90 Std.Sprache: Deutsch

Lehrveranstaltungen:


Empfohlene Voraussetzungen:

Es wird empfohlen, folgende Module zu absolvieren, bevor dieses Modul belegt wird:

Echtzeitsysteme-V+Ü (WS 2014/2015)


Inhalt:

Viele Echtzeitsysteme sind in Bereiche des täglichen Lebens eingebettete, die hohe Anforderungen an die funktionale Sicherheit dieser Systeme stellen. Beispiele hierfür sind Fahrerassistenzsysteme in modernen Automobilen, medizinische Geräte, Prozessanlagen in Kernkraftwerken oder Chemiefabriken oder Flugzeuge. Fehlfunktionen in diesen Anwendungen ziehen mitunter katastrophale Konsequenzen nach sich - Menschen können ernsthaft verletzt oder sogar getötet werden, Landstriche können unbewohnbar gemacht oder zumindest großer finanzieller Schaden verursacht werden.

Dieses Modul betrachtet Methoden und Werkzeuge, die uns helfen können, einerseits zuverlässig Software zu entwickeln (also Fehler im Programm zu entdecken und zu vermeiden), und andererseits zuverlässige Software zu entwickeln (also Abstraktionen, die auch im Fehlerfall ihre Gültigkeit behalten). Hierbei steht weniger die Vermittlung theoretischer Grundkenntnisse auf diesen Gebieten im Vordergrund, also vielmehr

  • die praktische Anwendung existierende Werkzeuge und Methoden

  • sowie die Erfahrung und das Verständnis ihrer Grenzen.

Auf diese Weise soll ein Fundament für die konstruktive Umsetzung verlässlicher Echtzeitsysteme gelegt werden. Dieses Modul soll daher fundierte Anknüpfungspunkte für die Entwicklung verlässlicher Echtzeitsysteme vermitteln, die Ad-hoc-Techniken möglichst ersetzen sollen.

Lernziele und Kompetenzen:

Studierende, die das Modul erfolgreich abgeschlossen haben:

  • nennen die Konzepte und die Taxonomie verlässlicher Systeme, unterscheiden Software- und Hardwarefehler und klassifizieren Fehler (Defekt, Fehler, Fehlverhalten).

  • stellen Fehlerbäume auf.

  • organisieren Softwareentwicklungsprojekte mittels der Versionsverwaltung git.

  • vergleichen die verschiedenen Arten der Redundanz als Grundvorraussetzung für Fehlererkennung und -toleranz.

  • entwickeln fehlertolerante Systeme mittels Replikation.

  • diskutieren die Fehlerhypothese und die Sicherstellung von Replikdeterminismus.

  • erläutern die Vor- und Nachteile softwarebasierter Replikation und den Einsatz von Diversität.

  • wenden Informationsredundanz zur Härtung von Daten- und Kontrollflüssen an.

  • bewerten die Effektivität der arithmetischer Codierung von Programmen und verallgemeinern diesen Ansatz auf die verschiedenen Implementeirungsebenen (Maschinenprogramm zu Prozessinkarnation).

  • interpretieren den Einfluss der Ausführungsplattform (Hardware, Betriebssystem) auf die Leistungsfähigkeit der Fehlererkennung.

  • konzipieren eine fehlertolerante Ausführungsumgebung für ein softwarebasiertes TMR-System basierend auf ANBD-Codierung.

  • nennen die Grundlagen der systematischen Fehlerinjektion.

  • überprüfen die Wirksamkeit von Fehlertoleranzmechanismen mittels Fehlerinjektion auf der Befehlssatzebene.

  • entwickeln Testfälle für die Fehlerinjektion mittels des fail* Werkzeugs.

  • setzten Messergebnisse in Relation zu dem tatsächlichen Fehlerraum.

  • beschreiben die Grundlagen der Fehlererholung (Vorwärts- bzw. Rückwärtskorrektur) und Reintegration fehlgeschlagener Knoten.

  • vergleichen den Zustandstransfer am Beispiel der Running bzw. Recursive State Restoration.

  • benennen Konzepte der Rückwärtskorrektur durch Entwurfsalternativen (Recovery Blocks).

  • fassen die Grundlagen des dynamischen Testens zusammen.

  • unterscheiden Black-Box und White-Box Testverfahren.

  • konzipieren und implementieren Testfälle.

  • überprüfen die Testüberdeckung anhand grundlegender Überdeckungskriterien (Anweisungs- bis Bedingungsüberdeckung).

  • geben die Grundlagen der statischen Programmanalyse wieder.

  • nennen die Funktionsweise von Hoare- WP-Kalkül.

  • verifizieren eine Ampelsteuerung mittels des FramaC Werkzeugs zur statischen Analyse von C Programmen.

  • beschreiben den Korrektheitsnachweis mittels abstrakter Interpretation und unterscheiden die konkrete von der abstrakten Programmsemnatik.

  • erläutern die Funktionsweise von Sammel- und Präfixsemantiken.

  • erstellen einen Korrektheitsbeweis für einen a-b-Filter mittels des Astrée Werkzeugs zur abstrakten Interpretation von C Programmen.

  • bewerten die Verlässlichkeit kommerzieller, sicherheitskritischer Systeme anhand von Fallstudien (Sizewell B, Airbus A320).

  • erschließen sich typische Probleme und Fehlerquellen bei der Programmierung von eingebetteten Systemen im Allgemeinen.

  • klassifizieren Fallstricke und Mehrdeutigkeiten in der Programmiersprache C99 im Besonderen.

  • können in Gruppen kooperativ und effektiv arbeiten.

  • können ihre Entwurfs- und Implementierungsentscheidungen kompakt präsentieren und argumentativ vertreten.

  • reflektieren ihre Entscheidungen kritisch und leiten Alternativen ab.

  • können offen und konstruktiv mit Schwachpunkten in der Konzeption wie Umsetzung umgehen.


Weitere Informationen:

Schlüsselwörter: Echtzeitsysteme, Real-Time Systems, Fehlertoleranz, Fault Tolerance
www: http://www4.informatik.uni-erlangen.de/Lehre/SS15V_VEZS/

Verwendbarkeit des Moduls / Einpassung in den Musterstudienplan:

  1. Mathematik (Bachelor of Science)
    (Po-Vers. 2015w | Bachelorprüfung | Nebenfach Informatik | Vertiefungsmodule | Vertiefungsmodul Verteilte Systeme und Betriebssysteme)
Dieses Modul ist daneben auch in den Studienfächern "Informatik (Bachelor of Science)", "Informatik (Master of Science)", "Informations- und Kommunikationstechnik (Master of Science)", "Maschinenbau (Master of Science)", "Mechatronik (Bachelor of Science)", "Mechatronik (Master of Science)", "Medizintechnik (Master of Science)", "Wirtschaftsingenieurwesen (Master of Science)" verwendbar. Details

Studien-/Prüfungsleistungen:

Verlässliche Echtzeitsysteme (Prüfungsnummer: 876012)

(englischer Titel: Dependable Real-Time Systems)

Prüfungsleistung, mehrteilige Prüfung, benotet
Anteil an der Berechnung der Modulnote: 100.0 %
weitere Erläuterungen:
mündliche Prüfung (30 Minuten) + erfolgreiche Bearbeitung aller Übungsaufgaben

Erstablegung: SS 2015, 1. Wdh.: WS 2015/2016
1. Prüfer: Wolfgang Schröder-Preikschat

UnivIS ist ein Produkt der Config eG, Buckenhof