Ein Angebot von

Modellgetriebene Entwicklung

Versionierung: Die Herausforderung bei der Modellierung

| Autor / Redakteur: Dr. Konrad Wieland* / Christine Kremser

Softwaremodelle erlauben es, Codestrukturen zu visualisieren. Aber auch hier spielt die Versionierung eine zentrale Rolle.
Softwaremodelle erlauben es, Codestrukturen zu visualisieren. Aber auch hier spielt die Versionierung eine zentrale Rolle. (Bild: Clipdealer)

Sowohl die zunehmende Komplexität als auch immer kürzer werdende Release-Zyklen moderner, eingebetteter Softwaresysteme machen es notwendig, verschiedene Versionen parallel zu entwickeln.

Dazu addiert sich die Herausforderung, dass diese Systeme in immer größeren und verteilten Teams entwickelt werden. Bei Verwendung eines modellgetriebenen Ansatzes müssen solche Teams die Möglichkeit erhalten, an parallelen Versionen eines Modells effizient zu arbeiten.

Bei der Generierung von Source Code werden die Vorteile von Versionierungssystemen seit Jahren erfolgreich genutzt. Die wichtigste Funktion ist hier der Vergleich und die Zusammenführung von verschiedenen Versionen. Herkömmliche Ansätze verwenden dafür zeilen- und textbasierte Anwendungen, die jedoch bei grafischen Modellen nicht ausreichend sind. In diesem Beitrag wird aufgezeigt, wie Modelle praxistauglich verglichen und zusammengeführt werden können, um so eine effiziente Versionierung zu ermöglichen.

Während des gesamten Softwareentwicklungsprozesses werden die unterschiedlichsten Software Artefakte zahlreichen Veränderungen unterzogen. Werkzeuge, die diese Evolution der Artefakte unterstützen, sind unverzichtbar [2] [3]. Daher wurden und werden unter dem Begriff des Software Configuration Managements (SCM) Techniken entwickelt, die diese Änderungsprozesse unterstützen oder gar erst ermöglichen. Versionierungssysteme (VCS) fallen in diese Gruppe und haben ihren Ursprung bereits in den 1970er Jahren.

Versionierungssysteme verfolgen drei Ziele:

  • Sie archivieren verschiedene Versionen, die sich durch Änderungen ergeben haben, um jederzeit Änderungen rückgängig machen und auf eine ältere Version zurückgreifen zu können.
  • Sie helfen dabei, verschiedene „Branches“, d.h. parallele Entwicklungsstränge, zu verwalten, die durch die Entwicklung von Software-Varianten erforderlich sind.
  • Sie können die parallele Entwicklung von (verteilten) Teams koordinieren.

Bei allen drei Punkten sind der Vergleich und/oder die Zusammenführung von Versionen von zentraler Bedeutung. Beim letzten Punkt wachsen die Anzahl der Anforderungen und die Komplexität durch die native Integration in ein Versionierungssystem. Dabei lassen sich grundsätzlich zwei Ansätze unterscheiden, die ich im nächsten Absatz kurz vorstelle.

Pessimistisches und Optimistisches Versionieren

Beim sogenannten pessimistischen Versionieren sperrt man die einzelnen Artefakte, damit sie parallel nicht verändert werden können. Konflikte werden so vollständig umgangen, Wartezeiten sind allerdings kaum zu vermeiden.

Beim optimistischen Versionieren dagegen wird dasselbe Artefakt zeitgleich bzw. parallel bearbeitet (siehe Bild 1 in der Bildergalerie). Beide Entwickler führen ein sogenanntes „Check Out“ durch und arbeiten parallel an einer Kopie. Bevor auch der Zweite seine Änderungen speichern kann, müssen diese Änderungen mit den bereits übernommenen vom ersten Entwickler zusammengeführt werden (Merge). Dieser Prozess wird in vier Schritte aufgeteilt:

  • Identifizierung der Änderungen zwischen den beiden Versionen.
  • Erkennung von Konflikten zwischen den Änderungen.
  • Automatische oder manuelle Auflösung dieser Konflikte.
  • Erstellung einer neuen Version, die (im besten Fall) alle Änderungen von beiden Versionen beinhaltet.

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 44106527 / Entwurf)