Semi-automatische Ableitung externer Anpassungsmechanismen für selbst-adaptive Systeme

Vor dem Hintergrund steigender Komplexität gewinnen selbst-adaptive Systeme immer stärker an Bedeutung. Die Realisierung von Selbst-Adaptivität erfolgt durch Frameworks, die Anpassungslogik in externe Mechanismen auslagern können. Durch Erweiterungen können diese Mechanismen an systemspezifische Anforderungen angepasst werden. Die Ableitung dieser Framework-Erweiterungen aus den Anforderungen wird durch bestehende Ansätze nur unzureichend unterstützt. Selbst-Adaptivität wird in Anforderungsbeschreibungen nur implizit spezifiziert und fehlende Automatismen für die Ableitung führen zu einer erhöhten Fehleranfälligkeit. In diesem Beitrag wird ein Ansatz vorgestellt, durch den externe Anpassungsmechanismen semiautomatisch aus Anforderungen abgeleitet werden können. 1 Einleitung und Motivation Die steigende Komplexität heutiger Softwaresysteme führt zu immer höheren Anforderungen an die Anpassbarkeit und Wartbarkeit dieser Systeme. Um diesen Anforderungen gerecht zu werden, steht die Softwaretechnik vor der Herausforderung Systeme zu entwickeln, die sich selbstständig an verändernde Bedingungen anpassen können. Diese Systeme werden als „selbst-adaptive Systeme“ bezeichnet. Die Realisierung selbst-adaptiver Systeme kann durch interne oder externe Ansätze erfolgen. Bei internen Ansätzen wird die Anpassungslogik vollständig in die Software integriert und ist somit direkt mit der Anwendungslogik verknüpft. Die enge Verknüpfung erschwert die Wartung und Wiederverwendung der Anpassungslogik. Aktuelle Ansätze wie das Autonomic Computing [KC03] lagern die Anpassungslogik in externe Mechanismen aus. Durch die Explizitheit der Selbst-Adaptivität werden die Erweiterbarkeit und Wartbarkeit verbessert. Frameworks wie RAINBOW [GCS03] und StarMX [AST09] bieten die technische Grundlage für die Realisierung externer Anpassungsmechanismen.