Simulation Driven Development

Simulation Driven Development (SDD) ist eine effiziente Methode zur Entwicklung komplexer verteilter Systeme und Prozesse. Im Unterschied zu herkömmlichen Methoden werden während des gesamten Entwicklungsprozesses (bzw. Produktlebenszyklus) Simulationsmodelle des zu entwickelnden Systems eingesetzt. Diese ermöglichen die Abbildung statischer und dynamischer Systemeigenschaften, wodurch die Spezifikationsqualität und -geschwindigkeit enorm gesteigert werden kann. Die eingesetzten Simulationsmodelle werden im Verlauf des Entwicklungsprozesses zur Analyse, Evaluierung, Validierung, Verifikation und Optimierung verwendet.

Zusätzlich zum Simulationsmodell des zu entwickelnden Systems kommt bei SDD ein Simulationsmodell des Entwicklungsprozesses selbst zum Einsatz. Dieses ermöglicht die Automatisierung von Entwicklungsschritten in Form von Workflows wie z.B. Optimierungszyklen, Testzyklen, Revisionskontrollen und Dokumentenaustausch mit Komponentenherstellern. Die folgende Abbildung veranschaulicht Simulation Driven Development in Form eines erweiterten V-Modells:

Während der Anforderungsanalyse werden die Nutzeranforderungen an das zu entwickelnde System erfasst und in ein erstes Simulationsmodell überführt. Dieses bildet das dynamische Nutzerverhalten und die Interaktion der Nutzer mit dem System in Form von Einsatzszenarien (Use Cases) ab. Das Simulationsmodell bildet die Grundlage für die späteren Akzeptanztests und erlaubt erste Analysen zur Konzeption des zu entwickelnden Systems.

In der sich anschließenden Phase der Systemspezifikation werden die Entwickleranforderungen (funktional und nicht-funktional) abgeleitet und in eine ausführbare Spezifikation überführt. Dabei handelt es sich um ein Simulationsmodell des gesamten Systems bestehend aus Funktion, Architektur und Nutzerverhalten. Jedes Element des Simulationsmodells steht in Relation zu den Nutzer- oder Entwickleranforderungen, um deren Einhaltung sicherzustellen. Das Simulationsmodell erlaubt die frühzeitige Validierung des gesamten Systems gegen die Einsatzszenarien und die Auffindung von Integrationsproblemen (dynamischer Kopplungseffekte zwischen Systemkomponenten). Des Weiteren ermöglicht es eine Optimierung auf Systemebene und bildet die Grundlage für die späteren Systemintegrationstests.

Im Rahmen der Komponentenspezifikation werden die Komponenten des Systems in Form von Simulationsmodellen weiter verfeinert. Grundlage bildet die ausführbare Systemspezifikation und die dort definierten Anforderungen und Parameter der Komponente. Gleichzeitig dient die ausführbare Systemspezifikation als Entwicklungsumgebung zur Validierung und Optimierung der Komponente gegen das gesamte System. Durch die Verfeinerung kommt es zur Konkretisierung der Komponenten- und damit auch Systemparameter. Die Komponentenspezifikation bildet die Grundlage für die späteren Komponentenintegrationstests.

Nachdem das System und dessen Komponenten spezifiziert wurden, kommt es zur Implementation. Diese wird im Anschluss auf Grundlage der zuvor spezifizierten Testfälle verifiziert und validiert (Last- und Dauertests). Als erstes werden die Komponentenintegrationstests durchgeführt. Hier wird die Funktionalität jeder Komponente isoliert betrachtet. Im Anschluss werden die Komponenten zu einem System integriert und die Systemintegrationstests durchgeführt. Letztlich wird das System in Form von Akzeptanztests gegen die Nutzeranforderungen getestet. SDD ermöglicht die Wiederverwendung der zuvor definierten Testfälle, welche in Form von Simulationsmodellen vorliegen. Die Simulationsmodelle werden hierzu mittels Hardware/Software In the Loop Simulation an die Implementation des Systems angebunden.

Scroll to Top
WordPress Cookie Hinweis von Real Cookie Banner