Real-world deployment and evaluation of synchronous programming in reactive embedded systems

  • Praxisorientierte Verwendung und Evaluierung synchroner Programmierung in reaktiven, eingebetteten Systemen

Terber, Matthias; Kowalewski, Stefan (Thesis advisor); Rumpe, Bernhard (Thesis advisor)

Aachen : RWTH Aachen University, Department of Computer Science (2018)
Buch, Doktorarbeit

In: Aachener Informatik-Berichte 2018-05
Seite(n)/Artikel-Nr.: 1 Online-Ressource (xvi, 134 Seiten) : Illustrationen

Dissertation, RWTH Aachen University, 2018

Kurzfassung

Allgegenwärtige Smart Devices verbinden den eingebetteten Anwendungsbereich mit Informationstechnologie in einem einzigen System unter Einsatz begrenzter Ressourcen. Beiden Domänen liegen dabei ganz unterschiedliche Berechnungscharakteristiken zu Grunde - reaktiv versus transformierend. Durch die große Dominanz der Programmiersprache C im industriellen Bereich, werden die Probleme der reaktiven Domäne üblicherweise mit konventioneller, sequentieller Programmierung adressiert. Diese bietet jedoch keine spezifische Unterstützung für die Beschreibung von reaktivem Verhalten, wodurch Entwicklung, Verständlichkeit und Wartbarkeit der Software erschwert werden. Synchrone Programmiersprachen könnten eine vielversprechende Lösung darstellen, um den Entstehungsprozess von Software zu vereinfachen und deren Qualität zu verbessern. Bis heute ist der Einsatz von synchroner Programmierung jedoch nur auf sehr spezielle industrielle Anwendungsfälle beschränkt; ihre praktische Anwendung und deren Nutzen werden in existierender Literatur kaum behandelt. In dieser Arbeit wird eine Fallstudie durchgeführt, welche die Anwendbarkeit und Eignung des synchronen Programmierparadigmas anhand eines konkreten, existierenden Smart Devices aus der Industrie untersucht. Mit Fokus auf die reaktive Domäne werden die technischen Herausforderungen für die Entwicklung sowie die Qualitätsprobleme der bestehenden Softwarelösung herausgearbeitet. Basierend auf der synchronen Sprache Céu wird eine synchrone Neuimplementierung skizziert. Diese veranschaulicht den Einsatz von synchroner Programmierung und zeigt deren Integration in den transformierenden Teil des Gesamtsystems. Dem Entwickler werden architektonische Überlegungen und bewährte Vorgehensweisen an die Hand gegeben, um die synchronen Sprachkonzepte effektiv zu nutzen. Außerdem wird die Anwendbarkeit von etablierten objekt-orientierten Softwareentwurfsmustern demonstriert und aufgezeigt, wie sich reproduzierbare Tests für reaktiven Code implementieren lassen. Mehrere qualitative Diskussionen behandeln die Vorteile für Softwareentwicklung und -qualität, welche sich durch die synchrone Neuimplementierung im Vergleich zur existierenden Lösung ergeben. Eine Codeanalyse verwendet die Trennung der Belange (separation of concerns), die Verteilung der Komponentenschnittstellen (scattering of interfaces) sowie die Codegröße (code size) als Indikatoren, um die qualitativen Ergebnisse quantitativ zu belegen. Weiterhin bestätigt eine Nutzerstudie, dass reaktives Verhalten mit dem synchronen Ansatz einfacher zu implementieren und zu verstehen ist. Diese Arbeit ist ein Konzeptnachweis für die Umsetzbarkeit und Eignung von synchroner Programmierung in ressourcenbegrenzten, eingebetteten Systemen im industriellen Kontext, die sowohl mit reaktiven als auch transformierenden Berechnungen konfrontiert sind. Durch den Einsatz des synchronen Paradigmas wurden grundlegende Prinzipien der Softwareentwicklung wieder anwendbar ohne dabei die starken Ressourcenanforderungen zu verletzen - eine Kombination, die bekanntermaßen schwer zu erreichen ist. Schließlich glauben wir, dass diese Arbeit grundsätzlich einen praktikablen Weg aufzeigt, wie sich die Qualität eingebetteter Software in industriellen Anwendungen verbessern lässt.

Einrichtungen

  • Fachgruppe Informatik [120000]
  • Lehrstuhl für Informatik 11 (Embedded Software) [122810]

Identifikationsnummern