title: Detection of inconsistencies between software models and executing software at runtime
Creators: name: Lehner, Daniel
Publisher: name: TU Wien
Year: 2020
Subjects: subject: Model-Driven Engineering

description: Durch die steigende Abhängigkeit von Software in immer mehr Bereichen unseres Lebens, wird es essentiell, zu wissen, ob solche Software-Systeme zu jedem Zeitpunkt auch wie erwartet funktionieren. Leider führen Limitierungen von bestehenden Anätzen zu einem Mangel an Information über die Konsistenz zwischen erwartetem und tatsächlichem Verhalten, vor allem nach der Installation eines Systems.(1) Vollständige Validierung von Software-Artefakten ist in modernen Software-Systemen mittlerweile oft nicht mehr möglich. Steigende Komplexität führt zu einer explodierenden Anzahl an Ausführungsmöglichkeiten, was eine Berechnung und Prüfung dieser Möglichkeiten schnell unzumutbar macht.(2) Software testing erlaubt die Bewältigung dieser Herausforderung, indem nur Teile eines Systems gecheckt werden, jedoch mit Einschränkungen bei der Konsistenzprüfung nach der Installation eines Systems.(3) Laufzeit-Monitoring-Systeme bieten Information über Systemfehler nach der Installation, aber der hohe manuelle Aufwand, der nötig ist, um solche Systeme aufzusetzen, limitiert die Anwendung in der Praxis.In dieser Arbeit wird untersucht, inwiefern die Wiederverwendung bestehender Modellinformation eine Lösung für die oben genannten Probleme bietet.Dafür wird das Inconsistency Detection Based on Models (IDBoM) Framework entwickelt, als Showcase, wie bestehende Modellinformation für Inkonsistenzprüfung verwendet werden kann.Das IDBoM Framework verwendet UML Klassendiagramme und UML Aktivitätsdiagramme als Repräsentation des erwarteten Verhaltens eines Systems, und UML Sequenzdiagramme als Repräsentation des tatsächlichen Verhaltens nach der Installation.Um die Konsistenz zwischen erwartetem Systemverhalten und Modellinformationen zu stärken, wird außerdem eine wiederverwendbare Lösung zur programmatischen Interaktion mit Modellen, mit dem Fokus auf Usability entwickelt. Der Zweck dieser Lösung ist es, zur Implementierung von Anwendungsfällen für die Wiederverwendung von Modellen beizutragen, um wiederum die Vorteile zu erhöhen, Modelle aktuell zu halten.Eine Evaluierung des entwickelten Artefakts zeigt, dass die Automatisierung eines modellbasierten Prozesses zur Inkonsistenzeprüfung möglich ist, von der Initierung dieses Prozesses bis zur Verarbeitung des Ergebnisses.Die abgedeckten Inkonsistenz-Fälle sind vergleichbar mit software testing. Ausführungszeiten des implementierten Prozesses zur Inkonsistenzprüfung skaliert linear für alle getesteten Parameter. Außerdem wurde die Usability für Modellinteraktionen für alle getesteten Parameter verbessert, verglichen mit bestehenden Lösungen.Diese Ergebnisse zeigen, dass modellbasierte Erkennung von Laufzeit-Abweichungen Informationen über das korrekte Verhalten eines Systems nach dessen Installation ermöglicht.
description: With an increasing dependency on software in more and more aspects of our lives, the information whether these software systems work as expected at any point in time becomes crucial. However, limitations of existing approaches lead to a loss of information about consistency between expected and actual behavior, especially after system deployment. (1) Full validation of software artifacts is often not possible any longer in modern software systems. Increasing complexity leads to an exploding number of execution possibilities, which can be infeasible to compute and check. (2) Software testing allows to overcome this challenge by allowing to check particular parts of a system, but with limitations when it comes to consistency after system deployment. (3) Runtime monitoring systems provide information on system errors after deployment, but the high manual effort required to set up such a system limits its application in practice. In this thesis, it is examined to which extent reusing existing model information can provide a solution to the challenges faced with the approaches mentioned above. Therefore, the Inconsistency Detection Based on Models (IDBoM) framework is implemented as a showcase how existing model information can be used for inconsistency checking. The IDBoM framework uses UML Activity Diagrams and UML Class Diagrams as a representation of the expected behavior of a system, and UML Sequence Diagrams as representation of its actual behavior after deployment. After the inconsistency checking process is triggered by a running system, a set of consistency rules is executed on these diagrams to retrieve a checking result. This checking result indicates whether the actual behavior of the checked system is consistent with its expected behavior.In order to facilitate the consistency between expected system behavior and existing models, a reusable solution for programatically interacting with models with the focus on usability is created as part of the IDBoM framework. The intention of this solution is to contribute to the implementation of use cases for reusing existing model information, to increase benefits of keeping models up to date. An evaluation of the implemented artifact shows that full automation of a model-based inconsistency checking process is possible, from process initiation to processing of the checking result. The covered inconsistency cases are comparable to software testing. Execution times of the implemented inconsistency checking process scale linearly for all tested parameters. Finally, the usability of model interactions is improved compared to existing solutions on all tested parameters. These results indicate that a model-based inconsistency checking process can be used to provide information about the correct behavior of a system after deployment.