Dr. Sven Peldszus

 

Nach Vereinbarung


Forschungsthemen
Reviewing
Ausgewählte betreute Abschlussarbeiten
Lehre
Publikationen
Externe Links

Forschungsthemen

Heutige Softwaresysteme werden in der Regel langfristig eingesetzt, sind stark vernetzt, haben viele gemeinsame Teile und verarbeiten oft sicherheitskritische Daten, so dass es für die Wahrung der Sicherheit eines Systems entscheidend ist, mit den sich ständig ändernden Sicherheitsvorkehrungen, Angriffen und Abhilfemaßnahmen Schritt zu halten. Die modellbasierte Systementwicklung ermöglicht es uns, Sicherheitsprobleme bereits in den frühen Phasen des Softwareentwurfs anzugehen, wie bei UML-Modellen. Die kontinuierlichen Änderungen der Sicherheitsannahmen und des Designs von Softwaresystemen - beispielsweise aufgrund von strukturellem Verfall - müssen sich sowohl in den Systemmodellen (z. B. UML-Modellen) als auch in der Systemimplementierung (einschließlich Programmmodellen) widerspiegeln. Die Erkennung, welche Änderung wo notwendig ist, muss derzeit von den Entwicklern manuell durchgeführt werden.

Meine Hauptforschungsrichtungen sind die Untersuchung von Ansätzen zur automatischen Erkennung und Durchführung notwendiger Änderungen an einer einzigen Darstellung des Systems und die Synchronisierung aller anderen Darstellungen mit dieser geänderten Darstellung. Entwicklern die Möglichkeit geben, Systeme modellbasiert zu entwickeln und mit dem strukturellen Verfall langlebiger Systeme umzugehen.

Daher schlage ich einen modellbasierten Ansatz vor, bei dem Entwurfsmodelle (z. B. in UML spezifiziert), Quellcode (z. B. in Java geschrieben) und ein Programmmodell (PM) zur Durchführung anspruchsvoller Analysen kontinuierlich synchronisiert werden, um die verschiedenen Phasen der Softwareentwicklung abzudecken. Sicherheit und Variabilität werden in Form von Annotationen in die verschiedenen Artefakte eingebracht. Für UML-Modelle können wir z.B. das von Jürjens vorgeschlagene UMLsec-Profil für Sicherheitsannotationen und für Variabilitätsannotationen die in Antenna definierten präprozessorartigen Anweisungen verwenden.