Erkennung von Adaptionskonflikten zur Laufzeit unter Benutzung von [email protected]

Abstract

Selbstadaptive Softwaresysteme sind in der Lage, sich an die Heterogenität heutiger Computersysteme anzupassen. Adaptionen ermöglichen eine korrekte Funktionsweise trotz unterschiedlicher Computerplattformen, Fähigkeiten, Konfigurationen und Kontextsituationen. Hierfür muss das Softwaresystem trotz der Änderungen durch Adaptionen immer korrekt funktionieren. Um dieses Ziel zu erreichen kann Verifikation zur Designzeit mit einer Analyse zur Laufzeit kombiniert werden. Eine Verifikation zur Designzeit ermöglicht die frühzeitige Erkennung und Beseitigung von Problemen. Allerdings ist der Zustandsraum, welcher durch Adaption erreicht werden kann, oft sehr groß oder, in einigen Fällen, zur Designzeit nicht vollständig bekannt. Dies macht eine komplette Verifikation zur Designzeit unpraktisch oder sogar unmöglich. Analyse zur Laufzeit hat den Vorteil, dass ein großer Teil der zur Designzeit noch unbekannten Variablen feststeht. Statt einer Analyse des gesamten Zustandsraumes kann die Laufzeitanalyse auf dem aktuellen Zustand basieren. Das korrekte Verhalten der Adaptionen ist einer der Aspekte, die sichergestellt werden müssen. Adaptionen verursachen Änderungen im Softwaresystem. Diese Änderungen können miteinander in Konflikt stehen. Das laufende Softwaresystem muss diese Konflikte erkennen können, um auf sie zu reagieren. In dieser Doktorarbeit beschreiben wir den Trollmann Ansatz zur Erkennung von Adaptionskonflikten. Dieser Ansatz kann zwei Typen von Adaptionskonflikten erkennen: Adaption-Adaption Konflikte und Adaption-Konsistenz Konflikte. Adaption-Adaption Konflikte treten auf, wenn Adaptionen sich gegenseitig beeinflussen. Dies führt dazu, dass verschiedene Reihenfolgen der gleichen Adaptionen unterschiedliche Ergebnisse liefern. Es kann auch vorkommen, dass nach einer Adaption eine andere nicht mehr durchgeführt werden kann. Adaption-Konsistenz Konflikte sind Situationen, in denen die Adaptionen das System in einen inkonsistenten Zustand führen. Um Adaptionskonflikte zu lösen muss ein selbstadaptives Softwaresystem in der Lage sein, diese zu erkennen. Modellgetriebene Softwareentwicklung kann verwendet werden, um die Komplexität der Entwicklung und Handhabung von Softwaresystemen zu reduzieren. Bei einigen Ansätzen bleiben die Modelle zur Laufzeit erhalten und werden mit dem laufenden Softwaresystem synchronisiert. Der Trollmann Ansatz basiert auf einem solchen Ansatz. Adaptionen und Konsistenzbedingungen können auf diesen Modellen beschrieben werden. Als Formale Basis definieren wir einen Formalismus, der in der Lage ist, mehrere Modelle und deren Relation zu repräsentieren. Dieser Formalismus kann mit Graph Transformation und mit Nested Conditions kombiniert werden, um Adaptionen und Konsistenzbedingungen zu beschreiben. Basierend auf dieser Kombination von Formalismen definieren wir eine Analysemethode für Adaptionskonflikte. Die Analyse ermöglicht die Erkennung beider Konfliktarten. Für erkannte Konflikte werden die beteiligten Adaptionen, Modellelemente und elementaren Adaptionsoperationen (Erstellen und Löschen von Modellelementen) extrahiert. Das korrekte Verhalten des Trollmann Ansatzes wird durch Theoreme beschrieben und in der Arbeit bewiesen. Zusätzlich beschreiben wir die Implementierung des Trollmann Ansatzes im Rahmen des Eclipse Modeling Frameworks. Diese Implementierung wurde genutzt, um die Konflikterkennung im Rahmen eines Forschungsprojektes an der TU Berlin zu evaluieren.Self-adaptive software systems aim to cope with the heterogeneity of today’s computing environments by adjusting themselves. Adaptations enable the software system to function correctly despite different computing platforms, capabilities, configurations and context-of-use situations. Self-adaptive software systems need to assure correct behaviour despite the changes imposed by adaptations. To achieve this goal design time verification can be complemented with run time assurance. Design time verification enables the detection and resolution of problems at design time. However, due to its adaptations the state space of a self-adaptive software system is often very large or, in some cases, partially unknown at design. This makes a complete verification impractical or even impossible. Run time assurance methods profit from the fact that a lot of the variables that are free at design time are bound at run time. Instead of a verification of the complete state space such methods can concentrate on assuring that there are no failures in the current state of the software system. One aspect that needs to be assured at run time is the correct behaviour of the adaptation itself. Adaptations denote changes in the software system that can be in conflict with each other. The running software system needs to be able to detect these conflicts to resolve them. In this thesis we present the Trollmann approach to adaptation conflict detection. This approach is able to detect two types of adaptation conflicts: adaptation-adaptation and adaptation-consistency conflicts. Adaptation-adaptation conflicts are situations in which adaptations impact each other, leading to different results when applied in different order. The application of one adaptation can even disable another adaptation. Adaptation-consistency conflicts are situations in which adaptations leave the software system in an inconsistent state. The running software system needs to be able to detect and resolve these conflicts. Model driven engineering has been applied to tame the complexity of the development and management of software systems. The Trollmann approach assumes a model driven engineering approach in which the models are available at run time and reflect the current state of the software system, its adaptations and its consistency requirements. The detection of adaptation conflicts is based on these models. As formal foundation for the approach we define the formalism graph diagrams that can be used to represent multiple models and their relation. This formalism is combined with graph transformation and nested conditions to describe adaptations and consistency requirements. Based on this combination of formalisms we define analysis methods for adaptation conflicts. These analysis methods are able to detect both types of conflicts and to point out the adaptations, model elements and elementary adaptation actions (i.e., the creation and deletion of model elements) that are involved in the conflict. This information can be used by a conflict resolution mechanism. The correct behaviour of the Trollmann approach is described by a set of theorems that are proven in this thesis. In addition, we present an implementation of the Trollmann approach in the scope of the Eclipse Modeling Framework. This implementation has been used to evaluate the performance of the analysis algorithms and test the approach in the scope of a research project at the TU Berlin

    Similar works

    Full text

    thumbnail-image

    Available Versions