Daten-Management im modellbasierten Entwicklungsprozess Vorteile einer toolgestützten Datenhaltung #####

Für die softwaretechnische Implementierung der immer komplexer werdenden Regelungsalgorithmen in Steuergeräte-Anwendungen erweist sich die Datenhaltung als wichtiger Aspekt. Zur Beherrschung der umfangreichen Datenmengen bietet sich entsprechende Toolunterstützung in Form von Data Dictionaries an, um die Effizienz der Entwicklungsprozesse zu steigern.

Daten-Management im  modellbasierten Entwicklungsprozess

Für die softwaretechnische Implementierung der immer komplexer werdenden Regelungsalgorithmen in Steuergeräte-Anwendungen erweist sich die Datenhaltung als wichtiger Aspekt. Zur Beherrschung der umfangreichen Datenmengen bietet sich entsprechende Toolunterstützung in Form von Data Dictionaries an, um die Effizienz der Entwicklungsprozesse zu steigern.

Der modellbasierte Entwurf hat sich im Automotive-Umfeld mittlerweile fest etabliert und gilt als wichtiger Ansatz, um die ständig steigende Komplexität und den hohen Zeit- und Kostendruck bewältigen zu können. Für die Entwicklung von Steuerungs- und Regelungsfunktionen ist hierbei insbesondere der Einsatz von MATLAB/Simulink/Stateflow verbreitet, was den Funktionsentwurf auf Basis von Block- und Zustandsdiagrammen gestattet. Besonders attraktiv ist diese Vorgehensweise, wenn sie mit automatischer Seriencode-Generierung gekoppelt wird, um die Modelle unmittelbar in Software zu implementieren.

Neben der Entwicklung der eigentlichen Algorithmen erweist sich auch beim modellbasierten Entwurf das effiziente Management der beteiligten Daten als wesentlicher Aspekt, der im Entwicklungsprozess gesondert berücksichtigt werden muss. So werden Simulink-Modelle typischerweise mit Parametern versorgt, welche in MAT-LAB-M-Files gehalten werden. Diese Handhabung ist jedoch relativ unstrukturiert und die Handhabung der Parameter unübersichtlich und fehlerträchtig. Deshalb ist hier eine strukturiertere Datenverwaltung wünschenswert.

Zusätzlich erfordert die Implementierung der Modelle umfangreiche, Software-bezogene Daten, beispielsweise für globale Variablen, Schnittstellengrößen und Applikationsparameter, die jeweils mit ihren individuellen Datentypen, Wertebereichsgrenzen, Skalierungsformeln, Beschreibungen etc. verwaltet werden müssen. Dies geschieht etwa in Excel-Tabellen oder Datenbanken, die jedoch oftmals nicht mit dem eigentlichen Modell verknüpft und daher nicht optimal in den modellbasierten Entwicklungsprozess integriert sind. Neben der bloßen Menge der zu verwaltenden Daten sowie der Integration in den Entwicklungsprozess erweist sich ferner die Datenhaltung in Multi-User-Umgebungen als wichtiger Aspekt. Daten mit projektglobaler Bedeutung müssen verwaltet und einer Vielzahl von Komponentenentwicklern konsistent zur Verfügung gestellt werden.

Einsatz eines Data Dictionaries

Zur Bewältigung der oben beschriebenen Herausforderungen werden in modellbasierten Entwicklungsprozessen oftmals Data Dictionaries (DD) eingesetzt, um die Gesamtheit der Daten zu verwalten.  Diese Data Dictionaries unterscheiden sich in Aufbau und Leistungsfähigkeit teils deutlich. So werden einerseits einfache In-House-Lösungen verwendet, andererseits aber auch hochspezialisierte, kommerzielle Werkzeuge.

Bild 1 zeigt speziell anhand des Data Dictionary von dSpace, wie sich ein solches Werkzeug in den modellbasierten Entwicklungsprozess integrieren lässt. Das DD wird in Kombination mit Simulink und dem Seriencode-Generator TargetLink eingesetzt und dient dabei als zentraler Container, um die im Rahmen der Funktionsentwicklung und automatischen Code-Generierung anfallenden Daten aufzunehmen. Dazu müssen zunächst existierende Daten ins DD importiert werden, seien es Modell-Parameter aus M-Files oder Software-bezogene Informationen wie Variablen, Datentypen und Skalierungen aus Datenbanken. Anschließend werden die nun im DD befindlichen Daten mit dem eigentlichen Modell verknüpft, was durch einen einfachen Referenzierungsmechanismus geschieht. Das Modell wird somit durch die im DD abgelegten Parameter und Implementierungsinformationen bedatet, wodurch eine strukturell saubere Trennung zwischen dem Modell (Algorithmus) einerseits und den eigentlichen Daten andererseits erzielt wird.

