Zum Inhalt springen

Ein detaillierter Leitfaden zur modellbasierten Entwicklung

Modellbasierte Entwicklung – Blogbeitrag

Ein traditioneller Entwicklungsablauf, den die Teams befolgten, sah in etwa so aus:

Anforderungen in einer Microsoft Word-Datei festhalten -> Designsystem und Benutzeroberfläche in PowerPoint entwerfen -> Manuell programmieren -> System testen.

Das Hauptproblem bei diesem Ansatz bestand darin, dass die Teams erst nach der vollständigen Implementierung des Systems überprüfen konnten, ob es funktioniert. Wurde die Logik falsch verstanden, traten Probleme auf, deren Behebung mit hohen Kosten verbunden war.

Wenn beispielsweise bei der Implementierung eines Tempomats für Autos die Steuerungslogik direkt auf der Grundlage der reinen Anforderungen programmiert wird, können Teams bei Testfahrten Probleme wie plötzliche Beschleunigung, langsame Reaktion oder falsches Bremsverhalten feststellen. Die Behebung dieser Probleme dauert anschließend Wochen.

Um diese Herausforderungen zu bewältigen, wurde um 1960 in der Luft- und Raumfahrtindustrie die modellbasierte Entwicklung (MBD) eingeführt. Dabei wird die Systemlogik mithilfe ausführbarer Modelle erstellt und getestet, bevor der endgültige Code geschrieben wird.

Lassen Sie uns genauer betrachten, was MBD ist, wie es Schritt für Schritt funktioniert, wie es sich von der herkömmlichen Entwicklung unterscheidet und welche bewährten Methoden es für eine erfolgreiche Umsetzung gibt.

Was ist modellbasierte Entwicklung (MBD)?

Die modellbasierte Entwicklung oder das modellbasierte Design ist ein Ansatz zur Systementwicklung im Ingenieurwesen, bei dem digitale Modelle verwendet werden, um Systeme zu entwerfen, zu simulieren und zu testen, bevor auch nur eine einzige Zeile Code geschrieben wird. Digitale Modelle werden anhand verschiedener Arten von Anforderungsdiagrammen erstellt, darunter Blockdiagramme, Zustandsdiagramme, Aktivitätsdiagramme usw., die Informationen über das Systemverhalten, die Steuerlogik, Ein- und Ausgänge sowie den zeitlichen Ablauf enthalten.

Der Hauptvorteil von MBD ist die Echtzeitsimulation. Anstatt komplette Systeme zu entwickeln und zu testen, können Teams das Modell wie einen funktionierenden Prototyp ausführen und prüfen, wie es unter realen Bedingungen reagiert. Dies trägt dazu bei, das Design frühzeitig zu validieren, Überraschungen in späteren Phasen zu vermeiden und die Entwicklungskosten erheblich zu senken.

MBD wird vor allem in Branchen wie der Luft- und Raumfahrt, der Verteidigungsindustrie, der Automobilindustrie, der Robotik usw. eingesetzt, in denen Teams komplexe Software, Hardware oder physische Bauteile entwickeln müssen.

Kurz gesagt: MDB hilft Teams dabei, bereits in der Entwurfsphase zu überprüfen, wie sich das gesamte System verhält, und die Genauigkeit des Systems zu verbessern.

Wie funktioniert die modellbasierte Entwicklung?

Bei der modellbasierten Entwicklung (MBD) wird ein strukturierter Arbeitsablauf befolgt, bei dem das Modell als zentrales Arbeitsinstrument und nicht nur als einfache Zeichnung betrachtet wird. Hier ein kurzer Überblick über den Lebenszyklus der modellbasierten Entwicklung:

1) Erstellen Sie zunächst ein Systemmodell

Der erste Schritt besteht darin, auf der Grundlage definierter Anforderungen Anforderungsdiagramme (digitale Modelle) zu erstellen. Diese stellen das Systemverhalten dar und zeigen, wie das System in verschiedenen Szenarien auf unterschiedliche Eingaben und Bedingungen reagiert. Diese Modelle können mithilfe von Zustandsmaschinen, Gleichungen oder einem Diagramm auf Architekturebene erstellt werden. Die Teams müssen sicherstellen, dass das Diagramm Eingaben, Ausgaben, Logik, Steuerungsverhalten, Zeitabläufe usw. klar darstellt.

2) Führen Sie Simulationen durch, um das Verhalten zu überprüfen

