zukunftsfabrik

Simulationsmodelle erstellen: Geht das auch im Team?

Traditionell wird die Entwicklung von Simulationsmodellen oft von einer einzelnen Person vorangetrieben, was eine teambasierte Zusammenarbeit erschwert. Die Modelle selbst sind häufig undurchsichtig und der Entwicklungsworkflow nicht auf Zusammenarbeit ausgelegt. Durch die Integration von Versionsverwaltungssystemen können bewährte Software-Entwicklungsworkflows bei der Modellerstellung eingesetzt werden. Dieser Ansatz öffnet neue Wege für Effizienz und Transparenz in der teambasierten Modellerstellung.

Die VDI-Richtlinie 3633 beschreibt die klassischen Abläufe zur Entwicklung von Simulationsmodellen und definiert den Prozess von der Konzeption bis zum fertigen Modell sowie dessen Nutzung für bspw. Experimente. Jedoch sind dort nur grobe Richtlinien zur Modellerstellung auf Programmebene beschrieben. Diese Prozesse sind meist individuell für jeden Entwickler und führt häufig dazu, dass Simulationsmodelle von einzelnen Personen erstellt werden, wobei die Versionierung schwer handhabbar und die Implementierung von Features nur mit hohem Aufwand dokumentierbar ist. Dadurch wird eine gemeinsame Arbeit an Simulationsmodellen eingeschränkt und auch die Weitergabe von Modellen zwischen Beteiligten gestaltet sich komplex.

Typische Probleme daraus sind die fehlende Nachverfolgbarkeit von Anpassungen zwischen verschiedenen Modellversionen auf Objekt- oder Quellcodeebene, die Unterscheidung zwischen internen Entwicklungsversionen und auslieferbaren Versionen für den Kunden sowie die Möglichkeit, bei nicht erfolgreichen Umsetzungen von Features auf vergangene Versionen zurückzuspringen. Zudem kann es bei umfangreicheren Funktionalitäten und damit verbundenen Problemen in der Umsetzung zu Behinderungen im Projektfortschritt kommen. Auch die Nachvollziehbarkeit der durchgeführten Arbeiten bei Mitarbeiterausfall oder -wechsel oder nach langen Pausen in der Weiterentwicklung von Modellen stellen klassischen Herausforderungen dar.

Simulationsumgebungen wie Siemens Plant Simulation haben auf einige dieser Herausforderungen reagiert und bieten die Möglichkeit, Simulationsmodelle als Ordnermodelle abzuspeichern. Dies erlaubt die Nutzung von Versionsverwaltungsprogrammen und -plattformen wie GitHub oder GitLab, die es ermöglichen, bekannte Workflows aus der Softwareentwicklung auf die Entwicklung von Simulationsmodellen zu übertragen. In der Softwareentwicklung ist die kooperative und kollaborative Entwicklung an Projekten normal und viele der dort etablierten Best Practices können auch verstärkt auf die Entwicklung von Simulationsmodellen angewendet werden. Zu den Beispielen für solche übertragbaren Best Practices gehören die Planung und das Tracking von Entwicklungsaufgaben über Kanban-Boards, die eine direkte Verknüpfung von erledigten Aufgaben mit Modellständen ermöglichen (Abbildung 1). Ebenso kann die Verwaltung einer beliebig großen Menge an Versionen sowie eine detaillierte Übersicht der Änderungen zwischen den Versionen durch Versionierung in Plattformen wie GitHub oder GitLab erleichtert werden (Abbildung 2). Das Branching (Separieren von Modellversionen und Features) und Merging (Zusammenführungen von Versionen) von verschiedenen Versionen ermöglicht es mehreren Entwicklern, parallel an einem Modell zu arbeiten. Über Merges kann eine aktualisierte Version des Modells erzeugt werden, die alle Updates enthält, ohne, dass zwischen mehreren Teammitgliedern Dateien manuelle ausgetauscht oder Features nachträglich übertragen werden müssen (Abbildung 3).

Abbildung 1: Kanban Board mit verschiedenen Listen zur Strukturierung von Tasks

Abbildung 2: Überblick zu einem Commit auf GitLab. Oben befinden sich Angaben zum Branch, unten befindet sich eine Übersicht mit allen dokumentierten und rückverfolgbaren Änderungen zur letzten Version

Abbildung 3: Tracking und Versionierung von sechs verschiedenen Branches (eigenständige , abgeleitete Modellversionen, farbige Linien) sowie Merging (Zusammenführen) der Versionen zu einer neuen Hauptversion

Zudem lässt sich der Zeitaufwand für die Implementierung durch die parallele Entwicklung reduzieren. Die Rückverfolgbarkeit kann bis auf Quellcodeebene gewährleistet werden, was die Zuteilung von Mitarbeitern zu Projekten einfacher und transparenter macht. Release-Versionen können separat getrackt und von aktuellen Entwicklungsversionen getrennt gehandhabt werden. Auch das Monitoring des Projektfortschrittes kann durch die Implementierung agiler Methoden wie SCRUM verbessert und in einem dafür typischen Projektworkflow umgesetzt werden. Diese Entwicklungen bieten deutliche Vorteile in der Effizienz und Transparenz der Modellentwicklung, was die Qualität und Nachvollziehbarkeit der Simulationsmodelle im Team maßgeblich verbessert.

Nicht zuletzt müssen die Workflows sowie die Einarbeitung aller Simulanten in die Versionsverwaltung sichergestellt werden. Der initiale Aufwand sowie die Gewöhnung an die Workflows benötigt Zeit, erspart aber im Projektverlauf, Dokumentation sowie Kommunikation gegenüber Kunden viel Zeit.

Titelbild: ©Midjourney
Abbildung 1: ©Gitlab
Abbildung 2 und 3: ©Fraunhofer IWU

Kommentare hinzufügen

Alle Beiträge