Hierdurch lassen sich beispielsweise spezielle Funktionalitäten des DD gewinnbringend nutzen, etwa ein integriertes Varianten-Management, um Simulationen für unterschiedliche Datenvarianten durchzuführen. Der Referenzierungsmechanismus erweist sich insbesondere  im Zusammenhang mit automatischer Code-Generierung als überaus nützlich, da Modelle hierfür typischerweise mit einer umfangreichen Menge an Implementierungsinformationen angereichert werden. Dies erfolgt nun direkt durch die Referenzierung von DD-Objekten, so dass eine erneute Spezifikation entfällt. Modelle sind damit optimal für Simulationen und die automatische Code-Generierung vorbereitet und das DD gut in die Simulink-TargetLink-Toolkette integriert.

Bild 2 zeigt die logische Struktur des DD anhand des Data Dictionary Managers, welcher als grafische Benutzeroberfläche des DD fungiert. Das DD selbst ist in Form einer Baumstruktur organisiert, wobei einzelne Äste speziell zur Ablage von Variablen, Datentypen, Skalierungsformeln und weiteren Software-bezogenen Objekten vorgesehen sind. Jedem der DD-Objekte ist eine genau definierte Menge von obligatorischen Attributen zugeordnet. So weist beispielsweise ein Skalierungs-Objekt als inhärente Attribute immer einen Skalierungsfaktor und einen Offset auf. Zusätzlich gibt es neben diesen durch das Datenmodell des DD vorgegebenen Zweigen, Objekten und Attributen auch die Möglichkeit, selbst definierte Objekte und Attribute anzulegen, um benutzerspezifische Informationen geordnet zu administrieren. Damit ist das DD nicht nur an die Code-Generierung mit TargetLink angepasst, sondern auch generell geeignet, Parameter aus M-Files sowie Software-bezogene Daten wie Variablen, Datentypen und Skalierungen aufzunehmen.

Für die effiziente Entwicklung in großen Teams ist Multi-User-Unterstützung für ein Data Dictionary von großer Bedeutung. Daten von projektglobaler Relevanz wie etwa globale Größen, Schnittstellenvari-ablen oder Applikationsparameter müssen mehreren Entwicklern gleichzeitig zugänglich gemacht und die Konsistenz der Daten sichergestellt werden. Aus Gründen des Versions- und Konfigurationsmanagements ist es zudem wünschenswert, die Steuergeräte-Daten in mehrere Dateien partitionieren zu können, beispielsweise je eine Datei für die Spezifikation global relevanter Skalierungsformeln und Datentypen. Des Weiteren empfiehlt sich die Verwendung unterschiedlicher Benutzungsrechte, um Datenbestände gegen unerwünschte Modifikation zu schützen und somit den Entwicklungsprozess abzusichern.

Bild 5 zeigt, wie sich das Multi-User-Konzept mit dem dSpace Data Dictionary umsetzen lässt. Ein zentraler Administrator erzeugt und verwaltet exklusiv projektglobale Daten und partitioniert diese in einzelne DD-Dateien. Diese werden anschließend von individuellen Komponentenentwicklern mittels eines speziellen Include-Mechanismus in ihre lokalen Data Dictionaries eingebunden. Der einzelne Entwickler arbeitet dann exklusiv mit seinem lokalen DD und verwaltet dort seine komponentenspezifischen Daten, hat aber über den Include-Mechanismus dennoch Zugriff auf Daten von globaler Relevanz, wie beispielsweise vom Administrator angelegte Datentypen oder Skalierungsformeln. Der Include-Mechanismus stellt dabei sicher, dass das Single-Source-Prinzip für die global relevanten Daten gewahrt ist und diese allen Entwicklern konsistent zur Verfügung gestellt werden. Das DD unterstützt zudem Mechanismen, um Schreib- und Leserechte für Daten einzeln festzulegen, was zur Absicherung gegen unerwünschte Änderung genutzt werden kann.