Verwenden Sie anschließend ein beliebiges Simulationswerkzeug wie Modern Requirements4DevOps, um das Verhalten des Systems in einer virtuellen Umgebung zu simulieren. Damit können Teams testen, wie sich das System in realistischen Szenarien verhält, und potenzielle Probleme aufdecken, ohne Systemprototypen entwickeln zu müssen.

3) Verifizierung und Validierung

Sobald die Simulationsergebnisse vorliegen, sollten Verifikation und Validierung des Systems durchgeführt werden. Die Verifikation dient dazu, sicherzustellen, dass das System alle dokumentierten Anforderungen erfüllt, während die Validierung gewährleistet, dass das System seinen beabsichtigten Zweck erfüllt.

In ausgereiften MBD-Projekten prüfen die Teams außerdem:

  • Anforderungsabdeckung (Haben wir jede Anforderung getestet?)
  • Szenarioabdeckung (Haben wir alle Bedingungen getestet?)
  • Modellabdeckung (wurden alle Logikpfade ausgeführt?)

Diese Rückverfolgbarkeit in Echtzeit stärkt das Vertrauen der Teams, die in regulierten Branchen tätig sind.

5) Codegenerierung

Wenn das System einwandfrei funktioniert, wird der Code in der gewünschten Programmiersprache (bei eingebetteten Systemen üblicherweise C/C++) automatisch auf der Grundlage des Modells generiert. Bei der automatischen Codegenerierung mithilfe eines KI-Tools ist die Fehlerwahrscheinlichkeit sehr gering.

6) Das Modell in kurzen Zyklen verfeinern

Sollte das System ausfallen oder sollten bestimmte Bedingungen aktualisiert werden müssen, passen Sie den Entwurf an und testen Sie das System erneut. Durch diesen wiederholten Zyklus lässt sich das System in kurzen Abständen kontinuierlich verbessern. 

Darüber hinaus können Teams die Systeme auf der Grundlage von Daten aus realen Testläufen optimieren und so die Genauigkeit des Systems im Laufe der Zeit verbessern.

7) In die Zielplattform integrieren

Der generierte Code wird dann mit dem Rest des Systems verbunden, etwa so:

  • Fahrer
  • Kommunikationsschichten (CAN, LIN, Ethernet usw.)
  • Hardware-Schnittstellen
  • Scheduling-Logik von Betriebssystemen und Echtzeitbetriebssystemen

Dieser Schritt bestätigt, dass die modellierte Logik in der realen Umgebung korrekt funktioniert.

Modellbasierte Entwicklung vs. traditionelle Entwicklung

Aspekt
Traditionelle Entwicklung
Modellbasierte Entwicklung (MBD)
Ausgangspunkt
Die Teams formulieren die Anforderungen und setzen diese anschließend in Code um.
Die Teams entwickeln zunächst das digitale Modell, testen das System und schreiben den Code, wenn alles in Ordnung ist.
Frühzeitige Validierung
Die Validierung kann erst nach der vollständigen Implementierung des Systems erfolgen.
Die Logikvalidierung erfolgt durch die Simulation digitaler Modelle, bevor die Entwicklung beginnt.
Umgang mit komplexem Verhalten
Es ist schwierig, komplexe zeitliche Abläufe und modellbasiertes Verhalten vor der Implementierung des Systems zu handhaben.
Durch die Simulation von Blockdiagrammen und Zustandsmaschinen können Teams die Komplexität von Systemen leicht überblicken.
Änderungen und Überarbeitungen
Änderungen an den Anforderungen führen oft zu großem Nacharbeitsaufwand, da sie erst spät erfolgen.
Die Änderungen werden zunächst auf das Modell angewendet und anschließend erneut simuliert, um die Auswirkungen schnell zu überprüfen.
Codequalität und Konsistenz
Die Codequalität hängt vom Stil und der Auslegung des Entwicklers ab.
Modellgesteuerte Arbeitsabläufe verringern Interpretationsunterschiede und fördern eine einheitliche Umsetzung.
Iterationsgeschwindigkeit
Iterationen dauern länger, da die Teams in jeder Iteration Code schreiben und Fehler beheben müssen.
Die Iterationen verlaufen zügig, da die Simulationen ein schnelles Feedback zum Verhalten liefern.
Rückverfolgbarkeit
Die Rückverfolgbarkeit erfolgt größtenteils manuell und ist mit einem hohen Dokumentationsaufwand verbunden.
Die Verknüpfung von Anforderungen mit Modellen und von Modellen mit Tests ist einfacher und strukturierter.

