Insgesamt sind Versionierung und Variantenhandling im Engineering komplexer Systeme unverzichtbar, um Qualität, Effizienz und Nachvollziehbarkeit zu gewährleisten und die Herausforderungen von Komplexität und Vielfalt effektiv zu bewältigen.
Während Versionskontrolle für die langfristige Wartung und Weiterentwicklung eines Systems unerlässlich ist, ermöglicht Variantenmanagement die Weiterentwicklung oder Aktualisierung bestehender Versionen eines Systems, ohne die Integrität anderer Varianten zu gefährden.
In der Praxis überwiegt jedoch häufig die Entscheidung entweder ein robustes Versionskonzept oder ein strukturiertes Variantenhandling zu betreiben. Bereits 2019 stellten Berger et al1 in den Dagstuhl-Berichten fest, dass sowohl die Softwarekonfigurations- als auch die Product-Line-Engineering-Community mit wechselseitigen Herausforderungen kämpfen: Erstere benötigt Variantenunterstützung, Letztere konsistente Versionierung. Ein durchgängiger, praxisgerechter Ansatz blieb bislang aus.
LieberLieber stellt einen integrierten Ansatz vor, der Feature-Modellierung mit einem Feature-Branch-basierten MBSE-Workflow kombiniert. Durch die Anbindung von pure::variants an Enterprise Architect wird ein 150%-Systemmodell in konkrete Variantenmodelle transformiert, die anschließend mittels Git und LemonTree versioniert und verwaltet werden.
Im Rahmen dieses Tutorials demonstrieren wir, wie sich ein modellbasiertes System mithilfe von pure::variants strukturieren und über LemonTree effizient versionieren lässt. Dabei beleuchten wir insbesondere die Zusammenarbeit zwischen Variantenmodellen, Feature Branches und der Versionskontrolle mit Git.