Die wachsende Komplexität eingebetteter Systeme erfordert neue Strategien um omplexität bei der Entwicklung von eingebetteten Systemen zu bewältigen. Die Evolution der Programmiersprachen zeigt, dass Abstraktion der beste Weg zur Bewältigung von Komplexität ist. Modellbasierte Entwicklungsmethoden heben das Abstraktionslevel an und versuchen, sich der menschlichen Sprache, dem Denken und der Konzeptualisierung anzunähern. Zusammen mit der Codegenerierung verlagert sich manuelle Codierung hin zur generatorgestützten Entwicklung. Statt Hardware- (z.B. VHDL, Verilog) oder Software-Code (z.B. C, C++) manuell zu implementieren, können Generatoren, die in Hochsprachen kodiert sind, diese Entwurfssichten erzeugen.
Während sich in der Hardware-Entwicklung zunehmend solche neuen Entwicklungstechniken durchsetzen, wird eingebettete Software immer noch überwiegend händisch implementiert. Damit wird die Softwareentwicklung noch mehr zum Engpass, als sie es ohnehin schon ist, und macht die bei der Hardwareentwicklung erzielten Einsparungen zunichte. Diese Arbeit befasst sich mit dieser Herausforderung und schlägt eine Methodik für den Entwurf eingebetteter Software basierend auf modellgesteuerter Architektur vor, um Kosten zu senken, die Qualität zu erhöhen und die Entwicklung eingebetteter Software zu beschleunigen. Gemeinsam mit dem bestehenden Hardwaremodellierungsansatz wird ein umfassender Generierungsfluss geschaffen, der die abgestimmte Generierung von Hardware und eingebetteter Software gewährleistet.
Der Generierungsfluss schlägt ein Metamodell für eingebettete Software vor, um die Struktur
und das Verhalten von eingebetteter Software zu abstrahieren. Durch den holistischen Ansatz wird eine Spezifikation (konzeptionelles Modell) in Instanzen des Metamodells für eingebettete Software und des Hardware-Metamodells (Hardware-Generierungsablauf) übersetzt. Das Ergebnis ist ein gebrauchsfertiger Code, dessen Struktur und Verhalten auf die jeweilige Hardware zugeschnitten ist. Der vorgestellte Ansatz erzeugt den gesamten eingebetteten Software-Stack. Für die HW/SW Schnittstelle wird ein Automatismus eingesetzt, der das Speicherlayout der Peripheriegeräte optimiert, um eine effiziente Hardware-Abstraktionsschicht zu erzeugen. Für die Treiberschicht durchläuft der Ansatz mehrere Transformationsschritte, um eine Vielzahl verschiedener Treibervarianten zu erstellen. Der Anwender kann die Variante gemäß den Systemanforderungen weiter anpassen. Der Generierungsablauf unterstützt (1) hochgradig konfigurierbare Gerätespezifikationen (2) mehrere eingebettete Softwarearchitekturen (3) nicht-funktionale Erweiterungen (z.B. Sicherheitsmaßnahmen) (4) verschiedene Plattformen (z.B. Sprachen).
Das Potenzial dieses Ansatzes für die Industrie ist enorm. Ein Entwickler muss nicht länger ein Experte sein, um z.B., sichere eingebettete Software zu implementieren. Das erspart viel Entwicklungkosten und ist gleichzeitig weniger fehleranfällig, da repetitive Implementierungsaktivitäten entfallen. Außerdem stehen dem Entwickler mehrere Entwurfsalternativen zur Verfügung, um die beste Variante für ein bestimmtes System zu ermitteln.
«
Die wachsende Komplexität eingebetteter Systeme erfordert neue Strategien um omplexität bei der Entwicklung von eingebetteten Systemen zu bewältigen. Die Evolution der Programmiersprachen zeigt, dass Abstraktion der beste Weg zur Bewältigung von Komplexität ist. Modellbasierte Entwicklungsmethoden heben das Abstraktionslevel an und versuchen, sich der menschlichen Sprache, dem Denken und der Konzeptualisierung anzunähern. Zusammen mit der Codegenerierung verlagert sich manuelle Codierung hin zu...
»