000951031 001__ 951031 000951031 005__ 20230331171859.0 000951031 0247_ $$2HBZ$$aHT021744781 000951031 0247_ $$2Laufende Nummer$$a42021 000951031 020__ $$a978-3-8440-8960-8 000951031 037__ $$aRWTH-2023-01838 000951031 041__ $$aEnglish 000951031 082__ $$a004 000951031 1001_ $$0P:(DE-82)IDM03432$$aKirchhof, Jörg Christian$$b0$$urwth 000951031 245__ $$aModel-driven development, deployment, and analysis of Internet of Things applications$$cJörg Christian Kirchhof RWTH Aachen University$$hprint 000951031 260__ $$aDüren$$bShaker Verlag$$c2023 000951031 300__ $$a318 Seiten : Illustrationen 000951031 3367_ $$02$$2EndNote$$aThesis 000951031 3367_ $$0PUB:(DE-HGF)11$$2PUB:(DE-HGF)$$aDissertation / PhD Thesis$$bphd$$mphd 000951031 3367_ $$0PUB:(DE-HGF)3$$2PUB:(DE-HGF)$$aBook$$mbook 000951031 3367_ $$2BibTeX$$aPHDTHESIS 000951031 3367_ $$2DRIVER$$adoctoralThesis 000951031 3367_ $$2DataCite$$aOutput Types/Dissertation 000951031 3367_ $$2ORCID$$aDISSERTATION 000951031 4900_ $$aAachener Informatik-Berichte, Software Engineering$$v54 000951031 502__ $$aDissertation, RWTH Aachen University, 2022$$bDissertation$$cRWTH Aachen University$$d2022$$gFak01$$o2022-11-11 000951031 500__ $$aAbweichender Titel auf dem Buchrücken 000951031 5203_ $$aDas Internet der Dinge (IoT) beschreibt die Idee, mit Sensoren und Aktuatoren ausgestattete Gegenstände untereinander und mit dem Internet zu verbinden. Die Entwicklung von IoT-Anwendungen ist aus verschiedenen Gründen komplex. Dazu gehören die Heterogenität der IoT-Geräte, die Tatsache, dass es sich bei IoT-Anwendungen normalerweise um verteilte Anwendungen handelt, und die Fehleranfälligkeit der Hardware und der Netzwerkverbindung. Modellgetriebene Methoden versprechen, die komplexe Entwicklung von IoT-Anwendungen durch die Anhebung des Abstraktionsniveaus handhabbar zu machen. In verwandten Arbeiten wurde eine Vielzahl von Komponenten-und-Konnektor (C&C) Architekturbeschreibungssprachen (ADLs) zur Entwicklung von IoT-Anwendungen vorgestellt. Diese konzentrieren sich jedoch hauptsächlich auf die frühen Entwicklungsphasen und vernachlässigen weitgehend Zuverlässigkeitsaspekte. Dementsprechend konzentriert sich diese Arbeit auf die modellgetriebene Entwicklung von IoT-Anwendungen über ihren gesamten Lebenszyklus hinweg. Wir stellen MontiThings vor, ein Ökosystem zur modellgetriebenen Entwicklung von IoT-Anwendungen. Basierend auf bestehenden Ansätzen spezifiziert das MontiThings-Ökosystem eine IoT-fokussierte C&C ADL unter Verwendung der MontiCore Language Workbench. MontiThings zielt darauf ab, ein Ökosystem anzubieten, das den Lebenszyklus von IoT-Anwendungen abdeckt, angefangen bei den ersten Architekturkonzepten bis hin zur Bereitstellung der Anwendung und der Analyse der Anwendung während der Laufzeit. In allen Phasen dieses Prozesses bietet MontiThings dabei Zuverlässigkeitsmechanismen, die den Entwicklern helfen können, robuste Anwendungen zu spezifizieren.Für Designaktivitäten bietet MontiThings eine C&C-Sprache, die das internationale Einheitensystem (SI) und die Object Constraint Language (OCL) integriert, um Ausnahmesituationen zur Laufzeit zu erkennen. Außerdem bietet MontiThings eine Integrationsmethode für Hardwaretreiber, die eine klare Trennung von Zuständigkeiten und somit die Wiederverwendung und das Testen von Komponenten unabhängig von ihrer Hardwareintegration ermöglicht. Ein Generator übersetzt die C&C-Architekturmodelle in C++-Code. Basierend auf einer Tagging-Sprache können die IoT-Komponenten mit synthetisierten digitalen Zwillingen integriert werden. Beim Deployment von Anwendungen ist die anforderungsbasierte Deployment-Methode von MontiThings in der Lage, nicht nur eine Verteilung der Komponenten auf die IoT-Geräte zu berechnen, sondern dem Nutzer auch aktiv Änderungen vorzuschlagen, sollten seine Anforderungen nicht erfüllbar sein. Fallen Geräte zur Laufzeit aus, kann MontiThings das Deployment automatisch an die geänderte Situation anpassen (sofern es im Rahmen der Anforderungen möglich ist) und den vorherigen Softwarestand der ausgefallenen Geräte wiederherstellen. Zum Verständnis unvorhergesehener Situationen zur Laufzeit stellt MontiThings Entwicklern modellgestriebene Analysedienste zur Verfügung. Insgesamt demonstriert MontiThings eine durchgängig modellgetriebene Methode zur Entwicklung von IoT-Anwendungen.$$lger 000951031 520__ $$aThe Internet of Things (IoT) describes the idea of connecting objects equipped with sensors and actuators to each other and to the Internet. IoT applications are complex to develop for a variety of reasons, including the heterogeneity of the IoT devices, diverse software stacks, the fact that IoT applications are usually distributed applications, and the fragility of the hardware and network connection. Model-driven methods promise to make the complex development of IoT applications manageable by raising the level of abstraction. Related work has proposed a variety of component and connector (C&C) architecture description languages (ADLs) for developing IoT applications. However, these mainly focus on the early development phases and largely neglect reliability aspects. Accordingly, this work focuses on the model-driven engineering of IoT applications throughout their lifecycle. We present MontiThings, an ecosystem for model-driven IoT applications. Based on existing approaches, the MontiThings ecosystem specifies an IoT-focused C&C ADL using the MontiCore language workbench. MontiThings aims at offering an ecosystem that covers the lifecycle of IoT applications starting from the first architecture concepts up to the eventual deployment of the application and its analysis during runtime. At all stages of this process, MontiThings offers reliability mechanisms that can help developers to specify resilient applications.For design activities, MontiThings provides a C&C language integrated with international system of units (SI) units and the object constraint language (OCL) usable to detect exceptional situations at operating time. Furthermore, MontiThings offers an integration method for hardware drivers that provides a clear separation of concerns and, thus, enables components to be reused and tested independently of their hardware integration. A generator translates the C&C architecture models to C++ code. Based on a tagging language, the IoT components can be integrated with synthesized digital twins. When deploying applications, MontiThings’ requirements-based deployment method is able to not only calculate a distribution of components to IoT devices but can also actively propose changes to the user should their requirements be unfulfillable. If devices fail at runtime, MontiThings can automatically adapt the deployment to the changed situation (if possible within the requirements) and restore the previous software state of failed devices. To understand unforeseen situations that may arise at runtime, MontiThings provides developers with model-driven analysis services. Overall, MontiThings demonstrates an end-to-end model-driven approach for designing IoT applications.$$leng 000951031 588__ $$aDataset connected to DataCite 000951031 591__ $$aGermany 000951031 653_7 $$aInternet of Things 000951031 653_7 $$aIoT 000951031 653_7 $$acyber-physical systems 000951031 653_7 $$adigital twins 000951031 653_7 $$adomain-specific languages 000951031 653_7 $$amodel-driven software engineering 000951031 653_7 $$asoftware architectures 000951031 7001_ $$0P:(DE-82)IDM00045$$aRumpe, Bernhard$$b1$$eThesis advisor$$urwth 000951031 7001_ $$0P:(DE-82)943247$$aWimmer, Manuel$$b2$$eThesis advisor 000951031 8564_ $$uhttps://publications.rwth-aachen.de/record/951031/files/951031_AV.pdf$$yRestricted 000951031 909CO $$ooai:publications.rwth-aachen.de:951031$$pVDB 000951031 9141_ $$y2023 000951031 9101_ $$0I:(DE-588b)36225-6$$6P:(DE-82)IDM03432$$aRWTH Aachen$$b0$$kRWTH 000951031 9101_ $$0I:(DE-588b)36225-6$$6P:(DE-82)IDM00045$$aRWTH Aachen$$b1$$kRWTH 000951031 9201_ $$0I:(DE-82)121510_20140620$$k121510$$lLehrstuhl für Informatik 3 (Software Engineering)$$x0 000951031 9201_ $$0I:(DE-82)120000_20140620$$k120000$$lFachgruppe Informatik$$x1 000951031 961__ $$c2023-03-24T09:51:26.220529$$x2023-02-24T21:48:35.973644$$z2023-03-24T09:51:26.220529 000951031 980__ $$aI:(DE-82)120000_20140620 000951031 980__ $$aI:(DE-82)121510_20140620 000951031 980__ $$aUNRESTRICTED 000951031 980__ $$aVDB 000951031 980__ $$abook 000951031 980__ $$aphd