Forschung am Lehrstuhl Software Engineering
Langzeitvision in der Forschung
Verschiedene Ingenieursdisziplinen benutzen Modelle und statistische Techniken, um für kritische Systemeigenschaften Vorhersagen treffen und diese Überwachen zu können. Die Langzeitvision meiner Forschung ist es, fundamentale Forschungsergebnisse zur Verfügung zu stellen, um spezifische und effiziente statistische Techniken im Software Engineering zu etablieren und so zu einer signifikanten Verbesserung der Art und Weise, wie wir Software konstruieren, beizutragen.
Anwendungsbereich und Problemdefinition:
Komplexe sicherheits- und missionskritische Systeme spielen eine große Rolle in Anwendungen in der Luft- und Raumfahrt, im Autobau, der Flugverkehrskontrolle, in Zugleitzentralen, der Medizin und vielen weiteren Bereichen. Design und Entwicklung solcher Systeme ist hochgradig komplex und herausfordernd, da die System- und Softwareentwickler, insbesondere die Softwarearchitekten, mit einer großen Anzahl an funktionellen Anforderungen arbeiten müssen, wie auch mit probablistischen Qualitätsanforderungen (oder Zuverlässigkeitsanforderungen), wie zum Beispiel Sicherheit, Verfügbarkeit, Zuverlässigkeit, Performanz und zeitliche Korrektheit bezogen auf verschiedene Umgebungseingaben, und das mit möglichst geringen Kosten über den gesamten Software Life-Cylcle. Außerdem muss die Einhaltung dieser probablistischen Qualitätsanforderungen zur Laufzeit überwacht werden, um Eividenz ihrer Realisierung zu gewinnen. In diesem Kontext gilt es also die folgenden Forschungsproblme zu lösen:
- Um systematische, statistische Techniken anwenden zu können, und so mit diesen probablistischen Qualitätsanforderungen umgehen zu können, müssen System- und Softwareentwickler ihre spezifischen Projekt- und Domänen-bezogenen Qualitätsanforderungen auf formalem und eindeutigem Wege spezifizieren. Zusätzlich ist es wichtig die geforderten Systemeigenschaften so präzise wie möglich zu spezifizieren. Daher ist eine formale Sprache und ein systematisches Vorgehen nötig, um eine formale Repräsentation abzuleiten, denn die meisten Zuverlässigkeitsanforderungen sind häufig nur informal durch den Endnutzer spezifiziert.
- Basierend auf der formalen Definition der probablistischen Qualitätsanforderungen müssen die zugehörigen statistischen Modelle anhand der Architekturspezifikation zur Entwicklungszeit die Erfüllungswahrscheinlichkeit für diese Anforderungen vorhersagen können. Wären solche statistische Modelle und Techniken tatsächlich verfügbar, so würde dies den Entscheidungsprozess bezüglich der probablistischen Qualitätsanforderungen deutlich vereinfachen.
- Informationen zu probabilistischen Charakteristika von Software Elementen zur Entwicklungszeit können wegen des Fehlens von Details und wegen den nur wagen Informationen zur Ausführungsumgebung ungenau sein. Daher werden Techniken benötigt, die diese Charakteristika zur Laufzeit überwachen und - falls dies zur Verbesserung der Entwicklungszeitvorhersagen nötig ist - aktualisieren.
Qualitätsanforderungen stehen häufig miteinander in Konflikt und erfordern daher Kompromisse: Zum Beispiel ist es häufig sicherer ein System abzuschalten, wenn es einen Fehler in einer elektronischen Komponente gibt; dies widerspricht aber offensichtlich dem Anspruch das System verfügbar zu halten. Weiterhin sind probablistische Qualitätsanforderungen einer der großen Kostenpunkte in der Systementwicklung und Design-Entscheidungen - wie zum Beipiel die Anzahl an Redundanzen von einzelnen Komponenten - können einen signifikanten Einfluss auf die Kosten für Auslieferung und nachfolgende Wartung der Systeme haben. Basierend auf den Vorhersagen und Schätzung von probablistischen Metriken (wie Fehlerwahrscheinlichkeiten) für Qualitätseigenschaften oder die Resultate von statischer Überwachung zur Laufzeit, resultiert die Notwendigkeit von exakt zugeschnittener Optimierung und Entscheidungsmethoden.