Bewährte Verfahren für eine erfolgreiche modellbasierte Entwicklung

  • Beginnen Sie mit fundierten Anforderungen: Definieren Sie Eingaben, Ausgaben, Steuerbedingungen, Grenzwerte, zeitliche Vorgaben, nicht-funktionale Aspekte usw. sorgfältig , bevor Sie das Modell erstellen.
  • Halten Sie Modelle übersichtlich und modular: Unterteilen Sie die Logik in kleinere Teilsysteme, damit Teams einzelne Teile unabhängig voneinander überprüfen, wiederverwenden und testen können.
  • Verwenden Sie einheitliche Bezeichnungen und Einheiten: Unklare Bezeichnungen oder gemischte Einheiten (°C vs. °F, ms vs. s) führen später zu kostspieligen Fehlern.
  • Simulieren Sie regelmäßig: Führen Sie während der Modellentwicklung mehrmals und regelmäßig Simulationen durch, um die Anforderungen zu überprüfen, bevor Sie mit dem Programmieren beginnen.
  • Versionskontrolle gewährleisten: Achten Sie darauf, die Versionen jedes Modells durch eine ordnungsgemäße Verzweigung zu verwalten. Sollte ein Fehler auftreten, sollten die Teams in der Lage sein, die vorherige Version wiederherzustellen.
  • Sorgen Sie für Rückverfolgbarkeit: Verknüpfen Sie Anforderungen mit Modellelementen und Testergebnissen, damit die Teams den Überblick über alle Änderungen behalten.
  • Fördern Sie teamübergreifende Überprüfungen: Mehrere betroffene Teams, darunter Software-, Test- und Hardware-Teams, müssen die Systemkomponenten frühzeitig gemeinsam überprüfen, um spätere Überraschungen zu vermeiden.

Warum Anforderungsmanagement für die modellbasierte Entwicklung wichtig ist

Eines ist klar: Bei MDB wird das Modell so entwickelt, dass es den Anforderungen entspricht. Sind die Anforderungen also unklar, unvollständig, nicht nachvollziehbar oder über verschiedene Dokumente und E-Mails verstreut, wird auch das Modell unvollständig sein, was zu falschen Annahmen und Nacharbeiten führen kann.

Ein ordnungsgemäßes Anforderungsmanagement sorgt hierfür für Struktur, indem es sicherstellt, dass alle Anforderungen an einem Ort gespeichert und so formuliert sind, dass sie getestet werden können. Darüber hinaus können Teams bei der gemeinsamen Überprüfung oder dem Audit anhand des Versionsverlaufs nachvollziehen, wie sich die Anforderungen entwickelt haben und wer Änderungen vorgenommen hat.

An dieser Stelle sollten Teams damit beginnen, eine Anforderungsmanagement-Software wie Modern Requirements4DevOps einzusetzen, die umfassende Unterstützung für MBD bietet. Sie umfasst Traceability-Tools, um aktualisierte Anforderungen mit Anforderungsmodellen zu verknüpfen, Diagrammtools zur Erstellung verschiedener Diagrammtypen sowie Simulationstools zur Validierung von Modellen anhand verschiedener Anwendungsfälle. 

Darüber hinaus bietet Modern Requirements4DevOps eine Funktion zur Überprüfung, mit der Anforderungen gemeinsam und mittels elektronischer Signatur geprüft werden können. Mithilfe der Funktionen zur Bewertung der Auswirkungen von Änderungen und durch Simulationen mit Modellen können Teams bereits vor der Umsetzung erkennen, wie sich die Änderung auf das System auswirken wird.

Möchten Sie die Vorteile der modellbasierten Entwicklung in Verbindung mit einem soliden Anforderungsmanagement kennenlernen?

Inhaltsverzeichnis

Beginnen Sie noch heute mit der Nutzung von Modern Requirements.

✅ Definieren, verwalten und verfolgen Sie Anforderungen innerhalb von Azure DevOps
✅ Arbeiten Sie nahtlos mit regulierten Teams zusammen
✅ Starten Sie KOSTENLOS – keine Kreditkarte erforderlich

Aktuelle Artikel

New MR Logo cropped
Products
New MR Logo cropped

Moderne Anforderungen für DevOps

End-to-end requirements management in Azure DevOps.

Copilot für DevOps

AI-powered assistance for DevOps workflows.

Agents4DevOps

Autonomous AI agents for DevOps execution.

KI-Synchronisierungsbrücke

Real-time data sync across tools and systems.

Warum moderne Anforderungen?

Designed to work natively within Azure DevOps, Modern Requirements extends the platform with powerful capabilities that help teams capture, manage, and validate requirements more effectively.