2018
Dissertation, RWTH Aachen University, 2018
Veröffentlicht auf dem Publikationsserver der RWTH Aachen University
Genehmigende Fakultät
Fak01
Hauptberichter/Gutachter
;
Tag der mündlichen Prüfung/Habilitation
2018-10-29
Online
DOI: 10.18154/RWTH-2018-230185
URL: https://publications.rwth-aachen.de/record/749610/files/749610.pdf
URL: https://publications.rwth-aachen.de/record/749610/files/749610.pdf?subformat=pdfa
Einrichtungen
Inhaltliche Beschreibung (Schlagwörter)
Céu (frei) ; Esterel (frei) ; deterministic concurrency (frei) ; domain-oriented system architecture (frei) ; embedded software (frei) ; event handling (frei) ; function-oriented design (frei) ; object-based design (frei) ; reactive applications (frei) ; software quality (frei) ; synchronous model of computation (frei) ; synchronous programming (frei) ; temporal behavior (frei) ; unit tests (frei)
Thematische Einordnung (Klassifikation)
DDC: 004
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.Pervasive smart devices link embedded concerns to information technology in a single, resource-constrained system. Both domains have quite opposite computation characteristics - reactive versus transformational. Due to C's dominance in industry, the reactive part is usually based on conventional sequential programming which lacks domain-specific support making the solution hard to program, comprehend and maintain. Synchronous languages might be a promising solution in order to facilitate software engineering and improve software quality. However, to date, they are restricted to very specific industrial niches; real-world deployments and evaluations are rarely reported in literature. This thesis conducts a case study that examines the feasibility and suitability of the synchronous approach based on a real-life smart device. Focusing on its reactive concerns, it elaborates the engineering challenges and quality issues of the existing production code. By taking advantage of the synchronous language Céu, it outlines a synchronous reimplementation, thereby illustrating the deployment of synchronous programming and how to reconcile it with the transformational part of the system. Architectural considerations and best practices are provided for developers in order to effectively apply the synchronous language concepts. Furthermore, it shows the applicability of established object-oriented software design patterns and how to implement reproducible unit tests for reactive code. Several qualitative discussions treat the software engineering and quality benefits gained by the synchronous reimplementation compared to the existing production code. A code analysis uses the separation of concerns, the scattering of interfaces and the code size as performance indicators in order to quantitatively substantiate the results. A user study confirms that reactive behavior is easier to implement and comprehend using the synchronous approach. This thesis represents a proof of concept which demonstrates the feasibility and suitability of synchronous programming in resource-constrained, real-life industrial embedded applications that are exposed to reactive and transformational concerns likewise. By using synchronous programming, we were able to recover fundamental software engineering principles while, at the same time, fulfill the strong resource limitations - a combination that is known to be hard to achieve. Finally, we believe that our work generally suggests a practicable way of improving embedded software quality in industrial applications.
OpenAccess:
PDF
PDF (PDFA)
(zusätzliche Dateien)
Dokumenttyp
Dissertation / PhD Thesis/Book
Format
online
Sprache
English
Externe Identnummern
HBZ: HT019893408
Interne Identnummern
RWTH-2018-230185
Datensatz-ID: 749610
Beteiligte Länder
Germany
|
The record appears in these collections: |