Zustandsautomaten (Finite State Machines, FSM): Entwurf und Implementierung (Seminar)

27.06.2017

19.03.2018 - 22.03.2018

Veranstaltungsort: MicroConsult, München

Zustandsautomaten (Finite State Machines, FSM): Entwurf und Implementierung (Seminar)

Beleuchtet werden die Grundlagen für den Entwurf von Zustandsautomaten (endlicher Automat, Finite State Machine). Sie lernen Implementierungen für Zustandsautomaten kennen und können dieses Wissen bei der Implementierung eigener Automaten anwenden.

Einführung in die Gedankenwelt der Automaten:

  • Warum ist der Einsatz von Zustandsautomaten sinnvoll?
  • Gründe, warum noch zu wenig Automaten im Einsatz sind

Grundlagen:

  • Welche unterschiedlichen Automaten gibt es?
  • Automaten für den Einsatz in industrieller Software (z.B. Embedded-Systemen)
  • Unterschied zwischen Akzeptoren und Transduktoren
  • Die Automatenmodelle von Moore und Mealy
  • Darstellung von Automaten in der UML

Der Entwurf von Zustandsautomaten:

  • Unterschiede beim Entwurf von Moore oder Mealy-Automaten
  • Vor- und Nachteile der verschiedenen Automatenmodelle und deren Mischformen bzw. Erweiterungen
  • Hierarchische Automaten
  • History-Zustand
  • Hinweise zum Vorgehen beim Entwurf von Automaten
  • Typische Fehler beim Entwurf
  • Das Thema wird anhand praktischer Beispiele erklärt

Implementierung von Zustandsautomaten:

  • Beispiele in C und C++
  • Vorstellung verschiedener Implementierungsformen
  • Switch-Case
  • State Pattern
  • Verschiedene Arten tabellengesteuerter Automaten
  • Hierarchische Automaten
  • Asynchrone Automaten
  • Ausblick auf mögliche Erweiterungen der vorgestellten Implementierungen
  • Alternativen zur Eigenentwicklung von Zustandsautomaten
  • Allgemeine Hinweise zur Implementierung
  • Das Thema wird anhand praktischer Beispiele erklärt

Ressourcenverbrauch:

  • Gegenüberstellung der Codegröße der verschiedenen Implementierungen
  • Betrachtung des Zeitverhaltens

Test von Zustandsautomaten:

  • Welche Fehler können durch einen Test erkannt werden?
  • Abdeckungsmaße für Zustandsautomaten
  • Definition von Testfällen
  • Einsatz von Unit-Tests
  • Betrachtung der Testbarkeit der verschiedenen Implementierungen
  • Das Thema wird anhand praktischer Beispiele erklärt

Übungen im FSM-Training

  • Übungen zum Entwurf von Automaten
  • Übungen zur Implementierung
  • Übungen zum Test
  • An jedem Trainingstag finden mehrere Übungen statt