Detailliertes Software-Design
Bei der modellorientierten Entwicklung kann das gleiche Modell, mit dem die Systemingenieure ihre Algorithmen funktional spezifiziert haben, von den Software-Ingenieuren verfeinert, um projektspezifische Bedingungen erweitert und schließlich zur Generierung von Produktions-Codes eingesetzt werden. Bei diesem detaillierten Software-Entwurf müssen in vielen Fällen Festkomma-Daten definiert und für das Zielsystem charakteristische Konfigurationseinstellungen für die Code-Generierung vorgenommen werden. Häufig wird dabei das System erst als Gleitkomma-Modell entwickelt, aus dem dann eine Festkomma-Version erzeugt und durch Software-Entwicklung optimiert wird.
Einige Unternehmen setzen hierbei nur ein einziges Modell ein und implementieren es mithilfe eines auf Data Dictionary gestützten Modellierungsstils für mehrere verschiedene Zielsysteme. Andere Unternehmen bevorzugen dazu den Einsatz von zwei Modellen. Simulink Fixed Point verfügt mit dem Fixed-Point-Tool schon seit einiger Zeit über die Fähigkeit, ein Festkomma-Modell in eine besser optimierte Festkomma-Version umzuwandeln. Seit R2008a gibt es den Fixed-Point-Advisor, der die Umwandlung von Gleitkomma-Modellen in Festkomma-Modelle automatisiert. In einem von MathWorks untersuchten Beispiel nahm die Festkomma-Umwandlung eines Modells vor einigen Jahren noch 20 Ingenieur-Stunden in Anspruch. Mit dem Fixed-Point-Advisor aus R2008a lässt sich dies in 20 Minuten erledigen.
Generierung von Produktions-Code
Der Prozess der Code-Generierung gestaltet sich so einfach wie mit einem C-Compiler. Dem Anwender werden verschiedenen Optimierungs- und Konfigurations-Optionen angeboten, mit deren Hilfe er sinnvolle Parameter-Werte ermitteln und festlegen kann. Sind diese Konfigurations-Einstellungen einmal getroffen, können sie gespeichert, geladen und durch Batch-Automatisierung durch das gesamte Projekt hindurch wiederverwendet werden. Diese Einstellungen können global wirken und auf sämtliche Aspekte eines Modells angewandt werden; sie können aber auch zum Teil lokal definiert sein und nur für ein bestimmtes Subsystem gelten. Mit R2008a wurde einige Verbesserungen bei der Code-Generierung eingeführt, die den generierten Code effizienter und leichter integrierbar machen. Die Listings zeigen die Optimierung der Code-Effizienz für Bus-Operationen. Wie zu sehen ist, sind in R2008a gegenüber R2007b überflüssige temporäre Variablen (rtb_) beseitigt worden.