Humboldt-Universität zu Berlin - Mathematisch-Naturwissenschaftliche Fakultät - Software Engineering

Humboldt-Universität zu Berlin | Mathematisch-Naturwissenschaftliche Fakultät | Institut für Informatik | Software Engineering | Lehre | Archiv | SS 2022 | Semesterprojekt: Automatisierung der Synchronisation von Software-Varianten

Automatisierung der Synchronisation von Software-Varianten

 


Covid-19 Information:

Das Semesterprojekt findet statt und ist zunächst als Präsenzveranstaltung geplant. Details hierzu werden an alle über Agnes registrierten Teilnehmer*innen versendet.

 

Wann und Wo

Semesterprojekt: Mittwoch, 9-13 Uhr, RUD 25, 4.112

Wer

Dozent: Alexander Schultheiß

Beschreibung und Aufbau der Lehrveranstaltung

In diesem Semesterprojekt stehen zunächst die Grundlagen statischen Variabilitätsmanagement im Fokus. Ziel ist es einen breiten Überblick über die wichtigsten Techniken und Konzepte statischen Variabilitätsmanagements zu gewinnen; dazu gehören unter anderem Software-Produktlinien, Feature-Modelle, bedingte Kompilierung, Feature-Tracing, Feature-Extraction, und Change Synchronization.


Software wird oft in mehreren Varianten entwickelt werden, um alle Kundenanforderungen zu erfüllen. Diese Varianten werden häufig nach dem Clone-and-Own-Prinzip entwickelt: Eine neue Variante eines Softwaresystems wird durch Kopieren und Anpassen einer bestehenden Variante erstellt. Während Clone-and-Own sehr flexibel ist und kaum Vorabplanung benötigt, verursacht es langfristig einen hohen Wartungsaufwand, da sich die geklonten Varianten parallel weiterentwickeln. Bestimmte Änderungen - wie z. B. Fehlerkorrekturen oder Erweiterungen gemeinsamen Codes - müssen daher zwischen den Varianten propagiert werden.
Zwar existieren Techniken, um Änderungen an einer Quellcodedatei automatisch auf eine andere zu übertragen (z.B. git cherry-pick oder UNIX diff & patch), jedoch sind diese primär für die (parallele) Entwicklung verschiedener Versionen einer einzelnen Variante gedacht; sie berücksichtigen das Ausmaß der Variabilität, die durch Unterschiede im Quellcode der verschiedenen Varianten abgebildet ist, nicht. Im Seminar werden neue Techniken, welche die Synchronisation von Varianten vorantreiben, entworfen, implementiert, und validiert.